首页 > 其他分享 >SVM识别手写数字

SVM识别手写数字

时间:2024-10-25 15:10:54浏览次数:1  
标签:SVM img train test import 手写 识别 data

"""
https://mp.weixin.qq.com/s/SL57KglCbNDoONSKFmXRtA
支持向量机(SVM)
支持向量机用于分类和回归问题。比如,识别手写数字。
"""
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_digits

from matplotlib import pyplot as plt

import cv2


# 加载数据集:load_digits为sklearn中自带的数据集(MNIST)
data = load_digits()
X = data.data
y = data.target

# 展示前十个数据的图像
# https://blog.csdn.net/m0_59611146/article/details/136797721
fig, ax = plt.subplots(
nrows=2,
ncols=5,
sharex=True,
sharey=True, )
ax = ax.flatten()
for i in range(10):
ax[i].imshow(data.data[i].reshape((8, 8)), cmap='Greys', interpolation='nearest')
ax[i].set_title(data.target[i])
plt.show()


# 划分训练集和测试集
"""
Code 意义
train_data 待划分的样本特征集合
X_train 划分出的训练数据集数据
X_test 划分出的测试数据集数据
y_train 划分出的训练数据集的标签
y_test 划分出的测试数据集的标签
test_size 若在0~1之间,为测试集样本数目与原始样本数目之比;若为整数,则是测试集样本的数目
random_state 随机数种子,不同的随机数种子划分的结果不同
stratify stratify是为了保持split前类的分布,例如训练集和测试集数量的比例是 A:B= 4:1,等同于split前的比例(80:20)。通常在这种类分布不平衡的情况下会用到stratify。
原文链接:https://blog.csdn.net/weixin_42888180/article/details/133644922
"""
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建模型
model = SVC()

# 训练模型
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)
print(predictions[0])


# 模型评估
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

# 预测单张图片
"""
img = cv2.imread('digit.jpg')
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = cv2.resize(img,(8,8))

#data = img.reshape(1,-1)
r= model.predict(img.reshape(1,-1))
print(r[0])
"""

"""
opencv也有SVM的算法
"""

"""
SVM全称是Supported Vector Machine(支持向量机)
即寻找到一个超平面使样本分成两类,并且间隔最大。
是一种监督学习算法,主要用于分类,也可用于回归
与逻辑回归和决策树等其他分类器相比,SVM 提供了非常高的准确度

优缺点
优点:
适合小样本、高纬度数据,比较强泛化能力
可有效地处理高维数据;可使用不同的核函数来适应不同的数据类型

缺点:
计算复杂度较高,对于大规模数据的处理可能会存在困难
原文链接:https://blog.csdn.net/m0_60916732/article/details/143006521
"""

标签:SVM,img,train,test,import,手写,识别,data
From: https://www.cnblogs.com/zeliangzhang/p/18502591

相关文章

  • 越界检测视频分析网关区域入侵识别人员入侵算法的技术原理和视频监控应用
    在传统的监控模式下,依赖人工持续监视视频画面存在明显的局限性,包括疲劳、注意力分散以及无法覆盖所有区域等问题,这使得实现24小时、全方位监控变得困难。而人工智能技术的应用,通过在关键位置部署摄像头,能够捕获连续的视频流。结合深度学习模型,这些视频流可以被实时分析,从而提高了......
  • 护照如何查验真伪?C++护照查验接口示例、护照文字识别、身份验证
    在当下全球化加速、出入境需求激增的背景下,护照查验接口作为提升边检效率和保障国民安全的重要技术,正逐渐受到广泛关注。随着全球旅游业的复苏和国际商务交流的频繁,如何更高效、智能地完成护照查验成为了政府和企业的关键任务。数字化政务正在全球范围内成为趋势,护照查验......
  • 身份核验“新引擎“-视频活体检测API、活体检测、人脸识别认证
    近年来,随着线上支付、远程办公、在线教育等场景的普及,人们对于线上服务的需求激增。然而,这也给不法分子带来了可乘之机。通过伪造证件照片或使用高质量的人脸面具来欺骗人脸识别系统,这类事件时有发生。因此,如何确保线上交互过程中用户的真实性和安全性成为了一个亟待解决的问......
  • 基于单片机的多功能指纹识别门禁系统设计与实现
    #1024程序员节|征文#作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为......
  • 13.4K+ Star!DeepFace:一个轻量级人脸识别和面部属性分析库
    DeepFace简介DeepFace[1]是一个用于Python的轻量级人脸识别和面部属性分析(年龄、性别、情绪和种族)库。DeepFace利用深度学习进行人脸识别和分析,它通过封装多种先进的人脸识别模型,提供了一个简单易用的接口。用户无需深入了解背后的复杂过程,只需通过简单的函数调用来实现......
  • STM32配置HID设备时主机识别不到力反馈的解决办法
    这个问题困扰我快一个星期了,我仔仔细细阅读了DeviceClassDefinitionforPhysicalInterfaceDevices(PID)Version1.0和HIDUsageTablesFORUniversalSerialBus(USB)。都没有找到识别不到力反馈的原因,按理说配置完报告描述符就能显示力反馈了,但是我这边死活识别不到,于......
  • 条码检测系统——基于MATLAB的一维条码识别
    条码检测系统——基于MATLAB的一维条码识别摘 要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由我国目前发展现状来看,条码的正常使......
  • 基于MATLAB的说话人语音识别
    基于MATLAB的说话人语音识别                     目录系统设计任务及要求………………………………………………3语音识别的简介……………………………………………………3三、语音识别原理………………………………………………………33.1语音识......
  • 中安护照阅读器:高效识别泰国身份证
    在如今数字化快速发展的时代,高效准确的身份识别工具变得至关重要。中安护照阅读器就是这样一款出色的设备。它不仅能够快速读取护照信息,在识别泰国身份证方面也表现卓越。只需将泰国身份证放置在阅读器上,瞬间就能准确提取出身份证上的各种关键信息,包括姓名、性别、出生日期......
  • 文通车牌识别相机在工地称重应用中的卓越表现
    在现代工地管理中,高效、准确的称重系统是确保工程顺利进行的关键之一。而文通车牌识别相机的出现,为工地称重应用带来了全新的解决方案。一、工地称重面临的挑战传统的工地称重方式往往存在着一些问题。人工记录车牌和重量信息容易出现错误,不仅效率低下,还可能导致数据不准......