hkaneko1985/dcekit

Encountered zero divided

Closed this issue · 2 comments

分散0列が入っているdatasetの場合、下記の箇所で0割発生→nan変換→モデルが構築できなくなります。
コール元で分散0列を削除することも可能ですが、train_test_splitの結果次第で分散0列が発生することもあるので、dcekit内で対処されてあるとうれしいです。

dcekit\generative_model\gmr.py Line 344 in cv_opt.
autoscaled_dataset = (dataset - dataset.mean(axi=0)) / dataset.std(axis=0, ddof=1)

ご連絡ありがとうございます。例えば分散が 0 の変数を削除するなど、事前に削除したものを dataset とするようお願いいたします。train_test_split などでトレーニングデータとテストデータに分割した際は、トレーニングデータで分散が 0 の変数番号を取得し、トレーニングデータとテストデータそれぞれからその番号を変数を削除する流れになります。

これを準備しておきますと、DCEKit だけでなく (scikit-learnなど) 他のライブラリを使用した場合やご自身でコードを書いた場合でも対処できるようになります。

ご教示ありがとうございます、承知いたしました。