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

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

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

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

機械学習

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Python

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

Q&A

解決済

1回答

914閲覧

reshapeをする箇所が分からない

os-t

総合スコア20

Anaconda

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

機械学習

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Python

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

0グッド

0クリップ

投稿2020/04/14 07:54

前提・実現したいこと

wineデータをL1正規化付きロジスティック回帰を適用したい。

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

C:\Users\anaconda3\lib\site-packages\sklearn\utils\validation.py:760: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). y = column_or_1d(y, warn=True) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-144-5bb30b05e054> in <module> 1 lr = LogisticRegression(penalty = 'l1', C = 1.0, solver = 'liblinear') 2 lr.fit(X_train_std, y_train) ----> 3 print('Training accuracy:', lr.score(X_test_std, y_train)) 4 print('Test accuracy:', lr.score(X_test_std, y_test)) ~\anaconda3\lib\site-packages\sklearn\base.py in score(self, X, y, sample_weight) 367 """ 368 from .metrics import accuracy_score --> 369 return accuracy_score(y, self.predict(X), sample_weight=sample_weight) 370 371 ~\anaconda3\lib\site-packages\sklearn\metrics\_classification.py in accuracy_score(y_true, y_pred, normalize, sample_weight) 183 184 # Compute accuracy for each possible representation --> 185 y_type, y_true, y_pred = _check_targets(y_true, y_pred) 186 check_consistent_length(y_true, y_pred, sample_weight) 187 if y_type.startswith('multilabel'): ~\anaconda3\lib\site-packages\sklearn\metrics\_classification.py in _check_targets(y_true, y_pred) 78 y_pred : array or indicator matrix 79 """ ---> 80 check_consistent_length(y_true, y_pred) 81 type_true = type_of_target(y_true) 82 type_pred = type_of_target(y_pred) ~\anaconda3\lib\site-packages\sklearn\utils\validation.py in check_consistent_length(*arrays) 210 if len(uniques) > 1: 211 raise ValueError("Found input variables with inconsistent numbers of" --> 212 " samples: %r" % [int(l) for l in lengths]) 213 214 ValueError: Found input variables with inconsistent numbers of samples: [124, 54] [ ]: ​

該当のソースコード

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) 40print('Training accuracy:', lr.score(X_test_std, y_train)) 41print('Test accuracy:', lr.score(X_test_std, y_test))

試したこと

教科書が発売された時から、若干の仕様変更が行われているみたいなので、なかなかうまくいきません。わかる方お願いします。

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

anaconda JupiterLab 1.2.6

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

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

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

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

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

hoshi-takanori

2020/04/14 08:29

教科書の名前を教えてください。
os-t

2020/04/14 09:05

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear) です。
guest

回答1

0

ベストアンサー

以下の修正で動きましたけど、結果が正しいかどうかは分かりません。

diff

1 lr = LogisticRegression(penalty = 'l1', C = 1.0, solver = 'liblinear') 2-lr.fit(X_train_std, y_train) 3-print('Training accuracy:', lr.score(X_test_std, y_train)) 4+lr.fit(X_train_std, y_train.ravel()) 5+print('Training accuracy:', lr.score(X_train_std, y_train)) 6 print('Test accuracy:', lr.score(X_test_std, y_test))

投稿2020/04/14 09:34

hoshi-takanori

総合スコア7901

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

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

os-t

2020/04/15 01:59

値は多少違いましたが、動いたので先に進みます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問