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

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

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

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

機械学習

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

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

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

Q&A

解決済

1回答

566閲覧

図がうまく表示されない。

os-t

総合スコア20

Anaconda

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

機械学習

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

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

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

0グッド

0クリップ

投稿2020/04/15 05:21

前提・実現したいこと

連日の投稿になります。
L1正則化付きロジスティック回帰の図を表示させたい。

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

エラーメッセージは発生していないが、図がalcoholしか表示されない。

該当のソースコード

Python

1import pandas as pd 2import numpy as np 3df_wine = pd.read_csv( 4 'https://raw.githubusercontent.com/tirthajyoti/Machine-Learning-with-Python/master/Datasets/wine.data.csv', header = 0) 5 6df_wine.columns = ['Class label', 'Alcohol', 'Malic acid', 'Ash', 7 'Alcalinity of ash', 'Magnesium', 'Total phenols', 'Flavanoids', 8 'Nonflavanoid phenols', 'Proanthocyanis', 'Color intenesity', 'Hue', 9 'OD280/OD315 of diluted wines', 'Proline'] 10 11 12print('Class labels', np.unique(df_wine['Class label'])) 13df_wine.head() 14 15from sklearn.model_selection import train_test_split 16X, y = df_wine.iloc[:, 1].values, df_wine.iloc[:, 0].values 17 18X_train, X_test, y_train, y_test = \ 19 train_test_split(X.reshape(-1, 1), y.reshape(-1, 1), test_size = 0.3, random_state = 0, stratify = y) 20 21from sklearn.preprocessing import MinMaxScaler 22mms = MinMaxScaler() 23X_train_norm = mms.fit_transform(X_train) 24X_test_norm = mms.transform(X_test) 25 26ex = np.array([0, 1, 2, 3, 4, 5]) 27print('standardized:', (ex - ex.mean()) / ex.std()) 28print('normalized:', (ex - ex.min()) / (ex.max() - ex.min())) 29 30from sklearn.preprocessing import StandardScaler 31stdsc = StandardScaler() 32X_train_std = stdsc.fit_transform(X_train) 33X_test_std = stdsc.transform(X_test) 34 35from sklearn.linear_model import LogisticRegression 36LogisticRegression(penalty = 'l1') 37 38lr = LogisticRegression(penalty = 'l1', C = 1.0, solver = 'liblinear') 39lr.fit(X_train_std, y_train.ravel()) 40print('Training accuracy:', lr.score(X_train_std, y_train)) 41print('Test accuracy:', lr.score(X_test_std, y_test)) 42lr.intercept_ 43lr.coef_ 44 45import matplotlib.pyplot as plt 46fig = plt.figure() 47ax = plt.subplot(111) 48colors = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 49 'pink', 'lightgreen', 'lightblue', 'gray', 'indigo', 'orange'] 50 51weights, params = [], [] 52 53for c in np.arange(-4., 6.): 54 lr = LogisticRegression(penalty = 'l1', C = 10.**c, solver = 'liblinear', random_state = 0) 55 lr.fit(X_train_std, y_train.ravel()) 56 weights.append(lr.coef_[1]) 57 params.append(10**c) 58 59weights = np.array(weights) 60 61for column, color in zip(range(weights.shape[1]), colors): 62 plt.plot(params, weights[:, column], label = df_wine.columns[column + 1], color = color) 63 64plt.axhline(0, color = 'black', linestyle = '--', linewidth = 3) 65plt.xlim([10**(-5), 10**5]) 66plt.ylabel('weight coefficient') 67plt.xscale('log') 68plt.legend(loc = 'upper left') 69ax.legend(loc = 'upper center', bbox_to_anchor = (1.38, 1.03), ncol = 1, fancybox = True) 70plt.show()

試したこと

Training accuracy:とTest accuracy:、lr.intercept_、lr.coef_の値がおかしいので、そのあたりを変更してみたのですが、改善しませんでした。

補足情報(ツールのバージョンなど)

anaconda JupiterLab 1.2.6
今回のコードが載っている教科書:[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

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

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

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

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

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

tiitoi

2020/04/15 05:32 編集

> 図がalcoholしか表示されない。 X, y = df_wine.iloc[:, 1].values, df_wine.iloc[:, 0].values でいくつかある特徴のうち、1列目 Alcohol の値だけに注目して、ロジスティック回帰しているので、結果も Alcohol の値を回帰した結果の重みの値しかプロットされないというのはコードに記載の意図通りではないでしょうか。
os-t

2020/04/15 07:06

iloc[:, 1:]がiloc[:, 1]になっていました・・・ ありがとうございます。
guest

回答1

0

自己解決

解決しました。ありがとうございます。

投稿2020/04/15 07:06

os-t

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問