使用 Scikit-Learn 和 SVM 进行机器学习
Machine Learning Using 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
但是我没能通过考试。有人可以帮忙解决问题吗?
您缺少分层抽样要求;修改您的拆分以包含它:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)
从 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
但是我没能通过考试。有人可以帮忙解决问题吗?
您缺少分层抽样要求;修改您的拆分以包含它:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=30, stratify=y)