前提
Python初心者です。機械学習の知識は多少あります。
実現したいこと
KNeighborsRegressor()を用いて,簡単な回帰 (予測) を行いたい。
発生している問題・エラーメッセージ
AttributeError: 'list' object has no attribute 'shape'
該当のソースコード
Python
1import numpy as np 2from sklearn import neighbors 3 4# 評価値行列 5rating_mtx = np.array([[5, 3, 4, 2, np.NaN], 6 [3, 1, 2, 3, 3], 7 [4, 3, 4, 2, 5], 8 [3, 3, 1, 5, 4], 9 [1, 5, 5, 2, 1]]) 10 11# 学習用データ 12X = rating_mtx[1:5, 0:4] # 説明変数 13y = rating_mtx[1:5, 4] # 目的変数 14 15# 検証データ 16x_suzuki = rating_mtx[0, 0:4] 17 18# モデル構築 19knn = neighbors.KNeighborsRegressor(3, weights='distance', metric='euclidean') 20model = knn.fit(X, y) 21 22# 評価値の推定 23model.predict([x_suzuki])
試したこと
上記のコードは,(株)BrainPadの小田氏によるコードそのままですが,
最後のmodel.predict()のところでAttributeErrorが出ます。
引数のx_suzukiは,確かに二次元リストになっていると思うのですが,
うまく動きません。私のnumpy配列についての理解が不足しているため,
解決策を思い付くことができません。どなたか,ご教示いただけないでしょうか。
補足情報(FW/ツールのバージョンなど)
コーディング環境はGoogle Colaboratoryです。また,上記コードの引用元は次のURLです。
https://blog.brainpad.co.jp/entry/2017/02/03/153000
回答1件
あなたの回答
tips
プレビュー