An introduction to machine learning with scikit-learn

scikit-learn 是一个基于SciPyNumpy的开源机器学习模块,包括分类、回归、聚类的一系列算法,而且有详细的文档,是边学边练的绝佳教材,本文将通过一个简单的例子向大家展示如何使用scikit-learn。这个例子是关于手写识别的,就是给了一个手写的数字,让机器来识别它是几。首先来介绍一下数据集,在这个例子中,所谓的数据集就是一张张手写数字的图片,每张图片有8*8个像素,在训练的时候会将每张图片的这64个像素点排列成一个特征向量,所以也可以认为是这一个个特征向量组成了数据集,同时数据集里还包含target value,就是每张图片对应的真实数字。scikit-learn 为了方便我们学习已经把这个数据集准备好了, 我们只需载入一下即可:

from sklearn import datasets
digits = datasets.load_digits()
大家不妨打印出来看看:

digits.data[0]
digits.target[0]


前者对应的就是数据集中第一个图片的特征向量,后者就是这张图片对应的数字。接下来我们就可以选择一个模型,然后训练它,最后再用训练好的模型来识别新的手写数字。这里选择了SVM模型,如下:

from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.)
训练模型也很简单,一个函数就可以搞定,fit,如下:

clf.fit(digits.data[:-1], digits.target[:-1])
这里用了数据集中除最后一个数据外的所有数据,这个函数执行完后我们的模型就训练好了,然后我们用这个模型来预测数据集中最后一个数据(特征向量)对应的真实数字,如下:

clf.predict(digits.data[-1])
预测出来的数字是8,那么到底对不对呢,我们看一下最后一个数字的手写图片:

大家就见仁见智啦





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值