基于svm的图像分类分类案例 python代码
时间: 2024-10-17 16:06:25 浏览: 33
基于支持向量机(SVM)的图像分类是一个常见的机器学习应用,它利用SVM的强大能力来区分不同类别。这里有一个简单的Python代码示例,使用Scikit-Learn库来实现图像分类,例如对MNIST手写数字数据集进行分类:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
import matplotlib.pyplot as plt
# 加载MNIST数据集
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分类器
svm_classifier = SVC(kernel='linear') # 使用线性核函数
# 训练模型
svm_classifier.fit(X_train, y_train)
# 预测测试集
y_pred = svm_classifier.predict(X_test)
# 显示分类效果
for i in range(5):
plt.subplot(2, 5, i + 1)
plt.imshow(digits.images[i], cmap=plt.cm.gray_r, interpolation='nearest')
plt.title('Ground Truth: %i\nPrediction: %i' % (y[i], y_pred[i]))
plt.show()
# 绩效评估指标
print("Accuracy:", metrics.accuracy_score(y_test, y_pred))
```
这个例子展示了如何使用SVM对MNIST数据集中的一小部分图像进行简单分类。请注意,实际项目中可能需要更复杂的预处理步骤、模型选择以及交叉验证等。
阅读全文