奋进小牛 2022-11-11 15:16 采纳率: 84.2%
浏览 26
已结题

使用SVM对手写体数字图片分类,python报错

使用SVM对手写体数字图片分类

import pandas as pd
from sklearn import svm
import joblib
print("1.载入训练数据,对训练数据进行标准化")
train_data = pd.read_csv ('digits_training.csv')
# print(data)
# 分类属性
yTrain = train_data.values[:,0]
# 特征属性
xTrain = train_data.values[:,1:]

# 标准化函数
def normalization(X):
    return (X-X.mean())/X.max()
# print("xTrain:{0}".format(xTrain.shape))
# 对特征属性进行标准化处理
xTrain = normalization(xTrain)
# print(xTrain.shape[1])
# print(xTrain.shape)
print("训练数据:",xTrain.shape[0],"条")

# 构建模型
'''
默认核函数是 ‘rbf’-->就是radial basis function keranl (径向基核函数)
模型准确率约为0.89
使用线性核函数(linear)构建模型,准确率在0.908左右
线性核函数主要用于线性可分的情况
在特征数量相对于样本数量非常多的时候,适合采用线性核函数
'''
model = svm.SVC(decision_function_shape='ovo',kernel='linear')
print("2.训练模型……")
model.fit(xTrain,yTrain)
print("3.保存模型……")
joblib.dump(model,"model/svm_classifier_model1.m")
print("4.加载测试数据,对测试数据进行标准化……")
test_data = pd.read_csv("digits_testing.csv")
yTest = test_data.values[:,0]
xTest = test_data.values[:,1:]
print("测试数据:",xTest.shape[0],"条")
xTest = normalization(xTest)
print("5.加载测试好的模型,进行预测……")
model = joblib.load("model/svm_classifier_model1.m")
result =model.predict(xTest)
print("预测错误数据:",(result!=yTest).sum())
print("测试数据正确率:",(result==yTest).sum()/len(yTest))
print("模型内构建正确率估计:",model.score(xTest,yTest))

报错如下:

img


文件夹里的数据集:

img

'model/svm_classifier_model1.m'这个文件是干嘛的呀?

  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 已结题 (查看结题原因) 11月12日
      • 已采纳回答 11月12日
      • 创建了问题 11月11日

      悬赏问题

      • ¥15 MATLAB 调用comsol如何加速设计?
      • ¥15 echarts地图添加点击事件
      • ¥15 不知道带什么标题好随便搞一个吧
      • ¥15 ffmpeg 图片合成视频
      • ¥15 软科大学爬取获取所有数据
      • ¥15 如何修改损失函数以及代码讲解
      • ¥15 有偿咨询!!程序的小数点怎么取到后四位啊!
      • ¥15 IRS智能反射面相关文章代码
      • ¥15 landsat5的两幅影像镶嵌前波段是123457,为什么镶嵌后波段变成了123456?
      • ¥15 关于#matlab#中fmincon函数如何处理约束问题?