SVM对sklearn自带手写数字数据集进行分类,帮我用python代码做一下
时间: 2024-11-20 22:56:48 浏览: 10
SVM对鸢尾花(Iris)数据集进行分类的Python代码
SVM (支持向量机) 是一种常用的监督学习算法,在Python的scikit-learn库中可以很方便地使用。首先,我们需要导入必要的库并加载sklearn的数据集。这里以mnist手写数字数据为例,展示如何使用SVM进行分类:
```python
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import classification_report
# 加载手写数字数据集
digits = datasets.load_digits()
X = digits.data
y = digits.target
# 数据预处理 - 特征缩放(将特征值标准化)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 使用SVM模型,设置核函数为线性(如果需要非线性,可以尝试改变kernel参数)
svm_model = SVC(kernel='linear')
# 训练模型
svm_model.fit(X_train, y_train)
# 预测测试集
y_pred = svm_model.predict(X_test)
# 评估性能
print("Classification Report:")
print(classification_report(y_test, y_pred))
阅读全文