Я пытаюсь войти в Python для статистики, исходя из R фона.Я установил скрипт для перекрестной проверки набора данных, с которым работал:
cvIndex = np.remainder(np.arange(dat.shape[0]), 10)
pred = np.arange(dat.shape[0])
for i in range(10):
#get training and test set
trFeatures = dat[cvIndex != i, :]
teFeatures = dat[cvIndex == i, :]
trY = y[cvIndex != i]
#fit random forest
rf = RandomForestClassifier(n_estimators = 500, random_state = 42)
rf.fit(trFeatures, trY);
#make and store prediction
tePred = rf.predict_proba(teFeatures)[:, 1]
pred[cvIndex == i] = tePred.copy()
print(pred)
, который возвращает вектор всех нулей.Насколько я могу судить, это правильный способ установить подмножество вектора равным другому вектору (и действительно, я попытался сделать это с некоторыми фиктивными векторами, но с успехом).Другая очевидная потенциальная проблема заключается в том, что tePred может быть всеми нулями, но, например, извлечение любого конкретного случая (i = 9) дает следующее:
i = 9
#get training and test set
trFeatures = dat[cvIndex != i, :]
teFeatures = dat[cvIndex == i, :]
trY = y[cvIndex != i]
#fit random forest
rf = RandomForestClassifier(n_estimators = 500, random_state = 42)
rf.fit(trFeatures, trY);
#make and store prediction
tePred = rf.predict_proba(teFeatures)[:, 1]
print(tePred[1:50])
[ 0.264 0.034 0.02 0.002 0. 0.014 0. 0. 0. 0.102
0.14 0. 0.024 0.002 0. 0.002 0.004 0. 0.044 0. 0.382
0.042 0. 0.004 0. 0.112 0.002 0.074 0. 0.016 0.012
0.004 0. 0. 0.006 0.002 0.01 0. 0. 0. 0. 0.004
0.002 0.002 0.044 0.004 0. 0. 0.004]
Было бы очень признательно за помощь.