#python #scikit-learn
#python #scikit-learn
Вопрос:
У меня есть набор данных, и я разделил его на проценты 60, 20, 20. 60% предназначено для обучения, 20% — для тестирования, а остальное — для проверки (я разделил, потому что мне это нужно).
Я использовал следующий код, чтобы разделить его (я думаю, что нашел его в stackoverflow) и применил наивный байесовский классификатор…
train_ratio = 0.60
validation_ratio = 0.20
test_ratio = 0.20
# train is now 60% of the entire data set
# the _junk suffix means that we drop that variable completely
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size = 1 - train_ratio)
# test is now 20% of the initial data set
# validation is now 20% of the initial data set
x_val, x_test, y_val, y_test = train_test_split(x_test, y_test, test_size=test_ratio/(test_ratio validation_ratio))
print(x_train, x_val, x_test)
q=gnb.fit(x_train, y_train)
predict = gnb.predict(x_test)
print(predict)
print("Accuracy: ", accuracy_score(y_test, predict))
Я попытался использовать scikit-learn для создания кривой обучения, но, согласно документации scikit-learn, функция кривой обучения выдает train_sizes, train_sores и valid_sores.
Это немного сбивает с толку, я новичок в scikit-learn, и я понятия не имею, как использовать make a learning curve с каждым процентом данных, которые я разделил.
Кто-нибудь знает, как использовать разделенные данные в кривых обучения scikit?
Заранее спасибо.
Комментарии:
1. Вам не нужно подмножество проверки для
learning_curve
. достаточно разделения на обучение / тестирование. вы находите необходимую статистику по поезду через разделитель cv, а затем используете оптимальные параметры для тестирования2. Понятно, большое вам спасибо.