Я все еще начинаю изучать машинное обучение в первый раз.Я занимаюсь проблемой классификации по 4 классам в своем исследовании.Я хотел бы рассчитать точность, точность и вспомнить.Поскольку количество данных невелико (около 30), оценка зависит от того, как их можно разделить на наборы поездов и наборы тестов.Когда выполняется перекрестная проверка, дисперсия велика (например, точность равна [0,83333333 0,72727273 0,44444444]) Я затрудняюсь оценить этот классификатор.В таком случае, я должен выполнить перекрестную проверку 100 или 500 раз и вычислить среднее значение баллов проверки?Это очень элементарный вопрос и плохой английский, я хочу, чтобы вы ответили на этот вопрос.
ava = []
avp = []
avr = []
estimators = [("MinMaxScaler", MinMaxScaler()),
("SVC", SVC(kernel='linear', class_weight='balanced',
C=1, decision_function_shape='ovr'))]
pl = Pipeline(estimators)
for i in range(ITER):
accuracy = cross_val_score(pl, X, y, cv=StratifiedKFold(n_splits=3, shuffle=True))
precision = cross_val_score(pl, X, y, scoring='precision_macro', cv=StratifiedKFold(n_splits=3, shuffle=True))
recall = cross_val_score(pl, X, y, scoring='recall_macro', cv=StratifiedKFold(n_splits=3, shuffle=True))
ava.append(np.mean(accuracy))
avp.append(np.mean(precision))
avr.append(np.mean(recall))
print("cross-val-score accuracy {}times average: ".format(ITER), np.mean(ava), "\n")
print("cross-val-score precision {}times average: ".format(ITER), np.mean(avp), "\n")
print("cross-val-score recall {}times average: ".format(ITER), np.mean(avr), "\n")