支持向量机的图像识别代码 找一个案例
时间: 2024-10-01 09:06:22 浏览: 14
支持向量机(Support Vector Machine, SVM)是一种监督学习算法,常用于分类和回归分析。在图像识别中,SVM可以用来训练模型,通过找到数据集中样本的最佳超平面来进行区分。
下面是一个简单的Python示例,使用Scikit-Learn库来实现支持向量机对手写数字的MNIST数据集进行图像识别:
```python
# 导入必要的库
from sklearn import datasets
from sklearn import svm
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 加载MNIST数据集
digits = datasets.load_digits()
X = digits.data
y = digits.target
# 数据预处理,分割成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建SVM分类器
clf = svm.SVC(gamma=0.001, C=100) # gamma参数影响核函数的行为,C参数控制误分类惩罚
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集
predictions = clf.predict(X_test)
# 绘制一些预测结果
fig, axs = plt.subplots(5, 5, figsize=(5, 5))
for i in range(5):
for j in range(5):
index = i * 5 + j
axs[i, j].imshow(X_test[index].reshape((8, 8)), cmap='gray')
axs[i, j].set_title("Predicted: {}".format(predictions[index]))
plt.tight_layout()
plt.show()