前提・実現したいこと
薬の副作用の重症度を分類したく、検査値の変動が-25%,26-50%,51-75%,75%-といった形で4 classに分類し決定木を取り出して臨床応用したく分析を行っています。XGBoostでモデルを作成している途中で下記のエラーが発生しました。xは年齢、性別、体重、検査値、投与量などで、yは上記の検査値変動の分類で、左から0,1,2,3と定義しています。
発生している問題・エラーメッセージ
エラーメッセージ
XGBoostError: value 0 for Parameter num_class should be greater equal to 1
num_class: Number of output class in the multi-class classification.
該当のソースコード
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=0) params={ 'silent':1, 'max_depth':6, 'min_child_weight':1, 'eta':0.1, 'tree_method':'exact', 'objective':'multi:softmax', 'eval_metric':'mlogloss', 'predictor':'cpu_predictor'} dtrain = xgb.DMatrix(x_train,label=y_train) dtest = xgb.DMatrix(x_test,label=y_test) model = xgb.train(params=params, dtrain=dtrain, num_boost_round=1000, early_stopping_rounds=5, evals=[(dtest,'test')])
試したこと
・params={}にnum_class=4を入れて実行しましたがエラーメッセージに変化はありませんでした。
・model=xgb.train()にnum_class=4を入れて実行すると
TypeError: train() got an unexpected keyword argument 'num_class'が出ました
補足情報(FW/ツールのバージョンなど)
jupyter notebook python3 で実行しました。
回答1件
あなたの回答
tips
プレビュー