前提・実現したいこと
バージョン:Python3.7.2
OS:Windows10
PythonでLightGBMを実装中です。
sklearnのAPIを使っていて、
フィッティングはできたのですが、
予測段階でエラーが発生します。
読んでは見たのですが、いまいち何が悪いのかわかりません。
エラーの原因と思われるもの、その解決策をお教えください。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) <ipython-input-25-e6dce0d63fb5> in <module> 2 3 lgb.fit(dataset_train.iloc[:,1:],dataset_train.iloc[:,0]) ----> 4 print(accuracy_score(lgb.predict(dataset_train.iloc[:,1:]), dataset_train.iloc[:,0])) 5 c:\users\gura\appdata\local\programs\python\python37\lib\site-packages\lightgbm\sklearn.py in predict(self, X, raw_score, num_iteration, pred_leaf, pred_contrib, **kwargs) 756 else: 757 class_index = np.argmax(result, axis=1) --> 758 return self._le.inverse_transform(class_index) 759 760 predict.__doc__ = LGBMModel.predict.__doc__ c:\users\gura\appdata\local\programs\python\python37\lib\site-packages\sklearn\preprocessing\label.py in inverse_transform(self, y) 279 if len(diff): 280 raise ValueError( --> 281 "y contains previously unseen labels: %s" % str(diff)) 282 y = np.asarray(y) 283 return self.classes_[y] ValueError: y contains previously unseen labels: [ 915 2128]
該当のソースコード
lgb = lgb.LGBMClassifier(task='train',
boosting_type='gbdt',
objective='multiclass',
num_class=2,
max_depth=3,
min_leaves=10)
lgb.fit(dataset_train.iloc[:,1:],dataset_train.iloc[:,0])
print(accuracy_score(lgb.predict(dataset_train.iloc[:,1:]),dataset_train.iloc[:,0]))
試したこと
dataset_trainをテスト用のデータであるdataset_testに変えて試してみましたが、同様のエラーが起きました。
もしかして、データのindexをラベルにしてしまってはいないかなどと考えたのですが、そうではないような気がします。
補足情報
dataset_trainとdataset_testはそれぞれ、101次元のDataFrameで、
0列目に予測したいラベル、
1列目以降が予測に用いるデータです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。