nilmtk-contrib icon indicating copy to clipboard operation
nilmtk-contrib copied to clipboard

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

Open klemenjak opened this issue 4 years ago • 5 comments

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 avatar Apr 28 '20 08:04 klemenjak

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

klemenjak avatar Apr 28 '20 13:04 klemenjak

@Rithwikksvr can you look into this?

nipunbatra avatar Apr 28 '20 13:04 nipunbatra

@nipunbatra i'll try to resolve it ASAP!

Rithwikksvr avatar Apr 28 '20 15:04 Rithwikksvr

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

oneway3124 avatar Mar 30 '21 12:03 oneway3124

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

oneway3124 avatar Mar 30 '21 12:03 oneway3124