[BUG] HiveCote output
See original GitHub issueDescribe the bug Fitting hive-cote model gives unrecognizable number outputs and doesn’t finish executing, even on a small dataset.
To Reproduce Run fit with a small dataset (mine is 500x10), I interrupted after 30 hours on this small dataset.
>from sktime.classification.hybrid import HIVECOTEV1
>hive = HIVECOTEV1()
>hive.fit(X_train_small, y_train_small)
1.4102227687835693
1.4351227283477783
1.4401609897613525
1.455118179321289
1.4720587730407715
1.4735655784606934
1.5098981857299805
1.5518741607666016
1.5618183612823486
1.6083710193634033
1.6144781112670898
1.656531572341919
1.694200038909912
1.8179378509521484
1.1604790687561035
1.2566297054290771
1.267608404159546
1.2775826454162598
1.2984962463378906
1.6186723709106445
1.684495449066162
1.1329700946807861
1.162933588027954
1.1708612442016602
1.1918137073516846
1.2217142581939697
1.2486572265625
1.2994804382324219
1.3000919818878174
1.3204693794250488
1.3333721160888672
1.424189805984497
1.4730608463287354
1.5324997901916504
1.6767830848693848
2.2469911575317383
1.10504150390625
1.1977901458740234
1.2267138957977295
1.2467164993286133
1.250666618347168
1.3663420677185059
1.3813018798828125
1.1080362796783447
1.119640827178955
1.2005653381347656
1.2197377681732178
1.2207260131835938
1.2436511516571045
1.2863152027130127
1.1598975658416748
1.173907995223999
1.182831048965454
1.223266363143921
1.2944936752319336
1.3483796119689941
1.3493454456329346
1.225809097290039
1.2561888694763184
1.2595922946929932
1.2845253944396973
1.3055100440979004
1.306506633758545
1.3862872123718262
1.4042775630950928
1.4251701831817627
1.8021807670593262
1.153918981552124
1.1748120784759521
1.1948018074035645
1.2117547988891602
1.2277166843414307
1.2336978912353516
1.2676081657409668
1.267608880996704
1.271592140197754
1.146115779876709
1.2246768474578857
1.2275745868682861
1.2276766300201416
1.2586297988891602
1.2646138668060303
1.312474250793457
1.1439476013183594
1.2127492427825928
1.2346980571746826
1.2396836280822754
1.2486522197723389
1.248659372329712
1.2735872268676758
1.2815752029418945
1.0818612575531006
1.2257189750671387
1.2336993217468262
1.2556405067443848
1.2866203784942627
1.2915489673614502
1.3842966556549072
1.4561092853546143
4.397695541381836
4.439384460449219
4.521897077560425
1.4102232456207275
1.4172465801239014
1.4710273742675781
1.5079617500305176
1.5219314098358154
1.5228848457336426
1.5463685989379883
1.5488560199737549
1.5538420677185059
1.5658457279205322
1.5777888298034668
1.0661485195159912
1.0791501998901367
1.1140198707580566
1.1509478092193604
1.1888630390167236
1.1957767009735107
1.2287139892578125
1.2297098636627197
1.2337005138397217
1.2407174110412598
1.27756667137146
1.2776179313659668
1.2795777320861816
1.2805571556091309
1.1738529205322266
1.207770824432373
1.2187480926513672
1.2227346897125244
1.2317297458648682
1.2686076164245605
1.2725942134857178
1.283567190170288
1.288553237915039
1.2236785888671875
1.250654935836792
1.2656142711639404
1.2686102390289307
1.2745912075042725
1.2925684452056885
1.3703694343566895
1.141946792602539
1.1509218215942383
1.1798830032348633
1.217745065689087
1.2371776103973389
1.2376549243927002
1.2377171516418457
1.2726309299468994
1.295534610748291
1.298499345779419
1.205770492553711
1.2506554126739502
1.2636210918426514
1.2875206470489502
1.297529935836792
1.1938278675079346
1.1987836360931396
1.2456707954406738
1.246654748916626
1.260629653930664
1.2665889263153076
1.2766263484954834
1.2795774936676025
1.2795794010162354
1.1908149719238281
1.191812515258789
1.2007882595062256
1.2057664394378662
1.2562260627746582
1.2586488723754883
1.259627103805542
1.2735936641693115
1.2835674285888672
1.1528823375701904
1.16489577293396
1.2047667503356934
1.2137830257415771
1.2206969261169434
1.2227301597595215
1.276543378829956
1.3703701496124268
1.154890537261963
1.1579084396362305
1.169846773147583
1.2337028980255127
1.2346899509429932
1.23968505859375
1.2566413879394531
1.2586708068847656
1.1200060844421387
1.1329705715179443
1.1868271827697754
1.2107627391815186
1.2247257232666016
1.2307095527648926
1.2386882305145264
1.2456769943237305
1.7991812229156494
1.8540723323822021
2.4433372020721436
1.5897419452667236
1.642646312713623
1.7273809909820557
2.219067096710205
1.108036756515503
1.1898179054260254
1.1987824440002441
1.206784963607788
1.2157487869262695
1.2247209548950195
1.2386524677276611
1.2634143829345703
1.3773200511932373
1.3872885704040527
1.3922829627990723
1.164886713027954
1.254988193511963
1.2556400299072266
1.2715990543365479
1.3055362701416016
1.3185110092163086
1.3523328304290771
1.3623898029327393
1.0801029205322266
1.1274166107177734
1.191850185394287
1.2496368885040283
1.265561580657959
1.3234786987304688
1.3713512420654297
1.3812839984893799
1.3863086700439453
1.3932538032531738
1.4052231311798096
1.13299560546875
1.2047674655914307
1.2396745681762695
1.2576580047607422
1.3164677619934082
1.36539888381958
1.453104019165039
1.4697601795196533
1.680494785308838
1.1129837036132812
1.1220283508300781
1.1429426670074463
1.18086576461792
1.190821886062622
1.1928248405456543
1.201784610748291
1.2247192859649658
1.2257499694824219
1.2277185916900635
1.3833296298980713
1.458068609237671
1.5454039573669434
2.000641107559204
1.1140172481536865
1.231666088104248
1.3254904747009277
1.360323190689087
1.4071955680847168
1.5943021774291992
1.6433846950531006
1.928835391998291
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
<timed exec> in <module>
Expected behavior
An understandable output and a sense of progress, e.g. passing a verbose=True
argument.
Further details: I checked the code of the class too, but I don’t understand where the outputs come from, since its simply fitting 4 different algos (Shapelettransform, TimeSeriesForest, RISE, cBOSS) and saving the weights. I can’t see when the code terminates.
Versions sklearn: 0.23.1
from sktime import show_versions; show_versions()
System:
python: 3.8.5
executable: C:\Users\
machine: Windows-10
Python dependencies:
pip: 21.0.1
setuptools: 50.3.0.post20201006
sklearn: 0.23.1
sktime: 0.5.3
statsmodels: 0.12.2
numpy: 1.19.5
scipy: 1.4.1
Cython: 0.29.21
pandas: 1.0.5
matplotlib: 3.2.2
joblib: 0.17.0
numba: 0.52.0
pmdarima: None
tsfresh: None
Thanks for the great repo!
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (3 by maintainers)
Top Results From Across the Web
HIVE-COTE 2.0: a new meta ensemble for time series ...
We propose a new version of HIVE-COTE that is significantly more accurate than all four current state-of-the-art algorithms. We call this ...
Read more >Time Series Classification with HIVE-COTE - ACM Digital Library
A recent experimental evaluation assessed 19 time series classification (TSC) algorithms and found that one was significantly more accurate than all others: ...
Read more >HIVE-COTE 2.0: a new meta ensemble for time series ...
ABSTRACT. The Hierarchical Vote Collective of Transformation-based Ensem- bles (HIVE-COTE) is a heterogeneous meta ensemble for time series classification.
Read more >HIVE-COTE: The Hierarchical Vote Collective of ...
We find that Flat-COTE is significantly more accurate than both deep learning approaches on 85 datasets. These results are impressive, but Flat-COTE is...
Read more >Python implementation of HIVE-COTE modules - GitHub
A unified framework for machine learning with time series - Python implementation of HIVE-COTE modules · sktime/sktime.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Yeah that really should not have been outside contrib! I have made a number of fixes and additions to the HC1 class. I’m happy to keep it where it is with these changes.
I have included a verbose setting to give periodic progress updates as suggested, as well as a n_jobs parameter to make use of multiple threads where applicable (mainly the cross-validation). There was a recursive call to fit embarrassingly, so it should no longer take 30 hours (or forever) to fit.
Unit testing remains an issue, I have set it up so you can alter the parameters of each individual classifier which should help, but I think its going to be a costly one even with that. Any suggestions welcome here or on the PR.
Thanks @TonyBagnall for the quick reply!
@MJimitater if you’re interested in looking into this to find out what has gone wrong, that’d be much appreciated too!