svm对未知数据的分类_SVM对sklearn自带手写数字数据集进行分类
sklearn自带一些数据集,其中手写数字数据集可通过load_digits加载,我找到load_digits里头是这样
def load_linnerud():
"""Load and return the linnerud dataset (multivariate regression).
Samples total: 20
Dimensionality: 3 for both data and targets
Features: integer
Targets: integer
Returns
-------
data : Bunch
Dictionary-like object, the interesting attributes are: 'data' and
'targets', the two multivariate datasets, with 'data' corresponding to
the exercise and 'targets' corresponding to the physiological
measurements, as well as 'feature_names' and 'target_names'.
"""
base_dir = join(dirname(__file__), 'data/')
# Read data
data_exercise = np.loadtxt(base_dir + 'linnerud_exercise.csv', skiprows=1)
data_physiological = np.loadtxt(base_dir + 'linnerud_physiological.csv',
skiprows=1)
# Read header
with open(base_dir + 'linnerud_exercise.csv') as f:
header_exercise = f.readline().split()
with open(base_dir + 'linnerud_physiological.csv') as f:
header_physiological = f.readline().split()
with open(dirname(__file__) + '/descr/linnerud.rst') as f:
descr = f.read()
return Bunch(data=data_exercise, feature_names=header_exercise,
target=data_physiological,
target_names=header_physiological,
DESCR=descr)
有数据说明,很详细,也可以看到实际那批数据来自一个csv文件,可以按照提示挑一个样例show一下看看
import pylab as pl
digits = load_digits()
# 数据纬度,1797幅图,8*8
# 显示一副图片
# pl.gray()
# pl.matshow(digits.images[0])
# pl.show()
言归正传,调用
sklearn的svm包里的LinearSVC做一下分类实验
# -*- coding:utf-8 -*-
import sys
from sklearn.datasets import load_digits # 加载手写数字识别数据
import pylab as pl
from sklearn.cross_validation import train_test_split # 训练测试数据分割
from sklearn.preprocessing import StandardScaler # 标准化工具
from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report # 预测结果分析工具
reload(sys)
sys.setdefaultencoding('utf-8')
digits = load_digits()
# 数据纬度,1797幅图,8*8
print digits.data.shape
# 分割数据
X_train, X_test, Y_train, Y_test = train_test_split(digits.data, digits.target, test_size=0.25, random_state=33)
ss = StandardScaler()
# fit是实例方法,必须由实例调用
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
lsvc = LinearSVC()
lsvc.fit(X_train, Y_train)
Y_predict = lsvc.predict(X_test)
print classification_report(Y_test, Y_predict, target_names=digits.target_names.astype(str))
训练集与测试集1比3分割,分类预测的性能如下:
precision recall f1-score support
0 0.92 1.00 0.96 35
1 0.96 0.98 0.97 54
2 0.98 1.00 0.99 44
3 0.93 0.93 0.93 46
4 0.97 1.00 0.99 35
5 0.94 0.94 0.94 48
6 0.96 0.98 0.97 51
7 0.92 1.00 0.96 35
8 0.98 0.84 0.91 58
9 0.95 0.91 0.93 44
avg / total 0.95 0.95 0.95 450
需要记住几个性能指标的含义
precision为精确率,是真阳结果与所有被判为阳性结果的比。
recall为召回率, 是真阳结果与所有实际为阳性数据的比。
真阳者,实际为真且判为真。
svm对未知数据的分类_SVM对sklearn自带手写数字数据集进行分类相关推荐
- [PyTorch] 基于Python和PyTorch的MNIST的手写数字数据集的分类
文章目录 讲解 MNIST的介绍 须导入的函数库 检查 pytorch 的版本 定义超参数 下载 MNIST的数据集 定义网络 网络实例化 定义训练函数 定义测试函数 主函数 全部源代码 2020.0 ...
- svm对未知数据的分类_LibSVM学习3:一个实例搞定libsvm分类
转自:[by faruto] 视频的帖子地址: 本讲视频相关帖子:[1]如何使用libsvm进行分类 这帖子就是初步教教刚接触libsvm(svm)的同学如何利用libsvm进行分类预测,关于参数寻优 ...
- svm对未知数据的分类_【干货分享】支持向量机学习「下」利用SVM对歌曲进行分类...
上期我们分享了线性SVM的内容,并对凸二次规划问题的求解进行了简单的推导,最后得到分离超平面的函数能够对新输入的样本进行分类.本期我们将继续探讨非线性SVM,了解核函数的概念,并利用Python sk ...
- svm对未知数据的分类_基于SVM的高维不平衡数据分类方法与流程
https://blog.csdn.net/weixin_39833270/article/details/111519043
- svm手写数字识别_KNN 算法实战篇如何识别手写数字
上篇文章介绍了KNN 算法的原理,今天来介绍如何使用KNN 算法识别手写数字? 1,手写数字数据集 手写数字数据集是一个用于图像处理的数据集,这些数据描绘了 [0, 9] 的数字,我们可以用KNN 算 ...
- DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率
DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness.SVM.NN各自的准确率 目录 数据集下 ...
- 卷积神经网络mnist手写数字识别代码_搭建经典LeNet5 CNN卷积神经网络对Mnist手写数字数据识别实例与注释讲解,准确率达到97%...
LeNet-5卷积神经网络是最经典的卷积网络之一,这篇文章就在LeNet-5的基础上加入了一些tensorflow的有趣函数,对LeNet-5做了改动,也是对一些tf函数的实例化笔记吧. 环境 Pyc ...
- matlab朴素贝叶斯手写数字识别_从“手写数字识别”学习分类任务
机器学习问题可以分为回归问题和分类问题,回归问题已经在线性回归讲过,本文学习分类问题.分类问题跟回归问题有明显的区别,回归问题是连续的数值,而分类问题是离散的类别,比如将性别分为[男,女],将图片分为 ...
- MATLAB实现自编码器(三)——堆栈自编码器Stacked Autoencoders实现手写数字分类
在前面两篇博客的基础上,可以实现单层自编码器网络(一个解码器+一个解码器).对于多层自编码器的实现,MATLAB给出了堆栈自编码器用于图像分类的网页Train Stacked Autoencoders ...
最新文章
- myeclise 安装
- Android 文件布局一些细节备忘
- Python之字符串的134个常用操作
- MySQL 去除重复的方法
- php curl发送post请求失败,php 利用curl发送post请求
- 有意思的C语言运算符
- # 20162312 2017-2018 《程序设计与数据结构》第7周学习总结
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 C Thinking Bear magic
- 现代通信原理3.3:两个重要的信号处理模块-乘法器与滤波器
- 9 个Java 性能优化的 工具,你知道几个?
- 给每一辆车配上“×××”,老牌安企高新兴的交通新作
- 跳马周游c++_c++广搜法跳马问题(队列)
- mili u盘 android手机,苹果安卓都能用 MiLi多合一优盘评测
- 亨利福特真的说过“faster horse”么?
- Javascript正则表达式表示固定开头和结尾的字符串
- java多线程系列八之多线程之间的交互:线程阀
- 机器学习 深度学习 神经网络 图像处理优质博客整理
- oracle应付账款凭证编号查找,记账凭证的编号方式
- Docker --restart参数
- SOME/IP协议详解「总目录」