scikti-learn学习

<span style="color: rgb(54, 46, 43); font-family: 'microsoft yahei'; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">自2007年发布以来,scikit-learn已经成为最给力的Python机器学习库(library)了。scikit-learn支持的机器学习算法包括分类,回归,降维和聚类。还有一些特征提取(extracting features)、数据处理(processing data)和模型评估(evaluating models)的模块。作为Scipy库的扩展,scikit-learn也是建立在Python的NumPy和matplotlib库基础之上。NumPy可以让Python支持大量多维矩阵数据的高效操作,matplotlib提供了可视化工具,SciPy带有许多科学计算的模型。 </span>

    scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。开发者用scikit-learn实验不同的算法,只要几行代码就可以搞定。scikit-learn包括许多知名的机器学习算法的实现,包括LIBSVM和LIBLINEAR。还封装了其他的Python库,如自然语言处理的NLTK库。另外,scikit-learn内置了大量数据集,允许开发者集中于算法设计,节省获取和整理数据集的时间。 
    scikit-learn可以不受任何限制,遵从自由的BSD授权。许多scikit-learn的算法都可以快速执行而且可扩展,除了海量数据集以外。最后,scikit-learn稳定性很好,大部分代码都可以通过Python的自动化测试(mock,nose等)。

scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。开发者用scikit-learn实验不同的算法,只要几行代码就可以搞定。scikit-learn包括许多知名的机器学习算法的实现,包括LIBSVM和LIBLINEAR。还封装了其他的Python库,如自然语言处理的NLTK库。另外,scikit-learn内置了大量数据集,允许开发者集中于算法设计,节省获取和整理数据集的时间。 

    scikit-learn可以不受任何限制,遵从自由的BSD授权。许多scikit-learn可以快速执行而且可扩展,除了海量数据集以外。最后,scikit-learn稳定性很好。

Mac OS上建议安装Anaconda,里面集成了scikit-learn、numpy、matplot、scipy等等做科学计算必须的东西。

可以通过sklearn.__version__来查看当前sklearn的版本信息。下图是我安装后的截图。

      

通常,给定样本数据集,然后尝试预测未知数据的属性,如果每个样本超过单个数值,例如,一组多维的输入值,就称其有多个属性或特征。 
我们可以将学习问题分为几大类: 
监督学习:监督学习是对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。 
其还可以在分: 
     –分类:样本数据属于两类或者多类,我们想要从带类别标记的数据中学习,并预测未知数据的类别。一个分类问题的例子就是手写数字识别的例子。 
     –回归:如果输出数据时由一系列连续的变量组成,我们称这个任务为回归。回归问题的一个例子是根据鲑鱼的年龄和重量来预测鲑鱼的长度。 
非监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。这种问题的目标是发现数据样本聚集的相似性,那就称其为聚类;或在输入空间内决定数据的分布,其就是密度估计;或是将高维的数据降维到二维或者三维,以便进行数据可视化。

*训练集、测试集、验证集* 
训练集:训练集是用来学习的样本集,通过匹配一些参数来建立一个模型(如:分类器) 
测试集:测试集纯粹是为了测试已经训练好的模型的分类能力的样本集。 
验证集:验证集是用来调整分类器的参数的样本集,比如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。

scikit-learn本身内置了一些标准的数据集,例如:鸢尾花和数字数据集用于分类,还有波士顿房屋价格数据集用来做回归。 
接下来用Python 语言来实现加载这些数据集(iris和digits)

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

学习和预测

在数字数据集中,我们的任务是给定一张数字图片,然后预测对应的数字。 
在scikit-learn中,我们通过fit(X, y)来训练模型,predict(T)来预测未知样本的类别。

>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)

通过对scikit-learn的简单了解、安装以及简单示例的练习。理论+实践+持之以恒的学习就可以掌握机器学习相关的知识。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章