#python #machine-learning #scikit-learn #svm
#python #машинное обучение #scikit-learn #svm
Вопрос:
Загрузите набор популярных цифр из sklearn.datasets
модуля и присвоите ему переменные цифры.
Разделить digits.data
на два набора имен X_train
и X_test
. Кроме того, разделите digits.target на два набора Y_train
и Y_test
.
Подсказка: Используйте train_test_split()
метод из sklearn.model_selection
; установите random_state
значение 30; и выполните стратифицированную выборку. Создайте классификатор SVM из X_train
set и Y_train
меток с параметрами по умолчанию. Назовите модель как svm_clf
.
Оцените точность модели по набору тестовых данных и выведите его оценку. Я использовал следующий код:
import sklearn.datasets as datasets
import sklearn.model_selection as ms
from sklearn.model_selection import train_test_split
digits = datasets.load_digits();
X = digits.data
y = digits.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30)
print(X_train.shape)
print(X_test.shape)
from sklearn.svm import SVC
svm_clf = SVC().fit(X_train, y_train)
print(svm_clf.score(X_test,y_test))
Я получил следующий результат.
(1347,64)
(450,64)
0.4088888888888889
Но я не могу пройти тест. Кто-нибудь может помочь с тем, что не так?
Ответ №1:
Вам не хватает требования к стратифицированной выборке; измените разделение, чтобы включить его:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)
Проверьте документацию.