Машинное обучение с использованием Scikit-Learn

#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)
  

Проверьте документацию.