[解決済み] ValueErrorに直面している。対象はマルチクラスだが、平均は「バイナリ」。
2022-02-04 13:04:43
質問
私はpythonと機械学習の初心者です。私の要件に従って、私は私のデータセットにナイーブベイズアルゴリズムを使用しようとしています。
精度を求めることはできますが、同じように精度と再現率を求めようとしています。しかし、次のようなエラーを投げています。
"choose another average setting." % y_type)
ValueError: Target is multiclass but average='binary'. Please choose another average setting.
どなたか、どのように進めればよいかご指摘いただけないでしょうか。私は、精度と想起スコアに平均 ='マイクロ'を使用して試してみました。
私のデータセット
train_data.csv:
review,label
Colors & clarity is superb,positive
Sadly the picture is not nearly as clear or bright as my 40 inch Samsung,negative
test_data.csv:
review,label
The picture is clear and beautiful,positive
Picture is not clear,negative
私のコード
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import BernoulliNB
from sklearn.metrics import confusion_matrix
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
def load_data(filename):
reviews = list()
labels = list()
with open(filename) as file:
file.readline()
for line in file:
line = line.strip().split(',')
labels.append(line[1])
reviews.append(line[0])
return reviews, labels
X_train, y_train = load_data('/Users/abc/Sep_10/train_data.csv')
X_test, y_test = load_data('/Users/abc/Sep_10/test_data.csv')
vec = CountVectorizer()
X_train_transformed = vec.fit_transform(X_train)
X_test_transformed = vec.transform(X_test)
clf= MultinomialNB()
clf.fit(X_train_transformed, y_train)
score = clf.score(X_test_transformed, y_test)
print("score of Naive Bayes algo is :" , score)
y_pred = clf.predict(X_test_transformed)
print(confusion_matrix(y_test,y_pred))
print("Precision Score : ",precision_score(y_test,y_pred,pos_label='positive'))
print("Recall Score :" , recall_score(y_test, y_pred, pos_label='positive') )
解決方法は?
を追加する必要があります。
'average'
パラメータを使用します。によると
ドキュメント
:
平均的な: string, [None, 'binary' (default), 'micro', 'macro', 'サンプル', '加重']。
このパラメータは、multiclass/multilabelターゲットに必要です。もし
None
を使用します。 各クラスの点数が返される。そうでない場合は,この は、データに対して行われる平均化の種類を決定する。
こうしてください。
print("Precision Score : ",precision_score(y_test, y_pred,
pos_label='positive'
average='micro'))
print("Recall Score : ",recall_score(y_test, y_pred,
pos_label='positive'
average='micro'))
交換
'micro'
を除く上記のオプションのいずれかを指定します。
'binary'
. また、マルチクラス設定において
'pos_label'
どうせ無視されるからです。
コメントを更新しました。
はい、同じにすることができます。その場合は ユーザーガイドはこちら :
マイクロ "平均化では、多クラス設定におけるすべての ラベルが含まれる場合、精度、再現性、Fが等しくなる。 「加重」平均は、Fスコアの間にないFスコアを生成することがあります。 精度とリコール
関連
-
Python関数の高度な応用を解説
-
python call matlab メソッドの詳細
-
PythonはWordの読み書きの変更操作を実装している
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
PicgoのイメージベッドツールをPythonで実装する
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Python Pillow Image.save jpg画像圧縮問題
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】ValueError: xとyは同じサイズでなければならない