2017-03-06 84 views
0

我有一個包含特徵值作爲浮標陣列和我有標記物,其是整數數組 - 1和0隨機森林評價陣列浮點數和整數 - numpy的

實施例: 特徵值:

[[ 17.99 10.38 122.8 ..., 0.147 0.242 0.079] 
[ 20.57 17.77 132.9 ..., 0.07  0.181 0.057]] 

當我將標籤追加到特徵值數組中時,標籤變爲浮動。 示例 - feature_values與附加0:

[[ 17.99 10.38 122.8 ..., 0.242 0.079 0. ]] 

當我運行下面的代碼:

training_set = data_features[:,0:9] 
test_set = data_features[:,9] 
seed = 7 
num_trees = 100 
max_features = 3 
kfold = model_selection.KFold(n_splits=10, random_state=seed) 
model = RandomForestClassifier(n_estimators=num_trees, max_features=max_features) 
results = model_selection.cross_val_score(model, training_set, test_set, cv=kfold) 
print(results.mean()) 

我得到一個錯誤:

raise ValueError("Unknown label type: %r" % y_type) 

ValueError: Unknown label type: 'continuous' 

從我讀過,我看到這是因爲標籤是漂浮物而發生的。

如果我將要素值的dtype更改爲「int」,則代碼確實有效,但我需要保留這些浮點數。

有沒有辦法將標籤作爲整數和特徵值作爲浮點數,以便代碼有效?

+0

'test_set = data_features [:,9] .astype(int)'this should do the trick。 –

+0

但我的測試集是從我的訓練集,這也是浮動10%。如果我做.astype(int)它使測試集零。 – nanachan

+0

你只需要將一列轉換爲int。得到它了。讓我檢查一下。如果這是一個標準的例子,你可以分享更多的代碼或鏈接到它。 –

回答

1

您需要將y_labels轉換爲整數,以便RandomForestClassifier可以對其進行訓練。

test_set = data_features[:,9].astype(int)