使用sklearn.svm类对手写体数字图片进行分类 训练数据:digits_training.csv 测试数据:digits_testing.csv 第1列是类别,其他列是特征属性。 代码要求: 1· 载入训练数据、分出特征属性和类别,对特征属性标准化,显示读入数据的行数 xTrain = trainData[:,1:NTrain] yTrain = trainData[:,0] 标准化函数 def normalizeData(X): return (X - X.mean())/X.max() 2·训练多分类SVM模型 model = svm.SVC(decision_function_shape='ovo') 3·载入测试数据,分出特征属性和类别,对特征属性标准化,显示读入数据的行数 4·使用模型对测试集进行预测,显示预测错误数据的数目、预测数据的准确率
时间: 2024-03-16 16:44:06 浏览: 154
SVM图像分类:使用`sklearn.svm`进行图像分类
好的,这是一个使用sklearn.svm类对手写体数字图片进行分类的问题。以下是相应的代码:
```python
import numpy as np
from sklearn import svm
# 载入训练数据
trainData = np.loadtxt('digits_training.csv', delimiter=',')
NTrain = trainData.shape[1] - 1
xTrain = trainData[:, 1:NTrain]
yTrain = trainData[:, 0]
# 标准化函数
def normalizeData(X):
return (X - X.mean()) / X.max()
# 对特征属性进行标准化
xTrain = normalizeData(xTrain)
# 训练多分类SVM模型
model = svm.SVC(decision_function_shape='ovo')
model.fit(xTrain, yTrain)
# 载入测试数据
testData = np.loadtxt('digits_testing.csv', delimiter=',')
xTest = testData[:, 1:NTrain]
yTest = testData[:, 0]
# 对特征属性进行标准化
xTest = normalizeData(xTest)
# 使用模型对测试集进行预测
yPred = model.predict(xTest)
# 显示预测错误数据的数目
numErrors = (yPred != yTest).sum()
print('预测错误数据的数目:', numErrors)
# 显示预测数据的准确率
accuracy = (1 - numErrors / len(yTest)) * 100
print('预测数据的准确率:', accuracy, '%')
```
运行上述代码,即可对手写体数字图片进行分类,并计算出预测数据的准确率。
阅读全文