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

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

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

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

Python

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

Q&A

解決済

1回答

2333閲覧

'str' object has no attribute 'decode'の回避方法

inoino

総合スコア12

機械学習

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

Python

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

0グッド

0クリップ

投稿2022/04/04 02:20

編集2022/04/04 02:29

ロジスティック回帰を行いたく、

python3.7

1clf = LogisticRegression() 2clf.fit(X_train, y_train)

としたところ、

python3.7

1 File "C:\Users\JohnDoe\Anaconda3\lib\site-packages\sklearn\utils\optimize.py", line 243, in _check_optimize_result 2 ).format(solver, result.status, result.message.decode("latin1")) 3 4AttributeError: 'str' object has no attribute 'decode'

が出てきてしまい先に進みません。何か考えられる原因などはありますでしょうか。

なお、h5pyのバージョンは2.10.0、Kerasのバージョンは2.8.0、Tensorflowのバージョンは1.14.0です。

不足している情報などあればお伝えください。よろしくお願いします。

追記
指摘があったため、以下にコード全体を載せます。参考にしていたサイトはIkemen Mas Kot氏のhttps://qiita.com/maskot1977/items/b2cfb369f60ad02887b0です。

python3.7

1# 数値計算やデータフレーム操作に関するライブラリをインポートする 2import numpy as np 3import pandas as pd 4import statsmodels.api as sm 5import matplotlib.pyplot as plt 6from sklearn.preprocessing import StandardScaler 7import csv 8 9# 図やグラフを図示するためのライブラリをインポートする。 10#%matplotlib inline 11import matplotlib.pyplot as plt 12from pandas import plotting 13 14# 機械学習関連のライブラリ群 15 16from sklearn.model_selection import train_test_split # 訓練データとテストデータに分割 17from sklearn.metrics import confusion_matrix # 混合行列 18 19from sklearn.decomposition import PCA #主成分分析 20from sklearn.linear_model import LogisticRegression # ロジスティック回帰 21from sklearn.neighbors import KNeighborsClassifier # K近傍法 22from sklearn.svm import SVC # サポートベクターマシン 23from sklearn.tree import DecisionTreeClassifier # 決定木 24from sklearn.ensemble import RandomForestClassifier # ランダムフォレスト 25from sklearn.ensemble import AdaBoostClassifier # AdaBoost 26from sklearn.naive_bayes import GaussianNB # ナイーブ・ベイズ 27from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA# 線形判別分析 28from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA # 二次判別分析 29 30# データを読み込む 31df = pd.read_csv('./data/wine.csv') 32 33# 標準化 34scaler = StandardScaler() 35scaler.fit(np.array(df)) 36df_std = scaler.transform(np.array(df)) 37df_std = pd.DataFrame(df_std,columns=df.columns) 38 39# qualityが6未満は0,6以上は1に分類 40df["class"] = [0 if i < 6 else 1 for i in df['quality'].tolist()] 41 42# col_name取得 43col_name = df.columns 44#print(col_name[:12]) 45 46# それぞれに与える色を決める。 47color_codes = {0:'#0000FF', 1:'#FF0000'} 48colors = [color_codes[x] for x in df['class'].tolist()] 49 50# 散布図行列の作成(全要素の一対一の相関関係) 51# 2変数に強い相関があるなら片方に絞る 52# 一定値しかとらない変数は削除 53# plotting.scatter_matrix(df.dropna(axis=1)[df.columns[:-1]], figsize=(20, 20), color=colors, alpha=0.5) 54# plt.show() 55 56""" 57# 主成分分析 58dfs = df.apply(lambda x: (x-x.mean())/x.std(), axis=0).fillna(0) # データの正規化 59pca = PCA() 60pca.fit(dfs.iloc[:, :12]) 61# データを主成分空間に写像 = 次元圧縮 62feature = pca.transform(dfs.iloc[:, :12]) 63#plt.figure(figsize=(6, 6)) 64plt.scatter(feature[:, 0], feature[:, 1], alpha=0.5, color=colors) 65plt.title("Principal Component Analysis") 66plt.xlabel("The first principal component") 67plt.ylabel("The second principal component") 68plt.grid() 69plt.show() 70""" 71 72X = df.iloc[:, 1:12] # 説明変数(Column1は明らかに関係ないので外す) 73print(X.columns) 74y = df.iloc[:, 13] # 目的変数 75print(X) 76print(y) 77 78X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4) # 訓練データ・テストデータへのランダムな分割(40%がテスト60%が訓練) 79 80clf = LogisticRegression() #モデルの生成 81clf.fit(X_train, y_train) #学習 82 83# 正解率 (train) : 学習に用いたデータをどのくらい正しく予測できるか 84clf.score(X_train,y_train) 85 86# 正解率 (test) : 学習に用いなかったデータをどのくらい正しく予測できるか 87clf.score(X_test,y_test)

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

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

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

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

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

quickquip

2022/04/04 02:23 編集

なぜdecodeを書いたのですか? と思ったらsklearnの中のエラーですね……。 コード全体がないと答えが付く感じはしないです。 FAQであることに期待でしょうか。
inoino

2022/04/04 02:24

説明の仕方が良くなかったです。decodeをしたわけではなく、module内で行われていると思われます。
shiracamus

2022/04/04 02:32 編集

sklearn をインストールしたのは誰? sklearn が Python3 対応してないのでは? sklearn を Python3 対応の最新版に入れ替えてみてはいかがでしょう?
guest

回答1

0

自己解決

scikit-learnのアップデートとmax_iterの設定の見直しで無事エラーを回避できました。

回答いただいた皆様、ありがとうございました。

投稿2022/04/04 02:43

inoino

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問