在2014年,最大的学习成就是掌握了Python中的Scikit-learn库,这是一个用于机器学习的极其有用的工具。Scikit-learn包含了许多高效的机器学习和统计建模工具,包括分类、回归、聚类和降维。请注意,Scikit-learn用于构建机器学习模型,而不是用于读取、操作和总结数据。对于这些任务,有更合适的库,比如NumPy和Pandas等。
Scikit-learn提供了许多特性,以下是一些帮助理解其覆盖范围的特性:
可以想到的任何监督机器学习算法,很可能都是Scikit-learn的一部分。从广义线性模型(例如线性回归)、支持向量机(SVM)、决策树到贝叶斯方法——它们都是Scikit-learn工具箱的一部分。机器学习算法的广泛覆盖是Scikit-learn高使用率的一个重要原因。开始使用Scikit-learn解决监督学习问题,并推荐给新接触Scikit-learn/机器学习的人。
Scikit-learn提供了多种方法,用于检查监督模型在未见数据上的准确性。
同样,Scikit-learn提供了大量的机器学习算法——从聚类、因子分析、主成分分析到无监督神经网络。
在学习Scikit-learn时,这些数据集非常方便。在学习SAS时使用过各种学术数据集(例如鸢尾花数据集、波士顿房价数据集)。在学习新库时,手头有这些数据集帮助很大。
Scikit-learn用于从图像和文本中提取特征(例如词袋模型)。
使用开源工具的主要原因之一是其庞大的社区。Scikit-learn也是如此。至今,Scikit-learn大约有35位贡献者,其中最著名的是Andreas Mueller(顺便说一下,Andy的机器学习速查表是理解机器学习算法谱系的最佳可视化之一)。
现在已经对Scikit-learn的生态系统有了高层次的理解,让用一个例子来说明Scikit-learn的使用。这个例子只是为了展示Scikit-learn使用的简单性。将在后续的文章中查看各种算法及其最佳使用方式。
步骤1:导入相关库并读取数据集
import numpy as np
import matplotlib as plt
from sklearn import datasets
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
已经导入了所有库。接下来,读取数据集:
dataset = datasets.load_iris()
步骤2:通过查看分布和图表来了解数据集
暂时跳过这些步骤。如果想学习探索性分析,可以阅读这篇文章。
步骤3:在数据集上构建逻辑回归模型并进行预测
model.fit(dataset.data, dataset.target)
expected = dataset.target
predicted = model.predict(dataset.data)
步骤4:打印混淆矩阵
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))