-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ENH] Implemented Tracking differentiator-based multiview dilated characteristics (TD-MVDC) Classifier #2535
base: main
Are you sure you want to change the base?
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Thank you for contributing to
|
@CCHe64 this is the current implementation of the classifier. Other tasks such as testing and multithreading needs to be added. Will do that once the accuracy discrepancy is resolved. |
Is tsfreshrelevant used now? The original paper used 777 full feature versions of tsfresh. Is the accuracy difference because of this? |
This reverts commit 9153909.
Hi @MatthewMiddlehurst @TonyBagnall @CCHe64 , This is the current working implementation of TDMVDC. Further additions would be needed in test coverage and multithreading, which I would like to put up in another PR, once this is merged. Let me know you reviews. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have had a quick look, not really at any of the estimator code itself. Still a few comments for now.
Do you have an implementation or publication results you can compare against your implementation against? Was this code inspired by any other implementations?
""" | ||
Tracking Differentiator-based Multiview Dilated Characteristics. | ||
|
||
for Time Series Classification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs an extended description. See the documentation developer guide.
@@ -0,0 +1,274 @@ | |||
import numpy as np |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Include documentation at the top of the file.
k2=2, | ||
feature_store_ratios=None, | ||
n_jobs=1, | ||
): # Remove **kwargs from parameters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this comment here?
|
||
super().__init__() | ||
|
||
def _fit(self, trainSignalX, trainY): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please just use X and y like other estimators.
self.clfList.append(clf) # Saving the trained classifier | ||
return self | ||
|
||
def _predict(self, testSignalX): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not sufficient testing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This module is for transformer classes only. If this does not fit as a transformer, it can be private functions in the classifier file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is unlikely we will merge this if it does not achieve similar results to the original.
Hi, I have tested this of it on the load_arrow head dataset and it achieves the same accuracy as the paper. |
Reference Issues/PRs
Closes #2081.
What does this implement/fix? Explain your changes.
This PR implements the TDMVDC classifier.
Does your contribution introduce a new dependency? If yes, which one?
No
Any other comments?
Currently using the TSFreshRelevant feature extractor for feature extraction. I have tried implementing a similar module (for feature extraction) dedicated for tdmvdc itself (doesn't give great results).
Accuracy as per paper: 81.14 per cent
Obtained accuracy: 77.71 per cent
PR checklist
For all contributions
For new estimators and functions
__maintainer__
at the top of relevant files and want to be contacted regarding its maintenance. Unmaintained files may be removed. This is for the full file, and you should not add yourself if you are just making minor changes or do not want to help maintain its contents.For developers with write access