svm进行图片分类的python代码,要求使用不同核函数
时间: 2024-02-07 17:01:58 浏览: 73
不同核函数svm.py
好的,以下是一个基于sklearn的SVM进行图片分类的Python代码,使用了不同的核函数:
```
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
# 加载数据集
digits = datasets.load_digits()
# 获取数据和标签
X = digits.data
y = digits.target
# 数据预处理
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 定义不同核函数
kernels = ['linear', 'poly', 'rbf', 'sigmoid']
# 训练模型并测试
for kernel in kernels:
clf = svm.SVC(kernel=kernel)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Accuracy of SVM with {} kernel: {:.2f}%".format(kernel, acc*100))
```
上述代码中,首先加载了手写数字数据集,然后进行了数据预处理,接着将数据集分为训练集和测试集。然后定义了不同的核函数,分别对应线性核、多项式核、径向基核和sigmoid核。最后循环训练模型,并使用测试集进行测试,输出对应核函数的精度。
阅读全文