Почему использование случайного леса этими двумя способами дает разную точность при использовании многократного стратифицированного kfold? - PullRequest
0 голосов
/ 16 апреля 2020

Я использовал как в случайных лесах, так и в повторных стратифицированных 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%

Разница невелика, однако она существует. Кто-нибудь может объяснить мне, почему? И так ли лучше, чем другой?

...