利用scikit-learn进行机器学习简介
在这部分,我们引入利用scikit-learn进行机器学习的常用单词,并给出一些简单的学习例子。
一般而言,一个学习问题处理一组包含n个样本的数据集,然后预测未知数据的属性。如果每个样本不止有一个数据,例如多维条目(又叫做多维数据),这种情况被称为拥有多组属性或特征。
我们可以将学习问题氛围几个大类:
监督学习:这类学习中数据包含我们想要预测的附加属性,这个问题可以被分为分类和回归。
分类问题:样本属于两个或者更多的类,我们通过学习已经加过标签的数据来预测未加标签的数据所属的类。手写体数字识别问题是一个分类问题的实例,其目的是将有限个输入向量分配到有限数目、离散的种类中。另外一种分类的理解方式可以认为分类是一种离散的监督学习。
回归:如果所希望的输出有一个或多个连续的随机变量组成,这种学习任务被称为回归。
一个回归的简单例子就是通过鲑鱼的年龄和体重的函数来预测鲑鱼的长度。
无监督学习:训练数据是由输入向量x组成的集合,该训练数据没有任何相关的目标值。在这类问题中,目标是发现数据集中相似样本族,这时该学习问题被称为聚类。或者判断在输入空间里数据分布情况,这时称为密度估计。或者将数据从高维空间映射到二维或三维空间中,称之为数据可视化问题。
训练集和测试集:机器学习是通过一组数据集学习一些属性,然后将他们应用到新的数据中。这是为什么在评价机器学习算法时,常见做法是将数据集分为两部分,一部分称之为训练数据,用于学习数据属性,一个称之为测试集合用来测试学习到的属性。
scikit-learn带有一些标准数据集,例如用于分类的iris和digits数据集,用于回归的bostonhouse prices数据集。
接下来我们从shell启动一个Python解释器,然后载入iris和digits数据集。我们的符号约定$表示shell提示,>>>表示Python解释器提示。
[python]view plaincopyprint?
正如你所看到的,这是一个具有挑战性的任务:图像的分辨率都很低。你是否同意这个分类器呢?
有个完整的分类问题例子-手写数字识别-您可以运行和研究。