質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

3826閲覧

グリッドサーチのbest_scoreがマイナスになる。

python_2019

総合スコア68

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/08/17 07:17

勾配ブースティングのグリッドサーチでbest_scoreをprintすると、マイナスになります。
しかも、かなり悪い値になります。(-0.45044823983154075)
実際にグリッドサーチで取得したbest_paramesでテストデータを評価すると、0.92という高い値になります。

何故でしょうか??
ご指導頂ければ助かります。

from sklearn import datasets from matplotlib import pyplot as plt import lightgbm as lgb from sklearn.model_selection import GridSearchCV # LGB用のデータセットを登録 lgb_train = lgb.Dataset(x_train_std, y_train) lgb_test = lgb.Dataset(x_test_std, y_test, reference=lgb_train) lightgbm = lgb.LGBMClassifier(objective='binary', random_state=0) params = {'task':[ 'train'], # タスクを訓練に設定 'boosting_type': ['gbdt'], # GBDTを指定 'objective': ['multiclass'], # 多クラス分類を指定 'metric': ['multi_logloss'], # 多クラス分類の損失(誤差) 'num_class': [3], # クラスの数 'learning_rate': [0.1,0.2,0.3,0.4], # 学習率 'max_dapth': [1,3,5,10,15,20], # 木の深さ 'num_leaves': [2,5,10,15,20], # ノードの数 'min_data_in_leaf': [2,5,10,15,20,30], # 決定木ノードの最小データ数 'num_iteration': [50]# 予測器(決定木)の数:インタレーション(反復数)(デフォルトは100) } gbm = GridSearchCV(estimator=lightgbm, param_grid=params, scoring='neg_log_loss', cv=2, n_jobs=-1, verbose=0, ) gbm.fit(x_train_std, y_train) # 最も良いパラメータとスコア print(gbm.best_params_) print(gbm.best_score_)
{'boosting_type': 'gbdt', 'learning_rate': 0.4, 'max_dapth': 1, 'metric': 'multi_logloss', 'min_data_in_leaf': 20, 'num_class': 3, 'num_iteration': 50, 'num_leaves': 2, 'objective': 'multiclass', 'task': 'train'} -0.45044823983154075 コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

GridSearchCV()scoring='neg_log_loss'としているのでbest_score_はその値を返すのではないでしょうか? ※accuracyとは別の指標です

投稿2020/08/17 11:05

編集2020/08/17 11:11
meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

python_2019

2020/08/18 02:46

ご回答ありがとうございます。 accuracyとは別の指標なのですね。 accuracyに変更すると上手き行きました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問