私は一般的に機械学習に精通しており、具体的にはscikit-learnです。ValueError Scikitは学びます。モデルの機能の数が入力と一致しません
私は私自身のデータ・セットを使用しています、自分で練習するためにサイトhttp://scikit-learn.org/stable/tutorial/basic/tutorial.html
に与えられた例を使用しようとしています。私のデータセットは、二つの異なるCSVファイルに分割されています。Train_data.csvは
(32列が含まれ、最後の列には、出力値です)。
Test_data.csvは(31列が含まれている列が欠落している出力 - ?ケースである必要があり、なし)
テストデータがトレーニングデータよりも1列少ない..です
私は、(トレーニングデータを使用して)学習し、次に(テストデータを使用して)予測するために、次のコードを使用しています。ここで
*ValueError: X.shape[1] = 31 should be equal to 29, the number of features at training time*
が私のコードである(それは完全に間違って見える場合申し訳ありません:() import pandas as pd #import the library
from sklearn import svm
mydata = pd.read_csv("Train - Copy.csv") #I read my training data set
target = mydata["Desired"] #my csv has header row, and the output label column is named "Desired"
data = mydata.ix[:,:-3] #select all but the last column as data
clf = svm.SVC(gamma=0.001, C=100.) #Code from the URL above
clf.fit(data,target) #Code from the URL above
test_data = pd.read_csv("test.csv") #I read my test data set. Without the output column
clf.predict(test_data[-1:]) #Code from the URL above
トレーニングデータのcsvラベルは次のようになります。
私が直面しています問題は誤りであります:
値1、値2、値3、Value4、出力
テストデータのcsvラベルは、次のようになります。
値1、値2、値3、値4。
感謝:)
私はターゲットがエラーの原因となる可能性のあるデータよりも少ない要素を持っていると思います。 – Whitefret
はい、そうです。しかし、私はそこに正確に混乱しています。しかし、論理、私のトレーニングセットは、1つの要素(結果)を持つ必要があります。テストデータは使用しないでください。理解は正しいですか? –
いいえ、あなたのテストデータではありません、あなたの目標です。 sklearn表記法では、Xは、Xがデータを表すタプルまたはリストのタブであり、yが結果である場合、モデルで見つけなければならないターゲット値です。 – Whitefret