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

2018 年 10 月 15 日 Linux中国
灵活多样的 Python 库为数据分析和数据挖掘提供了强力的机器学习工具。
-- Dr.michael J.garbade



致谢
编译自 | 
https://opensource.com/article/18/9/how-use-scikit-learn-data-science-projects
 
 作者 | Dr.michael J.garbade
 译者 | Liang Chen (Flowsnow) 🌟🌟🌟共计翻译:23.0 篇 贡献时间:1049 天

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

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

什么是 Scikit-learn?

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

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

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

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

1、分类

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

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 库。

我们将使用鸢尾花花卉数据集[3],该数据集包含在 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 步:可视化数据集

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

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

   
   
     
  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 库,可用于高效完成数据科学项目。

如果您想了解更多信息,请查看 LiveEdu[5] 上的教程,例如 Andrey Bulezyuk 关于使用 Scikit-learn 库创建机器学习应用程序[6]的视频。

有什么评价或者疑问吗? 欢迎在下面分享。


via: https://opensource.com/article/18/9/how-use-scikit-learn-data-science-projects

作者:Dr.Michael J.Garbade[8] 选题:lujun9972 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

Scikit-learn项目最早由数据科学家David Cournapeau 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
【干货书】用于概率、统计和机器学习的Python,288页pdf
专知会员服务
287+阅读 · 2020年6月3日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
129+阅读 · 2020年3月15日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
212+阅读 · 2020年2月21日
盘一盘 Python 系列 8 - Sklearn
平均机器
5+阅读 · 2019年5月30日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
Python中机器学习的特征选择工具
云栖社区
8+阅读 · 2018年7月16日
Scikit-learn玩得很熟了?这些功能你都知道吗?
大数据文摘
4+阅读 · 2018年5月13日
用Python实现线性回归,8种方法哪个最高效?
七月在线实验室
7+阅读 · 2018年4月19日
GitHub最著名的20个Python机器学习项目!
深度学习世界
9+阅读 · 2018年1月8日
Python & 机器学习之项目实践 | 赠书
人工智能头条
14+阅读 · 2017年12月26日
GitHub最著名的20个Python机器学习项目
全球人工智能
9+阅读 · 2017年12月7日
Clustered Object Detection in Aerial Images
Arxiv
5+阅读 · 2019年8月27日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关资讯
盘一盘 Python 系列 8 - Sklearn
平均机器
5+阅读 · 2019年5月30日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
Python中机器学习的特征选择工具
云栖社区
8+阅读 · 2018年7月16日
Scikit-learn玩得很熟了?这些功能你都知道吗?
大数据文摘
4+阅读 · 2018年5月13日
用Python实现线性回归,8种方法哪个最高效?
七月在线实验室
7+阅读 · 2018年4月19日
GitHub最著名的20个Python机器学习项目!
深度学习世界
9+阅读 · 2018年1月8日
Python & 机器学习之项目实践 | 赠书
人工智能头条
14+阅读 · 2017年12月26日
GitHub最著名的20个Python机器学习项目
全球人工智能
9+阅读 · 2017年12月7日
Top
微信扫码咨询专知VIP会员