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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2231閲覧

エラーが解決できない。ValueError: could not convert string to float

output30

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/05/17 04:07

前提・実現したいこと

pickleでファイルを保存したいがエラーが出て保存できない

機械学習の構築した学習データを用いて,ロジスティック回帰モデルで学習させたい

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

エラーメッセージ Traceback (most recent call last): File ".py", line 36, in <module> clf = clf.fit(X_train, y_train) File "/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/_logistic.py", line 1342, in fit accept_large_sparse=solver != 'liblinear') File "/usr/local/lib/python3.6/dist-packages/sklearn/base.py", line 432, in _validate_data X, y = check_X_y(X, y, **check_params) File "/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py", line 73, in inner_f return f(**kwargs) File "/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py", line 803, in check_X_y estimator=estimator) File "/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py", line 73, in inner_f return f(**kwargs) File "/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py", line 599, in check_array array = np.asarray(array, order=order, dtype=dtype) File "/home/shoichirotaga/.local/lib/python3.6/site-packages/numpy/core/_asarray.py", line 85, in asarray return array(a, dtype, copy=False, order=order) ValueError: could not convert string to float: '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

該当のソースコード

import pandas as pd import pickle from sklearn.linear_model import LogisticRegression X_train = pd.read_table('train_change.feature_2.txt', header=None) y_train = pd.read_table('train_change.txt', header=None)[1] clf = LogisticRegression(penalty='l2', solver='sag', random_state=0) clf = clf.fit(X_train, y_train) with open('pickle_file.txt', 'wb') as f: pickle.dump(clf, f)

ここに言語名を入力

python3

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

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

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

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

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

tiitoi

2020/05/17 04:21

pickle に保存するところではなく、fit() で学習を実行するところでエラーが発生していませんか? fit() に渡す X_train, y_train は数値のみしか許可されていません。エラーを見ると、そのどちらかに文字列が含まれているような気がします。X_train, y_train の中身を print として確認してください
output30

2020/05/19 03:42

確認してみると、y_trainが文字列だったので、map()で数値に変換したら読み込めました。 ありがとうございました!
guest

回答1

0

read_table()は区切り文字がタブ\tですが、エラーメッセージを見るとValueError: could not convert string to float: '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0txtファイルはスペース区切りのように見えます。
正しい区切り文字を指定してpandasでtxtファイルを読み込めば良いでしょう。

投稿2020/05/17 05:07

meg_

総合スコア10760

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問