Я использовал как в случайных лесах, так и в повторных стратифицированных kfold. Однако результаты точности отличаются. почему?
Первый код:
rskf = RepeatedStratifiedKFold(n_splits=10, n_repeats=10)
classifier = RandomForestClassifier()
results_rskfold = cross_val_score(classifier, X, y, cv=rskf)
print("Accuracy: %.2f%%" % (results_rskfold.mean()*100.0))
Accuracy = 71.42%
Второй код:
accuracy_C = []
rskf = RepeatedStratifiedKFold(n_splits=10, n_repeats=10)
rskf.get_n_splits(X, y)
classifier = RandomForestClassifier()
for train_index, test_index in rskf.split(X,y):
# print("Train:", train_index, "Validation:", test_index)
X1_train, X1_test = X.iloc[train_index], X.iloc[test_index]
y1_train, y1_test = y.iloc[train_index], y.iloc[test_index]
classifier.fit(X1_train,y1_train)
prediction = classifier.predict(X1_test)
score = accuracy_score(prediction, y1_test)
accuracy_C.append(score)
print("Accuracy: %.2f%%" % (np.array(accuracy_C).mean()*100))
Accuracy: 71.33%
Разница невелика, однако она существует. Кто-нибудь может объяснить мне, почему? И так ли лучше, чем другой?