今天看到一句话:
你能留给岁月的,岁月能留给你的,除了一个更好的自己,别无其他。
还能什么比这更能激励自己学习呢?
在windows下安装sklearn,直接下载winpython安装就行了。自行选择32或64位。
http://sourceforge.net/projects/winpython/
后面本文都把sklearn简称sk。sk已经自带了一些数据集,先看iris和digits:
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()
iris中文指鸢尾植物,这里存储了其萼片和花瓣的长宽,一共4个属性,鸢尾植物又分三类。与之相对,iris里有两个属性iris.data,iris.target,data里是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,一共采样了150条记录,所以查看这个矩阵的形状iris.data.shape,返回:
(150, 4)
target是一个数组,存储了data中每条记录属于哪一类鸢尾植物,所以数组的长度是150,数组元素的值因为共有3类鸢尾植物,所以不同值只有3个。
digits存储了数字识别的数据,包含了1797条记录,每条记录又是一个8行8列的矩阵,存储的是每幅数字图里的像素点信息,digits.image.shape返回
(1797, 8, 8)
因为sk的输入数据必须是(n_samples, n_features)
的形状,所以需要对digits.image做一个编号,把8*8的矩阵,变成一个含有64个元素的向量,具体方法:
import pylab as pl
data = digits.images.reshape((digits.images.shape[0], -1))
data.shape返回
(1797, 64)
以上是最常用的两个数据集。
在sk中所有的分类器或聚类工具都是一个Estimator对象,初始参数设置:
estimator = Estimator(param1=1, param2=2)
estimator.param1
训练数据时,接收一个2唯数组:
estimator.fit(data)
训练结构的参数:
estimator.estimated_param_
sk还有一个文本分类的数据集,叫Twenty Newsgroups,获取方法:
from sklearn.datasets import fetch_20newsgroups
categories = ['alt.atheism', 'soc.religion.christian',