如何将Scikit-learn Python库用于数据科学项目

作者: Dr.michael J.garbade 2018-10-15 09:10:09

https://s4.51cto.com/oss/201810/15/6431aaabce08aa01820840ab0d224dbd.jpeg

灵活多样的 Python 库为数据分析和数据挖掘提供了强力的机器学习工具。

Scikit-learn Python 库最初于 2007 年发布,通常用于解决各种方面的机器学习和数据科学问题。这个多种功能的库提供了整洁、一致、高效的 API 和全面的在线文档。

什么是 Scikit-learn?

Scikit-learn 是一个开源 Python 库,拥有强大的数据分析和数据挖掘工具。 在 BSD 许可下可用,并建立在以下机器学习库上:

  • NumPy,一个用于操作多维数组和矩阵的库。它还具有广泛的数学函数汇集,可用于执行各种计算。
  • SciPy,一个由各种库组成的生态系统,用于完成技术计算任务。
  • Matplotlib,一个用于绘制各种图表和图形的库。

Scikit-learn 提供了广泛的内置算法,可以充分用于数据科学项目。

以下是使用 Scikit-learn 库的主要方法。

1、分类

分类工具识别与提供的数据相关联的类别。例如,它们可用于将电子邮件分类为垃圾邮件或非垃圾邮件。

Scikit-learn 中的分类算法包括:

  • 支持向量机Support vector machines(SVM)
  • 最邻近Nearest neighbors
  • 随机森林Random forest

2、回归

回归涉及到创建一个模型去试图理解输入和输出数据之间的关系。例如,回归工具可用于理解股票价格的行为。

回归算法包括:

  • 支持向量机Support vector machines(SVM)
  • 岭回归Ridge regression
  • Lasso(LCTT 译注:Lasso 即 least absolute shrinkage and selection operator,又译为最小绝对值收敛和选择算子、套索算法)

3、聚类

Scikit-learn 聚类工具用于自动将具有相同特征的数据分组。 例如,可以根据客户数据的地点对客户数据进行细分。

聚类算法包括:

  • K-means
  • 谱聚类Spectral clustering
  • Mean-shift

4、降维

降维降低了用于分析的随机变量的数量。例如,为了提高可视化效率,可能不会考虑外围数据。

降维算法包括:

  • 主成分分析Principal component analysis(PCA)
  • 功能选择Feature selection
  • 非负矩阵分解Non-negative matrix factorization

5、模型选择

模型选择算法提供了用于比较、验证和选择要在数据科学项目中使用的***参数和模型的工具。

通过参数调整能够增强精度的模型选择模块包括:

  • 网格搜索Grid search
  • 交叉验证Cross-validation
  • 指标Metrics

6、预处理

Scikit-learn 预处理工具在数据分析期间的特征提取和规范化中非常重要。 例如,您可以使用这些工具转换输入数据(如文本)并在分析中应用其特征。

预处理模块包括:

  • 预处理
  • 特征提取

Scikit-learn 库示例

让我们用一个简单的例子来说明如何在数据科学项目中使用 Scikit-learn 库。

我们将使用鸢尾花花卉数据集,该数据集包含在 Scikit-learn 库中。 鸢尾花数据集包含有关三种花种的 150 个细节,三种花种分别为:

  • Setosa:标记为 0
  • Versicolor:标记为 1
  • Virginica:标记为 2

数据集包括每种花种的以下特征(以厘米为单位):

  • 萼片长度
  • 萼片宽度
  • 花瓣长度
  • 花瓣宽度

第 1 步:导入库

由于鸢尾花花卉数据集包含在 Scikit-learn 数据科学库中,我们可以将其加载到我们的工作区中,如下所示:

  1. from sklearn import datasets
  2. iris = datasets.load_iris()

这些命令从 sklearn 导入数据集 datasets 模块,然后使用 datasets 中的 load_iris() 方法将数据包含在工作空间中。

第 2 步:获取数据集特征

数据集 datasets 模块包含几种方法,使您更容易熟悉处理数据。

在 Scikit-learn 中,数据集指的是类似字典的对象,其中包含有关数据的所有详细信息。 使用 .data 键存储数据,该数据列是一个数组列表。

例如,我们可以利用 iris.data 输出有关鸢尾花花卉数据集的信息。

  1. print(iris.data)

这是输出(结果已被截断):

  1. [[5.1 3.5 1.4 0.2]
  2.  [4.9 3.  1.4 0.2]
  3.  [4.7 3.2 1.3 0.2]
  4.  [4.6 3.1 1.5 0.2]
  5.  [5.  3.6 1.4 0.2]
  6.  [5.4 3.9 1.7 0.4]
  7.  [4.6 3.4 1.4 0.3]
  8.  [5.  3.4 1.5 0.2]
  9.  [4.4 2.9 1.4 0.2]
  10.  [4.9 3.1 1.5 0.1]
  11.  [5.4 3.7 1.5 0.2]
  12.  [4.8 3.4 1.6 0.2]
  13.  [4.8 3.  1.4 0.1]
  14.  [4.3 3.  1.1 0.1]
  15.  [5.8 4.  1.2 0.2]
  16.  [5.7 4.4 1.5 0.4]
  17.  [5.4 3.9 1.3 0.4]
  18.  [5.1 3.5 1.4 0.3]

我们还使用 iris.target 向我们提供有关花朵不同标签的信息。

  1. print(iris.target)

这是输出:

  1. [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  2.  0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  3.  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
  4.  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
  5.  2 2]

如果我们使用 iris.target_names,我们将输出数据集中找到的标签名称的数组。

  1. print(iris.target_names)

以下是运行 Python 代码后的结果:

  1. ['setosa' 'versicolor' 'virginica']

第 3 步:可视化数据集

我们可以使用箱形图来生成鸢尾花数据集的视觉描绘。 箱形图说明了数据如何通过四分位数在平面上分布的。

以下是如何实现这一目标:

  1. import seaborn as sns
  2. box_data = iris.data # 表示数据数组的变量
  3. box_target = iris.target # 表示标签数组的变量
  4. sns.boxplot(data = box_data,width=0.5,fliersize=5)
  5. sns.set(rc={'figure.figsize':(2,15)})

让我们看看结果:

在横轴上:

  • 0 是萼片长度
  • 1 是萼片宽度
  • 2 是花瓣长度
  • 3 是花瓣宽度

垂直轴的尺寸以厘米为单位。

总结

以下是这个简单的 Scikit-learn 数据科学教程的完整代码。

  1. from sklearn import datasets
  2. iris = datasets.load_iris()
  3. print(iris.data)
  4. print(iris.target)
  5. print(iris.target_names)
  6. import seaborn as sns
  7. box_data = iris.data # 表示数据数组的变量
  8. box_target = iris.target # 表示标签数组的变量
  9. sns.boxplot(data = box_data,width=0.5,fliersize=5)
  10. sns.set(rc={'figure.figsize':(2,15)})

Scikit-learn 是一个多功能的 Python 库,可用于高效完成数据科学项目。

Python 编程语言 数据科学
上一篇:刷脸时代,你准备好了吗? 下一篇:我们在调研了500强上市公司后,总结出人工智能的七大趋势
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

互联网上20大免费数据科学、机器学习和人工智能慕课

现在是2020年,数据科学比以往更加民主化。这意味着任何个人只要有适当的工具和大量的数据,就可以在几乎没有专业知识的情况下进行数据科学研究。随着数据渗透到整个行业的每一个角落,拥有数据科学家的技能是大势所趋,也因此产生了一支会说数据语言的员工队伍。

读芯术 ·  2020-03-22 16:11:48
盘点技术对抗新冠病毒的十种方式

自从此次新冠病毒(COVID-19)疫情从中国武汉首次爆发以来,至今已经传播到至少100个国家与地区。中国政府迅速对此次疫情做出响应,并依靠强大的技术实力——特别是人工智能(AI)、数据科学与技术——跟踪并应对这波疾病大流行。

佚名 ·  2020-03-17 12:00:06
机器学习工程师和数据科学家之间的区别 精选

数据科学家和机器学习工程师是目前行业中最热门的两项工作。在本文中,我将介绍机器学习工程师和数据科学家之间的区别。

不靠谱的猫 ·  2020-03-13 14:13:48
使用Python和Keras创建简单语音识别引擎

语音识别是机器或程序识别口语中的单词和短语并将其转换为机器可读格式的能力。通常,这些算法的简单实现有一个有限的词汇表,它可能只识别单词/短语。但是,更复杂的算法(例如Cloud Speech-to-Text和Amazon Transcribe)具有广泛的词汇量,并包含方言、噪音和俚语。

不靠谱的猫 ·  2020-03-04 10:51:35
快来!建立你的第一个Python聊天机器人项目

利用Python,我们可以实现很多目标,比如说建立一个你专属的聊天机器人程序。聊天机器人程序不光满足个人需求,它对商业组织和客户都非常有帮助。大多数人喜欢直接通过聊天室交谈,而不是打电话给服务中心。

读芯术 ·  2020-02-26 17:39:18
如何在Kaggle上打比赛,带你进行一次完整流程体验

Kaggle是一个磨练您的机器学习和数据科学技能的好地方,您可以将自己与他人进行比较,并学习新的技术。在这篇文章中,我们利用一个典型的例子,来给大家演示如何参加Kaggle竞赛。

机器学习与数据分析 ·  2020-02-25 15:11:35
意料之外 情理之中:解读Gartner 2020年数据科学和机器学习平台魔力象限

最近Gartner发布了数据科学和机器学习(DSML)平台魔力象限报告。数据科学、机器学习和人工智能的市场格局极为分散,竞争激烈且难以理解。Gartner尝试根据明确定义的标准对厂商进行了排名。

佚名 ·  2020-02-21 17:23:21
为什么用Go编写机器学习的基础架构,而不是Python?

虽然Python是使用广泛的语言,并用于每个主要的机器学习框架中。然而,你能想象?在Cortex(将机器学习模型部署为API的开放源代码平台之一)代码库中,87.5%的代码都是使用GO编写。

读芯术 ·  2020-02-14 13:13:04
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载