nilmtk / nilmtk-contrib

Apache License 2.0
114 stars 59 forks source link

DSC Algorithm: Positive constraint not supported for 'lars' coding method #26

Open klemenjak opened 4 years ago

klemenjak commented 4 years ago

Hi,

I have been experiencing issues with the DSC algorithm lately:

Started training for  DSC
Joint training for  DSC
............... Loading Data for training ...................
Loading data for  REFIT  dataset
Loading building ...  1
Dropping missing values
...............DSC partial_fit running...............
Training First dictionary for  television
Traceback (most recent call last):
  File "main_stuy.py", line 122, in <module>
    api_results_real = API(experiment_real)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/nilmtk/api.py", line 62, in __init__
    self.experiment(params)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/nilmtk/api.py", line 107, in experiment
    self.train_jointly(clf,d)            
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/nilmtk/api.py", line 260, in train_jointly
    clf.partial_fit(self.train_mains,self.train_submeters)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/nilmtk_contrib/disaggregate/dsc.py", line 141, in partial_fit
    self.learn_dictionary(power, appliance_name)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/nilmtk_contrib/disaggregate/dsc.py", line 49, in learn_dictionary
    model.fit(appliance_main.T)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/sklearn/decomposition/_dict_learning.py", line 1439, in fit
    positive_code=self.positive_code)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/sklearn/decomposition/_dict_learning.py", line 756, in dict_learning_online
    _check_positive_coding(method, positive_code)
  File "/Users/christoph/anaconda/envs/thesis/lib/python3.6/site-packages/sklearn/decomposition/_dict_learning.py", line 28, in _check_positive_coding
    "coding method.".format(method)
ValueError: Positive constraint not supported for 'lars' coding method.
Closing remaining open files:../../../data/REFIT.h5...done../../../data/REFIT.h5...done../../../data/REFIT.h5...done../../../data/REFIT.h5...done

I am using:

nilmtk_contrib.__version__
'0.1.0.dev1+git.cfb3b14'

nilmtk.__version__
'0.4.0.dev1+git.5956d31'

sklearn.__version__
'0.22.2.post1'

Any ideas on how to fix this?

Best, Christoph

klemenjak commented 4 years ago

Follow-up: downgrading scikit-learn to 0.21.3 resolves the problem.

nipunbatra commented 4 years ago

@Rithwikksvr can you look into this?

Rithwikksvr commented 4 years ago

@nipunbatra i'll try to resolve it ASAP!

oneway3124 commented 3 years ago

why not fix it in new version? scikit-learn 0.21.3 h5py 2.10.0

oneway3124 commented 3 years ago

In new version, it doesnot work for this baseline algorithms.