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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

Q&A

1回答

876閲覧

could not convert string to float: 'Iris-virginica' がどう解決されるのかわかりません

Reg_py

総合スコア13

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

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

0グッド

0クリップ

投稿2019/08/24 13:03

編集2019/08/24 14:26

前提・実現したいこと

各アルゴリズムの正解率を比較するプログラムを書きたいです

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

AdaBoostClassifier の正解率 = 0.9666666666666667 BaggingClassifier の正解率 = 1.0 BernoulliNB の正解率 = 0.26666666666666666 CalibratedClassifierCV の正解率 = 0.9333333333333333 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-1-27eeaded6346> in <module> 25 26 #学習して評価する ---> 27 clf.fit(x_train, y_train) 28 y_pred = clf.predict(x_test) 29 print(name,"の正解率 = " , accuracy_score(y_test, y_pred)) (中略) ValueError: could not convert string to float: 'Iris-virginica' エラーメッセージ

該当のソースコード

python

1import pandas as pd 2from sklearn.model_selection import train_test_split 3from sklearn.metrics import accuracy_score 4import warnings 5from sklearn.utils.testing import all_estimators 6 7#あやめデータの読み込み 8iris_data = pd.read_csv("iris.csv", encoding="utf-8") 9 10#あやめデータをラベルと入力データに分離する 11y = iris_data.loc[:,"Name"] 12x = iris_data.loc[:,["SepalLength", "SepalWidth", "PetalLength", "PetalWidth"]] 13 14#学習用とテスト用に分離する 15x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, train_size = 0.8, shuffle=True) 16 17 18#classifierのアルゴリズムをすべて取得する 19warnings.filterwarnings('ignore') 20allAlgorithms = all_estimators(type_filter="classifier") 21 22for(name, algorithm) in allAlgorithms: 23 #各アルゴリズムのオブジェクトを作成 24 clf = algorithm() 25 26 #学習して評価する 27 clf.fit(x_train, y_train) 28 y_pred = clf.predict(x_test) 29 print(name,"の正解率 = " , accuracy_score(y_test, y_pred)) 30 31``` 32 33### 試したこと 34 35 36ここに問題に対して試したことを記載してください。 37 38 39### 補足情報(FW/ツールのバージョンなど) 40 41ここにより詳細な情報を記載してください。 42ちなみにiris.csvのファイルは 43https://github.com/pandas-dev/pandas/blob/master/pandas/tests/data/iris.csv 44のやつです。

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

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

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

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

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

y_waiwai

2019/08/24 13:08

このままではコードが見れないので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
Reg_py

2019/08/24 13:14

ご指摘ありがとうございます
guest

回答1

0

ラベル(ここでは"Name")は数字に変換してから使用してください。

投稿2019/08/24 14:16

meg_

総合スコア10579

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

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

Reg_py

2019/08/24 14:18

どのように変換すれば良いのでしょうか
meg_

2019/08/24 14:33

DataFrameのName列のデータを数字に変換すれば良いです。 (例えば、Iris-setosa→0、Iris-versicolor→1、Iris-virginica→2) 変換方法は「df.replace({列名: {元の値: 置換後の値}})」とかでしょうか。
Reg_py

2019/08/24 14:45

なるほど... でも、なんで途中までは出力が出ているのでしょうか? 参考にしている書籍(ソシムの)を見る感じ DecisionTreeClassifierというアルゴリズムの正解率が下に出力されるみたいなんです まだたくさん下に続くのですが... 謎です。コードの写し間違いではない気がするのですが.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問