2016-04-19 19 views
0

何らかの理由で、このデータセットのフィーチャが「モデルn_featuresが16、入力n_featuresが18189」と解釈されています。ここで、18189は行の数で、16が正しい特徴リスト。モデルのフィーチャの数が入力と一致する必要があります

疑わしいコードはここにある:

for var in cat_cols: 
    num = LabelEncoder() 
    train[var] = num.fit_transform(train[var].astype('str')) 
    train['output'] = num.fit_transform(train['output'].astype('str')) 

for var in cat_cols: 
    num = LabelEncoder() 
    test[var] = num.fit_transform(test[var].astype('str')) 
    test['output'] = num.fit_transform(test['output'].astype('str')) 


clf = RandomForestClassifier(n_estimators = 10) 

xTrain = train[list(features)].values 
yTrain = train["output"].values 

xTest = test[list(features)].values 
xTest = test["output"].values 

clf.fit(xTrain,yTrain) 
clfProbs = clf.predict(xTest)#Error happens here. 

誰もが任意のアイデアを得ましたか。

サンプル訓練日のcsv

tr4,42,"JobCat4","divorced","tertiary","yes",2,"yes","no","unknown",5,"may",0,1,-1,0,"unknown","TypeA" 

サンプルテストデータのcsv

tst2,47,"JobCat3","married","unknown","no",1506,"yes","no","unknown",5,"may",0,1,-1,0,"unknown",? 

答えて

0

あなたは小さなタイプミスを持っている - あなたは、変数xTestを作成し、その後すぐに間違ったものに上書きされます。違反行を次のように変更してください。

xTest = test[list(features)].values 
yTest = test["output"].values 
関連する問題