使用Scikit-Learn和SVM进行机器学习

时间:2020-08-21 10:56:35

标签: python machine-learning scikit-learn svm

从sklearn.datasets模块加载流行数字数据集并将其分配给可变数字。

将digits.data分为两个名称X_train和X_test。另外,将digits.target分成两组Y_train和Y_test。

提示:使用sklearn.model_selection中的train_test_split方法;将random_state设置为30;并进行分层抽样。 使用默认参数,从X_train集和Y_train标签构建SVM分类器。将模型命名为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 个答案:

答案 0 :(得分:3)

您缺少分层抽样要求;修改拆分以包括它:

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)

检查documentation