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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

Q&A

解決済

2回答

6156閲覧

skleanのエラーについて

wakky

総合スコア20

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

0グッド

0クリップ

投稿2019/01/25 01:47

前提・実現したいこと

テキストに沿って勉強していますが、sklearnの箇所で以下のエラーがでます。いろいろ原因を探っていますがまだ不明です。ぜひエラーの解消方法を教えてください。

windows10
Ubuntu18.04
Python3.7

発生している問題・エラーメッセージ

/home/User/.pyenv/versions/3.7.0/lib/python3.7/site-packages/sklearn/metrics/classification.py:1143: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. 'precision', 'predicted', average, warn_for) 正解率= *********(この数字は出ます) レポート=

該当のソースコード

from sklearn import svm, metrics def load_csv(fname): labels = [] images = [] with open(fname, "r") as f: for line in f: cols = line.split(",") if len(cols) < 2: contiune labels.append(int(cols.pop(0))) vals = list(map(lambda n: int(n) / 256, cols)) images.append(vals) return {"labels":labels, "images":images} data = load_csv("./train.csv") test = load_csv("./t10k.csv") clf = svm.SVC(gamma='auto') clf.fit(data["images"], data["labels"]) predict = clf.predict(test["images"]) ac_score = metrics.accuracy_score(test["labels"], predict) cl_report = metrics.classification_report(test["labels"], predict) print("正解率=", ac_score) print("レポート=")

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

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

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

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

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

guest

回答2

0

scikit-learnほとんどつかったことありませんので的外れな回答でしたらすみません。

scikit-learn で F1値 計算のエラーを回避する / How to resolve UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samplesによると2つの可能性があげられています。

  1. TruePositiveの件数が0であったため、分母が0になりF値 (F-measure)が計算できなかった(データの問題)
  2. scikit-learn 自体にバグがあった(バージョンアップで解消)

投稿2019/01/25 02:15

can110

総合スコア38266

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

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

wakky

2019/01/25 02:22

ご回答ありがとうありがとうございます。バージョンは最新にアップグレード済みです。 $ pip3 install scikit-learn --upgrade Requirement already up-to-date: scikit-learn in ./.pyenv/versions/3.7.0/lib/python3.7/site-packages (0.20.2) Requirement already satisfied, skipping upgrade: scipy>=0.13.3 in ./.pyenv/versions/3.7.0/lib/python3.7/site-packages (from scikit-learn) (1.2.0) Requirement already satisfied, skipping upgrade: numpy>=1.8.2 in ./.pyenv/versions/3.7.0/lib/python3.7/site-packages (from scikit-learn) (1.16.0)
guest

0

ベストアンサー

それはUndefinedMetricWarningで、Warningというのは警告を表し、厳密に言えばエラーではありません。警告にもいろいろな種類がありますが、今回は「うまく予測できてないからF値は定義できないよ。たぶんちゃんとした結果にはなってないんじゃないかなぁ」ということを親切に教えてくれている訳ですね。

とりあえずcl_reportprintしていないようですが、これを表示しないといけないんじゃないでしょうか。それでどんな結果になったのか確認してみれば良いです。

python

1cl_report = metrics.classification_report(test["labels"], predict) 2print("正解率=", ac_score) 3print("レポート=") 4print(cl_report)

投稿2019/01/25 04:22

hayataka2049

総合スコア30933

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

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

wakky

2019/01/25 06:27

ありがとうございます!解決しました。勉強に精進します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問