《数据科学与分析:Python语言实现》 —3.10 Scikit-learn是我们的朋友
3.10 Scikit-learn是我们的朋友
正如我们所看到的,机器学习的广泛目标是开发和应用从数据中学习的算法,这个目标可以通过各种方式实现。最近随着计算机技术的进步,以及我们掌握的有用的软件工具具有越来越高的可用性,许多人都可以实现这样的目标。
在众多编程语言和工具中,我们选择使用Python。在可以使用的库和包中,我们主要关注Scikit-learn,因为它包含广泛的机器学习算法。Scikit-learn构建于第2章中已经看过的库,例如NumPy、SciPy和Matplotlib。Scikit-learn能够与Pandas数据帧和Python中的其他对象进行交互。值得一提的是,Scikit-learn的重点是数据科学工作流的建模部分,而不是数据的操纵。
Scikit-learn提供了一些流行的模型和技术,例如:
回归
聚类
特征选择
降维
分类
交叉验证
……
在接下来的章节中,我们将有机会探索这些模型的一些实现。Scikit-learn还附带了一些测试数据集,可用于研究各种模型的用法。
鉴于我们将广泛使用该库,很值得在这里谈一下Scikit-learn中的模型所期望的典型数据表示。如2.4节所述,矩阵和向量是一种受欢迎的数据表示,特别是对于数学计算和操作。Scikit-learn继承了这一点,并且它期望数据以具有M个数据实例(行)和N个不同特征(列)的二维数字矩阵的形式表示。
数据科学和分析中的典型示例是Iris数据集,可以想象它包含在Scikit-learn中。该数据集最初由Ronald Fisher使用,并且总共有M=150个样品,其中包含3种鸢尾花,分别 是Setosa(50)、Virginica(50)和Versicolor(50)。对于每个样本,我们提供N=4个特征量度(以厘米为单位):萼片长度、萼片宽度、花瓣长度和花瓣宽度。
我们可以通过直接从Scikit-learn导入来加载此数据集,如下所示:
通过上面的两行代码,我们导入了数据集并将其加载到名为iris的对象中。我们现在可以检查包含特征数据的矩阵。例如,矩阵的大小必须是M=150和N=4,我们可以使用shape方法验证这一点,如下所示:
其中,iris数据集由150×4矩阵表示。
让我们先看看这6个数据实例:
数据集还包含每个数据实例所属的类,即setosa、versicolor或virginica。可以通过查看iris对象的target_names来获取信息:
请记住,Scikit-learn需要数字格式的数据,因此使用字符串来表示类是不合适的。相反,3个类别中的每一个都使用与上面列表中名称的位置相对应的数字进行编码:
- 点赞
- 收藏
- 关注作者
评论(0)