有监督学习
可以训练带标签的数据以预测新数据标签的模型。
分类
可以预测两个或多个离散分类标签的模型。
回归
可以预测连续标签的模型。
无监督学习
识别无标签数据结构的模型。
聚类
检测、识别数据显著组别的模型。
降维
从高维数据中检测、识别低维数据结构的模型。
5.3.2 选择最优模型
from sklearn.learning_curve import learning_curve
from sklearn.grid_search import GridSearchCV
5.4 特征工程
5.4.1 分类特征
你可能会把分类特征用映射关系编码成整数:
{'Queen Anne': 1, 'Fremont': 2, 'Wallingford': 3};
但是,在 Scikit-Learn 中这么做并不是一个好办法:这个程序包的所有模块都有一个基本假设,那就是数值特征可以反映代数量(algebraic quantities)。因此,这样映射编码可能会让人觉得存在 Queen Anne < Fremont < Wallingford,甚至还有 Wallingford - Queen Anne =Fremont,这显然是没有意义的。面对这种情况,常用的解决方法是独热编码。
但这种方法也有一个显著的缺陷:如果你的分类特征有许多枚举值,那么数据集的维度就会急剧增加。然而,由于被编码的数据中有许多 0,因此用稀疏矩阵表示会非常高效:sklearn.preprocessing.OneHotEncoder 和sklearn.feature_extraction.FeatureHasher 是Scikit-Learn 另外两个为分类特征编码的工具。
5.4.2 文本特征
from sklearn.feature_extraction.text import TfidfVectorizer
5.4.3 图像特征
5.4.4 衍生特征
对原有特征的变换
5.4.5 缺失值填充
from sklearn.preprocessing import Imputer
imp = Imputer(strategy='mean')
X2 = imp.fit_transform(X)
X2
5.4.6 特征管道
from sklearn.pipeline import make_pipeline
model = make_pipeline(Imputer(strategy='mean'),PolynomialFeatures(degree=2),
LinearRegression())
5.5 专题: 朴素贝叶斯分类
5.5.2 高斯朴素贝叶斯
这个分类器假设每个标签的数据都服从简单的高斯分布。
5.5.3 多项式朴素贝叶斯
它假设特征是由一个简单多项式分布生成的。多项分布可以描述各种类型样本出现次数的概率。
5.15.1 Python中的机器学习
如果想了解 Python 机器学习的更多内容,建议你使用以下资源。Scikit-Learn 网站(http://scikit-learn.org)Scikit-Learn 网站中不仅有本章涉及的一些模型的更有深度的文档和示例,还有很多很机器学习多有用的内容。如果你希望了解最重要并且最常用的机器学习算法,这个网站是一个非常好的起点。
SciPy、 PyCon 和 PyData 教程视频Scikit-Learn 和其他机器学习主题一直是许多 Python 会议最受欢迎的教程之一,特别是PyCon、 SciPy 和 PyData 会议。你可以通过网络搜索找到最新的视频教程。
《Python 机器学习入门》本书作者是 Andreas C. Mueller 和 Sarah Guido,有关于本章话题更详细的介绍。如果你对机器学习的基础知识感兴趣,并想探究 Scikit-Learn 工具的使用方法,这本书将是一个很好的资源,它由Scikit-Learn 开发团队中最多产的开发者之一撰写。
《Python 机器学习》Sebastian Raschka 的这本书对 Scikit-Learn 的关注不多,更多涉及的是 Python 中可用的机器学习工具,其中有一些关于如何将 Python 的机器学习方法用于大规模、复杂数据集的实用讨论。
5.15.2 通用机器学习资源
当然,机器学习比 Python 世界更加广阔,还有很多好的资源可以扩充你的知识面,这里列出一些我觉得非常有用的。Machine Learning(https://www.coursera.org/learn/machine-learning)
讲师为 Andrew Ng(Coursera),是一门通俗易懂还免费的教学课程,从算法的角度介绍了很多机器学习的基础知识。这门课程要求学习者具备大学生水平的数学和编程背景知识,否则无法深刻理解一些最重要的机器学习算法的精髓。课后作业也是关于算法设计的,需要你自己动手实现某些算法模型。
Pattern Recognition and Machine Learning(http://www.springer.com/us/book/9780387310732)
这本经典教材的作者是 Christopher Bishop,其中包含了本章涉及算法的详细讲解。如果你计划在这一领域继续深入学习,你应该拥有这样一本书。
Machine Learning: A Probabilistic Perspective(https://mitpress.mit.edu/books/machine-learning-0)
本书作者是 Kevin Murphy,是一本非常好的研究生教材,它以一个统一的概率视角介绍了几乎所有的机器学习算法。这些资源都比本书介绍的内容更专业,但如果想真正理解这些方法的根基,还需要深入理解这些算法背后的数学含义。如果你已经准备好迎难而上,在数据科学领域再上一层楼,那么别犹豫,去深入学习!