2017-06-21 109 views
3

我正在與sklearnRandomForestClassifierRandomForest IndexError:只有整數,切片(`:`),省略號(`...`),numpy.newaxis(`無`)和整數或布爾數組是有效索引

class RandomForest(RandomForestClassifier): 

    def fit(self, x, y): 
     self.unique_train_y, y_classes = transform_y_vectors_in_classes(y) 
     return RandomForestClassifier.fit(self, x, y_classes) 

    def predict(self, x): 
     y_classes = RandomForestClassifier.predict(self, x) 
     predictions = transform_classes_in_y_vectors(y_classes, self.unique_train_y) 
     return predictions 

    def transform_classes_in_y_vectors(y_classes, unique_train_y): 
     cyr = [unique_train_y[predicted_index] for predicted_index in y_classes] 
     predictions = np.array(float(cyr)) 
     return predictions 

我得到這個錯誤信息:

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices 
+1

哪一行引發異常? –

+0

錯誤來自 cyr = [y_classes中predict_index的[unique_train_y [predicted_index]] –

+0

什麼值保存'y_classes'?它是整數嗎? –

回答

1

似乎y_classes認爲是無效的指標值。

當您嘗試使用predicted_index獲得unique_train_y的訪問權限時,您將得到異常,因爲predict_index不是您認爲的那樣。

嘗試執行以下代碼:

cyr = [unique_train_y[predicted_index] for predicted_index in range(len(y_classes))] 
# assuming unique_train_y is a list and predicted_index should be integer. 
相關問題