私は最初の機械学習コードをPythonで始めています。しかし、マルチクラスモデルの再現率、適合率、およびf1の計算中にエラーが発生しました。
X = pd.read_excel(path, dtype=int)
allarray = X.values
X_data = allarray[:,0:-1]
Y = allarray[:,-1]
X_scaled = scaler.fit_transform(X_data)
create_model = create_custom_model(n_features, n_classes, 8, 3)
estimator = KerasClassifier(build_fn=create_model, epochs=100, batch_size=100, verbose=0)
scores = cross_validate(estimator, X_scaled, Y, cv=10, scoring=('precision', 'recall', 'f1'), return_train_score=False)
print(scores['precision'])
print(scores['recall'])
print(scores['f1'])
このエラーが発生します:
ValueError: Target is multiclass but average='binary'. Please choose another average setting.
しかしcross_validate
、パラメータはありませんaverage
問題はaverage
、適合率、再現率、およびF1スコアのデフォルト設定が二項分類にのみ適用されることです。
あなたがすべきことはscoring=('precision', 'recall', 'f1')
あなたの議論cross_validate
を次のようなものに置き換えることです
scoring=('precision_macro', 'recall_macro', 'f1_macro')
-各メトリックの利用可能ないくつかの接尾辞オプションがありmacro
、micro
、weighted
参照などのドキュメント、たとえば、そこにスコアリンクが。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加