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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

Q&A

0回答

3924閲覧

XGBoost 2値分類 .fit() でcallback API が使えません。

kazuo.oku

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

0グッド

0クリップ

投稿2019/09/03 09:51

編集2019/09/04 01:22

Python3.7 XGoostで2値分類機械学習をしていた際、下記のエラーが出ました。

python

1Traceback (most recent call last): 2 File "XGBoost_01_20190903.py", line 449, in <module> 3 main(X_arr, y_arr) 4 File "XGBoost_01_20190903.py", line 48, in main 5 callbacks=[xgb.callback.record_evaluation(evals_result)] 6TypeError: fit() got an unexpected keyword argument 'callbacks'

PythonのAPIでは、'callbacks'を引数にもつのになぜでしょうか?

fit(X, y, sample_weight=None, eval_set=None, eval_metric=None, early_stopping_rounds=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, callbacks=None)

callbacks (list of callback functions) –
List of callback functions that are applied at end of each iteration. It is possible to use predefined callbacks by using Callback API.
Example: [xgb.callback.reset_learning_rate(custom_rates)]

python

1import sys, random, io, math 2import numpy as np 3import pandas as pd 4from scipy import stats 5from scipy.stats import uniform, randint 6from sklearn import datasets 7import xgboost as xgb 8import lightgbm as lgb 9from sklearn.model_selection import train_test_split 10from sklearn.metrics import accuracy_score 11from sklearn.model_selection import GridSearchCV 12from sklearn.model_selection import StratifiedKFold 13# from xgboost import callback 14from sklearn.model_selection import RandomizedSearchCV, cross_val_score 15from sklearn.datasets import load_digits 16from sklearn.metrics import confusion_matrix, classification_report 17from sklearn.metrics import accuracy_score 18 19from matplotlib import pyplot as plt 20 21def main(): 22 dataset = datasets.load_breast_cancer() 23 X, y = dataset.data, dataset.target 24 25 X_train, X_test, y_train, y_test = train_test_split(X, y, 26 test_size=0.3, 27 shuffle=True, 28 random_state=42, 29 stratify=y) 30 31 # scikit-learn API を備えた分類器 32 clf = xgb.XGBClassifier(objective='binary:logistic', 33 # 'num_boost_round' の代わり 34 # adding 1 estimator per round 35 n_estimators=1000) 36 # 学習する 37 evals_result = {} 38 clf.fit(X_train, y_train, 39 # 学習時に用いる検証用データ 40 eval_set=[(X_train, y_train),(X_test, y_test)], 41 # 学習に使う評価指標 42 eval_metric='logloss', 43 early_stopping_rounds=10, 44 # 学習過程の記録はコールバック API で登録する 45 callbacks=[xgb.callback.record_evaluation(evals_result)] 46 ) 47 48 y_pred = clf.predict(X_test) 49 acc = accuracy_score(y_test, y_pred) 50 print('Accuracy:', acc) 51 52 # 学習過程の名前は 'validation_{n}' になる 53 train_metric = evals_result['validation_0']['logloss'] 54 plt.plot(train_metric, label='train logloss') 55 eval_metric = evals_result['validation_1']['logloss'] 56 plt.plot(eval_metric, label='eval logloss') 57 plt.grid() 58 plt.legend() 59 plt.xlabel('rounds') 60 plt.ylabel('logloss') 61 plt.show() 62 63if __name__ == '__main__': 64 main()

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

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

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

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

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

hayataka2049

2019/09/03 20:58

エラーの全文と、ライブラリーのバージョンを追記すると回答が得られやすいかと思います。
kazuo.oku

2019/09/04 01:22

ありがとうございます!エラーメッセージ追加しました。
magichan

2019/09/05 00:39

google colaboratory 上で質問のコードを実行してみたところ、問題なく動作しました。 ちなみに、colab での xgboost パッケージは Version 0.90 となっておりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問