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

使用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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错