2017-03-16 9 views
0

私はマシンが1059行4列のデータセットの学習が、でモデルに合うようにしようとしたとき、私は次のエラーを取得しています実装しようとしています:シキット機械学習でエラーを修正するにはどうすればいいですか?

knn.fit(myData['RAB'], myData['ETAPE'])

ValueError: Found input variables with inconsistent numbers of samples: [1, 1059]

DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample. Also how can I define multiple predictor variables?

形状の出力は次のとおりです。

(1059, 4)

複数のプレディクタ変数を定義するにはどうすればよいですか?

from sklearn import datasets 
from sklearn.neighbors import KNeighborsClassifier 
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 

plt.style.use('ggplot') 

myData=pd.read_csv('sabmin.csv', sep=';') 
print(myData.shape) 
knn = KNeighborsClassifier(n_neighbors=6) 
knn.fit(myData['RAB'], myData['ETAPE']) 

答えて

2

あなたはsklearnの予想される形状に従って間違っています。ここで

knn.fit(myData['RAB'], myData['ETAPE']) 

あなたが入力、出力として1として1シリーズを与えているようです。あなたが望むものではないかもしれないが、Sklearnはそれを1059次元の1つのサンプルとして取るだろう。 sklearnのエラー出力は私の推測と互換です。

正確に何をしているのかを知るのは難しいですが、少なくとも(1、1059)から(1059、1)に変更する必要があります。しかし、私はあなたがもっと多くの列を使いたいと思っていたでしょうが、わかりません。

また、より簡単にnumpy-matrixを作成することもできます(私はsklearnのnumpyベースのユーザーですが、多くの人がこの名前ベースのインデックス作成のためにパンダを使用しています)。私は本当にsklearnのドキュメント(史上最高のドキュメントの1)を読んでお勧めしますと、おそらく正確に何が起こっているかを知るには余りにも& numpyののドキュメントをパンダ

knn.fit(myData['RAB'].reshape(-1, 1), myData['ETAPE']) 

前者はようなものになるだろう。

sklearnの膨大な例はほとんどがnumpy-inputに基づいていることがわかります。初心者の方にとっては、パンダを使用する方が複雑です(DataFrames、Series、...)。

+0

作成後、適合モデルでnumpy-matrixを使用するにはどうすればよいですか?さらに、形状の変更は推奨されていません。だから、私はnumpyメソッドを使用してください。 –

+0

reshapeは推奨されていません。可能な2つの用途のうちの1つ。これらのコアライブラリの多くを理解することは、本当に良い考えです。 numpyから始め、pandas-dataをnumpy-dataに変換する方法を読んでください。 – sascha

+0

@IPPOKRATISKARAKOTSOGLOUでパンダをnumpyに変換する[pandas.DataFrame.as_matrix](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html) – sera

関連する問題