关闭

Sklearn 用户手册 一:机器学习初体验

标签: python机器学习
1616人阅读 评论(0) 收藏 举报
分类:


近期学着用python机器学习库Scikit-learn做一些小项目,翻文档时豁然发现,这篇用户手册它不仅仅是一篇用户手册,还集成了很多贴心的机器人生小感悟啊。于是便有了翻译她这个很小冒的念头。当然作为一名有追求的机器学习者,是不能做逐字逐句的翻译这种一下子就被识破的事情,所以决定。。几句并一句的翻,机智如我。

一: 当我们遇到一个机器学习问题

就解决问题而言,机器学习的思想与小学时候做的应用题并无两样,首先,需要清楚想要求解什么,其次,理清你的已知条件是什么,然后想方设法利用你的已知条件去得到结果。

So,根据机器学习想要的结果。可以把问题分为:分类/聚类问题,或者是回归问题。

分类和聚类:如给成绩分个A/B/C,数学语言为离散。

回归:不给分等,但是要求有具体成绩,是69.0、还是80.9. 数学语言为连续。

当然分类和聚类又有区别,如果事先告诉电脑80以上就是A,70-80就是B,它只用老老实实照着这个给定标准来,这就是分类。但是如果这次考试很难,老师也不知道大家考的怎么样啊,然后就说电脑你随便分吧,只要把成绩相近的放一起,然后分出三个等级出来,这就是聚类了。用机器学习的语言就是,分类模型给电脑的学习数据是有标签的,俗称label。而聚类的没有。


二:那就加载一个数据集看看吧

from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()

print digits.data


[[  0.   0.   5. ...,   0.   0.   0.]
 [  0.   0.   0. ...,  10.   0.   0.]
 [  0.   0.   0. ...,  16.   9.   0.]
 ..., 
 [  0.   0.   1. ...,   6.   0.   0.]
 [  0.   0.   2. ...,  12.   0.   0.]
 [  0.   0.  10. ...,  12.   1.   0.]]
datasets是一个字典格式的数据集,包含了数据的信息以及他们的元数据信息,比如:

load_iris():  那朵著名的鸾尾花的数据

load_digits(): 可用于训练的数字图片数据集

digits.data: 数据集的特征,也就是矩阵X

digits.target: 数据集的标签,也就是矩阵y

data始终会是个二维矩阵,每一行是个样本,每一列是特征。每个样本的其它具体数据可以通过其它的方式得到。如:

digits.image[0]:第一张图片的数据信息,print一下可发现是个8*8维的数据


三:我们的目标是--争当最强算命师(学习与预测)

有了一堆X,还有了y,现在要做的就是找到一个适当的模型,输入X, 然后输出y。再给一个没见过的X,猜出y。sklearn里这两步基本就是通过fit()和predict()来做了,对于每个模型都如此。相信他们是为了更人性,绝对不是因为偷懒。举例:

<span style="font-size:14px;">from sklearn import svm

</span>
<span style="font-size:14px;">#建立一个新模型
clf = svm.SVC(gamma=0.001, C=100.)</span>
<span style="font-size:14px;">#喂入数据,为了验证模型的有效性,把最后一个样本去掉,以便在下一步用于预测
clf.fit(digits.data[:-1], digits.target[:-1])</span>
<span style="font-size:14px;">#clf已经是个训练好的模型了,将最后一个数据放入其预测函数
clf.predict(digits.data[-1])</span>


四:保存工作成果

这个模型你已经满意了,现在当然是希望能把它保存起来,否则每次都要重新训练,想想就很累啊。

import pickle
from sklearn.externals import joblib

#存入变量
s = pickle.dumps(clf)
#load回来
clf2 = pickle.loads(s)

#存入文件
joblib.dump(clf, 'whatever.pkl')
#load回来
clf = joblib.load('whatever.pkl')
使用joblib时,存下的是一系列的文件,包括每个变量。load的时候也要保证这堆东西还在一起。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3378次
    • 积分:103
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:6篇
    • 评论:1条
    文章分类
    文章存档
    最新评论