前提・実現したいこと
オライリーの教本「scikit-learnとTensorFlowによる実践機械学習」について
見本コードを実施したいが、
1章のLinearRegressionを実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) <ipython-input-4-1ae6d5bba27c> in <module> 23 24 # Train the model ---> 25 model.fit(X, y) 26 27 # Make a prediction for Cyprus C:\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in fit(self, X, y, sample_weight) 483 else: 484 self.coef_, self._residues, self.rank_, self.singular_ = \ --> 485 linalg.lstsq(X, y) 486 self.coef_ = self.coef_.T 487 C:\Anaconda3\lib\site-packages\scipy\linalg\basic.py in lstsq(a, b, cond, overwrite_a, overwrite_b, check_finite, lapack_driver) 1224 if info < 0: 1225 raise ValueError('illegal value in %d-th argument of internal %s' -> 1226 % (-info, lapack_driver)) 1227 resids = np.asarray([], dtype=x.dtype) 1228 if m > n: ValueError: illegal value in 4-th argument of internal None
該当のソースコード
python
1import matplotlib.pyplot as plt 2import numpy as np 3import pandas as pd 4import sklearn.linear_model 5 6oecd_bli = pd.read_csv(datapath + "oecd_bli_2015.csv", thousands=',') 7gdp_per_capita = pd.read_csv(datapath + "gdp_per_capita.csv",thousands=',',delimiter='\t', 8 encoding='latin1', na_values="n/a") 9 10country_stats = prepare_country_stats(oecd_bli, gdp_per_capita) 11X = np.c_[country_stats["GDP per capita"]] 12y = np.c_[country_stats["Life satisfaction"]] 13 14country_stats.plot(kind='scatter', x="GDP per capita", y='Life satisfaction') 15plt.show() 16 17model = sklearn.linear_model.LinearRegression() 18 19model.fit(X, y) 20 21X_new = [[22587]] # Cyprus' GDP per capita 22print(model.predict(X_new)) # outputs [[ 5.96242338]]
試したこと
エラー文からlstsqに問題があると考えていますが、
対策が思いつかず、何も試せていません。
補足情報(FW/ツールのバージョンなど)
プログラムは下記のリンクからダウンロードした見本を使用。
見本コードリンク
(ダウンロードしたファイル中の「01_the_machine_learning_landscape.ipynb」のソースコード)
使用環境
python : 3.7.3
scikit-learn : 0.20.3
pandas : 0.24.2
numpy : 1.16.2
scipy : 1.4.1
回答1件
あなたの回答
tips
プレビュー