2014-02-07 49 views
0

我得到一個錯誤「無效索引標量變量」在此行中「無效索引標量變量」:使用Python RandomForestClassifier

預測= [[指數,X [1]]索引中,x在枚舉(rf.predict(測試),開始= 1)]

我知道,有類似的問題的解決方案,但我應該在我的代碼有兩個列,其中第一個是索引,第二輸出溶液 - 預測。所以,我用枚舉計數索引從1到n的方法,我不知道如何解決我的錯誤,我是新來的Python和像列表comphrehations的東西。謝謝你的幫助。

def main():  
    dataset = genfromtxt(open('train.csv', 'r'), delimiter = ',', dtype = 'int64')[1:] 
    target = [x[0] for x in dataset] 
    train = [x[1:] for x in dataset] 
    test = genfromtxt(open('test.csv', 'r'), delimiter = ',', dtype = 'int64')[1:] 
    rf = RandomForestClassifier(n_estimators = 1000, n_jobs = CPU) 
    rf.fit(train, target) 

    predicted = [[index, x[1]] for index, x in enumerate(rf.predict(test), start = 1)] 
    savetxt('submission_randomf2.csv', predicted, delimiter=',', fmt='%d,%f', header='ImageId,Label', comments = '')  

if __name__ == "__main__": 
    main() 
+0

是什麼'rf.predict(測試)'返回?大概至少有一個返回的項是標量,所以試圖將它索引爲'x [1]'失敗。 – geoffspear

回答

1

這裏rf.predict(test)是一維數組作爲輸出尺寸是一個(參見documentation)。

嘗試以下操作:

predicted = [[index, x] for index, x in enumerate(rf.predict(test), start = 1)] 
+0

謝謝,它運作良好!) – Rachnog

相關問題