2.1.1.2 支持向量机(分类)(手写体识别)

import pandas as pd
import numpy as np
#导入手写体数字加载器
from sklearn.datasets import load_digits
#获得手写体数字的数码图像数据,存储在digits变量中
digits=load_digits()
digits.data.shape



#共有1797条,每幅图片由8*8=64的像素矩阵表示
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)
y_train.shape
y_test.shape



from sklearn.preprocessing import StandardScaler
#导入基于线性假设的支持向量机分类器
from sklearn.svm import LinearSVC

#特征标准化
ss=StandardScaler()
X_train=ss.fit_transform(X_train)
X_test=ss.fit_transform(X_test)



lsvc=LinearSVC()
lsvc.fit(X_train,y_train)
y_predict=lsvc.predict(X_test)


#accuracy
print(lsvc.score(X_test,y_test))

from sklearn.metrics import classification_report
print(classification_report(y_test,y_predict,target_names=digits.target_names.astype(str)))

#将数字类型转换为文本型

 

 


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用支持向量机进行手写体数字分类的步骤如下: 1. 加载数据集:加载手写数字数据集,将其划分为训练集和测试集。 2. 特征提取:对于手写数字识别问题,可以使用HOG特征提取方法将图像转换为特征向量。 3. 训练模型:使用训练集训练支持向量机模型。在训练过程中,需要调整模型参数,如C值、核函数类型、核函数参数等。 4. 测试模型:使用测试集测试支持向量机模型的性能。可以计算模型的准确率、精确率、召回率、F1值等评价指标,评估模型的性能。 5. 模型优化:根据测试结果,可以对模型进行优化,如调整模型参数、增加数据集、增加特征维度等,以提高模型的性能和泛化能力。 具体实现可以使用Python中的scikit-learn库,以下是一个简单的代码示例: ```python import numpy as np from sklearn import svm, metrics from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split # 加载数据集 digits = load_digits() X = digits.images.reshape((len(digits.images), -1)) y = digits.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 特征提取:使用HOG特征提取方法 from skimage.feature import hog def hog_features(X): features = [] for i in range(len(X)): feature = hog(X[i].reshape((8,8)), block_norm='L2-Hys', pixels_per_cell=(2,2), cells_per_block=(2,2)) features.append(feature) return np.array(features) X_train = hog_features(X_train) X_test = hog_features(X_test) # 训练模型 clf = svm.SVC(kernel='rbf', C=1, gamma=0.1) clf.fit(X_train, y_train) # 测试模型 y_pred = clf.predict(X_test) accuracy = metrics.accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) # 模型优化 # 调整C值和gamma值 params = {'C': [0.1, 1, 10], 'gamma': [0.01, 0.1, 1]} clf = svm.SVC(kernel='rbf') grid_search = GridSearchCV(clf, params, cv=5) grid_search.fit(X_train, y_train) print("Best parameters:", grid_search.best_params_) print("Best score:", grid_search.best_score_) ``` 以上代码中,使用HOG特征提取方法将图像转换为特征向量,然后使用支持向量机进行训练和测试。模型的性能使用准确率进行评价。通过调整C值和gamma值,使用网格搜索方法对模型进行优化,提高模型的准确率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值