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自带手写数字数据集进行分类相关推荐

  1. [PyTorch] 基于Python和PyTorch的MNIST的手写数字数据集的分类

    文章目录 讲解 MNIST的介绍 须导入的函数库 检查 pytorch 的版本 定义超参数 下载 MNIST的数据集 定义网络 网络实例化 定义训练函数 定义测试函数 主函数 全部源代码 2020.0 ...

  2. svm对未知数据的分类_LibSVM学习3:一个实例搞定libsvm分类

    转自:[by faruto] 视频的帖子地址: 本讲视频相关帖子:[1]如何使用libsvm进行分类 这帖子就是初步教教刚接触libsvm(svm)的同学如何利用libsvm进行分类预测,关于参数寻优 ...

  3. svm对未知数据的分类_【干货分享】支持向量机学习「下」利用SVM对歌曲进行分类...

    上期我们分享了线性SVM的内容,并对凸二次规划问题的求解进行了简单的推导,最后得到分离超平面的函数能够对新输入的样本进行分类.本期我们将继续探讨非线性SVM,了解核函数的概念,并利用Python sk ...

  4. svm对未知数据的分类_基于SVM的高维不平衡数据分类方法与流程

    https://blog.csdn.net/weixin_39833270/article/details/111519043

  5. svm手写数字识别_KNN 算法实战篇如何识别手写数字

    上篇文章介绍了KNN 算法的原理,今天来介绍如何使用KNN 算法识别手写数字? 1,手写数字数据集 手写数字数据集是一个用于图像处理的数据集,这些数据描绘了 [0, 9] 的数字,我们可以用KNN 算 ...

  6. DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率

    DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness.SVM.NN各自的准确率 目录 数据集下 ...

  7. 卷积神经网络mnist手写数字识别代码_搭建经典LeNet5 CNN卷积神经网络对Mnist手写数字数据识别实例与注释讲解,准确率达到97%...

    LeNet-5卷积神经网络是最经典的卷积网络之一,这篇文章就在LeNet-5的基础上加入了一些tensorflow的有趣函数,对LeNet-5做了改动,也是对一些tf函数的实例化笔记吧. 环境 Pyc ...

  8. matlab朴素贝叶斯手写数字识别_从“手写数字识别”学习分类任务

    机器学习问题可以分为回归问题和分类问题,回归问题已经在线性回归讲过,本文学习分类问题.分类问题跟回归问题有明显的区别,回归问题是连续的数值,而分类问题是离散的类别,比如将性别分为[男,女],将图片分为 ...

  9. MATLAB实现自编码器(三)——堆栈自编码器Stacked Autoencoders实现手写数字分类

    在前面两篇博客的基础上,可以实现单层自编码器网络(一个解码器+一个解码器).对于多层自编码器的实现,MATLAB给出了堆栈自编码器用于图像分类的网页Train Stacked Autoencoders ...

最新文章

  1. myeclise 安装
  2. Android 文件布局一些细节备忘
  3. Python之字符串的134个常用操作
  4. MySQL 去除重复的方法
  5. php curl发送post请求失败,php 利用curl发送post请求
  6. 有意思的C语言运算符
  7. # 20162312 2017-2018 《程序设计与数据结构》第7周学习总结
  8. 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 C Thinking Bear magic
  9. 现代通信原理3.3:两个重要的信号处理模块-乘法器与滤波器
  10. 9 个Java 性能优化的 工具,你知道几个?
  11. 给每一辆车配上“×××”,老牌安企高新兴的交通新作
  12. 跳马周游c++_c++广搜法跳马问题(队列)
  13. mili u盘 android手机,苹果安卓都能用 MiLi多合一优盘评测
  14. 亨利福特真的说过“faster horse”么?
  15. Javascript正则表达式表示固定开头和结尾的字符串
  16. java多线程系列八之多线程之间的交互:线程阀
  17. 机器学习 深度学习 神经网络 图像处理优质博客整理
  18. oracle应付账款凭证编号查找,记账凭证的编号方式
  19. Docker --restart参数
  20. SOME/IP协议详解「总目录」

热门文章

  1. 视频教程-Access2013数据库入门教程-Office/WPS
  2. Win系统 - 这样清理C盘,一下子多出几十个G
  3. 【三角函数】常用的三角函数相关知识
  4. 100集华为HCIE安全培训视频教材整理 | 安全认证概述
  5. pxe启动引导双硬盘中的ssd盘cmos设置
  6. 黑莓使用必看帖子大汇集(转载)
  7. 商业软件公司关注开源和Linux的5个理由
  8. 自动驾驶专题介绍 ———— 毫米波雷达
  9. 解决Linux Telnet乱码问题
  10. Typora去除红色波浪线