簡體   English   中英

使用 Scikit-Learn 和 SVM 的機器學習

[英]Machine Learning Using Scikit-Learn & SVM

sklearn.datasets模塊加載流行數字數據集並將其分配給可變數字。

digits.data分成兩組名稱X_trainX_test 此外,將 digits.target 分成兩組Y_trainY_test

提示:使用 sklearn.model_selection 中的sklearn.model_selection train_test_split()方法; random_state設置為 30; 並進行分層抽樣。 使用默認參數從X_train集和Y_train標簽構建 SVM 分類器。 將 model 命名為svm_clf

在測試數據集上評估 model 的准確性並打印其分數。 我使用了以下代碼:

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

我得到以下 output。

(1347,64)
(450,64)
0.4088888888888889

但是我無法通過測試。 有人可以幫忙解決問題嗎?

您缺少分層抽樣要求; 修改您的拆分以包含它:

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

檢查文檔

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

即使在使用它之后它也沒有通過

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM