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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

314閲覧

半教師あり学習におけるConfusion_matrixが出力する値について.

arapon516

総合スコア15

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/01/23 01:42

躓いている点

現在半教師あり学習を用いた機械学習モデルの構築を行なっており,精度評価の確認を行なっております.
Recall値,Precision値,F値等は出力を行うことができたのですが,ConfusionMatrixにおける出力の値の読み取り方が理解できていません.
その部分についてご教授いただきたいと思っています.
データセットの内容については[特徴量1,特徴量2,特徴量3,特徴量4,特徴量5,label]となっており,labelに関しては[0,1,ラベルなし]です.
おそらくラベル毎の多変数混合行列になっていることは想像つくのですが,どのような順番に並べられていてlabelなしについてはどのような扱い方がされているのかが分かっていません.
お手数おかけしますがご教授いただけると幸いです.

該当のソースコード

Python

1 2# ラベル付けされたデータとラベルなしデータを用意 3labeled_data = df1[df1["label"].notna()][feature_cols] 4unlabeled_data = df1[df1["label"].isna()][feature_cols] 5labels = df1[df1["label"].notna()]["label"] 6 7#データを訓練データとテストデータに分割 8X_train, X_test, y_train, y_test = train_test_split(np.concatenate((labeled_data, unlabeled_data)), np.concatenate((labels, -np.ones(len(unlabeled_data)))), test_size=0.2, random_state=0) 9 10# ラベル伝播アルゴリズムをインスタンス化 11svm = SVC(kernel='linear') 12 13# 学習 14svm.fit(X_train, y_train) 15 16#予測 17predictions = svm.predict(X_test) 18 19#精度の評価 20from sklearn.metrics import accuracy_score 21print("半教師あり学習 Accuracy:",accuracy_score(y_test, predictions)) 22 23recallscore = recall_score(y_test, predictions, average='micro') 24print("半教師あり学習 Recall Score:", recallscore) 25 26precisionscore = precision_score(y_test, predictions, average='micro') 27 28print("半教師あり学習 Precision Score:", precisionscore) 29 30print("半教師あり学習 F Score:",f1_score(y_test, predictions, average='micro')) 31 32conf_matrix = confusion_matrix(y_test, predictions) 33 34print("半教師あり学習 Confusion Matrix:", conf_matrix) 35 36

イメージ説明

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

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

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

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

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

guest

回答1

0

ConfusionMatrixにおける出力の値の読み取り方が理解できていません.

確か行方向が実際の正解ラベルで、列方向が予測値のラベルです。
このリストの場合、[ラベル0の時の予測値0,1,None][ラベル1の時の予測値0,1,None][ラベルNoneの時の予測値0,1,None]です。(場合により、並びが変動する場合があります。実際のデータ数で判断してください。)

リンク先では二値分類ですが、0,0-2,2の部分が正答であることは変わりないでしょう。
混同行列(Confusion Matrix)

どのような順番に並べられていてlabelなしについてはどのような扱い方がされているのかが分かっていません.

今回の場合、ラベルがあるデータに関しては的確に予測できており、ラベルなしのデータに関しては比較的ラベル0であると予測されているようです。

※記憶があやふやなので間違ってたら誰か教えてください。(修正します)

投稿2023/01/23 01:59

編集2023/01/23 02:56
pig_vba

総合スコア807

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問