前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scikit-Learn的简介:Python机器学习库

Scikit-Learn的简介:Python机器学习库

作者头像
用户1208169
发布2018-02-06 15:58:46
2.9K0
发布2018-02-06 15:58:46

如果你是一名Python程序员,或者你正在寻找一个强大的库,可以将机器学习运用到实际系统中,那么你要认真考虑一下scikit-learn。

在这篇文章中,您将了解scikit-learn整体情况,以及获取一些有用的相关参考资料,帮助你了解更多。

它是如何产生的?

Scikit-learn最初是由David Cournapeau在2007年的Google的“代码之夏”项目中开发而成。

后来Matthieu Brucher加入了这个项目,开始把它作为他论文工作的一部分。在2010年,INRIA也加入进来,紧接着第一个公开版本(v0.1 beta)于2010年1月下旬发布。

该项目现在有超过30个活跃的贡献者,并且已经获得了INRIA,Google,TinycluesPython软件基金会的赞助。

Scikit学习主页

什么是scikit-learn?

Scikit-learn通过定义统一的Python接口,实现了一系列有监督和无监督的学习算法。

它拥有简化的BSD许可,并在许多Linux发行版本下发布,鼓励学术和商业上的使用。

该库建立在SciPy(科学计算 Python)上,在使用scikit-learn之前必须安装它。科学计算Python包括:

  • NumPy:基于n维数组包
  • SciPy:科学计算的基础库
  • Matplotlib:全面的2D / 3D绘图
  • IPython:增强的交互式控制台
  • Sympy:符号数学
  • Pandas:数据结构和分析

SciPy相关的扩展或模块通常被称作为SciKits。本身而言,该模块提供了机器学习算法,便被命名为scikit-learn。

Scikit-learn库的愿景是有很高的稳健性,并为实际系统中的使用提供所需的支持。这意味着对于易用性,代码质量,协作,说明文档和性能等方面要深入关注。

虽然接口是Python,c语言库也被用于性能优化,比如用于数组和矩阵操作的numpy,LAPACKLibSVM以及cython的使用。

需要Python的机器学习工具的帮助?

参加免费的为期两周的电子邮件课程,探索数据准备,算法和更多的知识(附带示例代码)。

现在点击注册,并获得免费的课程PDF电子书。

现在开始你的免费迷你课程!

有什么特点?

Scikit-learn专注于数据建模,而不是数据的加载,操作和汇总。有关这些功能,请参阅NumPy和Pandas。

均值漂移聚类算法演示中截取的截图

scikit-learn提供的一些流行的模型包括:

  • 聚类:用于分类未标记的数据,如KMeans。
  • 交叉验证:用于估计监督模型在未知数据上的表现。
  • 数据集:用于测试数据集和生成研究模型,具有特定属性的数据集。
  • 降维:对于用于总结,可视化,和特征选择的数据,减少数据中的属性数量,如主成分分析。
  • 集合方法:结合多个监督模型的预测结果。
  • 特征提取:用于定义图像和文本数据中的属性。
  • 特征选择:识别用于监督模型的有效属性。
  • 参数调整:充分利用监督模型。
  • 流形学习:用于总结和描述复杂的多维数据。
  • 监督模型:多种的方法,包括广义线性模型,判别分析,朴素贝叶斯,懒惰模型,神经网络,支持向量机和决策树。

示例:分类和回归Tress

我想通过一个例子,说明这个库的易用性。

在这个例子中,我们使用分类和回归(CART)决策树算法来对鸢尾花数据集建模。

该数据集是库中提供,并加载的示例数据集。这个分类器使用这个数据,然后在训练数据基础上进行预测。

最后打印分类准确率和一个混淆矩阵。

Sample Decision Tree Classifier

from sklearn import datasets

from sklearn import metrics

from sklearn.tree import DecisionTreeClassifier

load the iris datasets

dataset = datasets.load_iris()

fit a CART model to the data

model = DecisionTreeClassifier()

model.fit(dataset.data, dataset.target)

print(model)

make predictions

expected = dataset.target

predicted = model.predict(dataset.data)

summarize the fit of the model

print(metrics.classification_report(expected, predicted))

print(metrics.confusion_matrix(expected, predicted))

运行这个例子会产生下面的输出,显示训练模型的细节,根据一些公共矩阵和模糊矩阵的进行建模的技巧。

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,

            max_features=None, max_leaf_nodes=None, min_samples_leaf=1,

            min_samples_split=2, min_weight_fraction_leaf=0.0,

            presort=False, random_state=None, splitter='best')

             precision    recall  f1-score   support

          0       1.00      1.00      1.00        50

          1       1.00      1.00      1.00        50

          2       1.00      1.00      1.00        50

avg / total       1.00      1.00      1.00       150

[50  0  0

0 50  0

0  0 50]

谁在使用它?

scikit学习推荐页面列出INRIA,Mendeley,wise.io,Evernote,Telocom ParisTech和AWeber作为库的使用者。

如果这仅仅是使用库的公司的一小部分,那么很可能有几十到几百倍多的大型组织也在使用scikit-learn。

它具有良好的测试覆盖率和管理的版本,对于原型和生产项目同样使用。

资源

如果您有兴趣了解更多信息,请查看包含文档和相关资源的Scikit-Learn主页

您可以从github存储库获取代码,并且Sourceforge项目上的有历史发布的版本可以使用。

文档

我建议从快速入门教程开始,浏览用户指南和示例库找到您感兴趣的算法。

最终,scikit-learn是一个库,API参考将是完成任务的最佳文档。

文章

如果您有兴趣了解更多关于项目的开始和愿景的信息,那么可以参考下面一些论文。

图书

如果你正在寻找一本好书,我推荐“Building Machine Learning Systems with Python

”。写作质量高,例子生动。

对Python机器学习觉得灰心?

几分钟内开发你自己的模型

...只需几行scikit-learn代码

在我的新电子书了解:

用Python掌握机器学习

涵盖自学教程端对端项目,如:

加载数据可视化建模调优等等...

最后把机器学习运用到自己的项目中

不包括学术内容。仅仅是一些结论。

点击了解更多

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 它是如何产生的?
  • 什么是scikit-learn?
    • 需要Python的机器学习工具的帮助?
    • 有什么特点?
    • 示例:分类和回归Tress
    • Sample Decision Tree Classifier
    • load the iris datasets
    • fit a CART model to the data
    • make predictions
    • summarize the fit of the model
      • 谁在使用它?
        • 资源
          • 文档
          • 文章
          • 图书
        • 对Python机器学习觉得灰心?
        相关产品与服务
        TI-ONE 训练平台
        TI-ONE 训练平台(以下简称TI-ONE)是为 AI 工程师打造的一站式机器学习平台,为用户提供从数据接入、模型训练、模型管理到模型服务的全流程开发支持。TI-ONE 支持多种训练方式和算法框架,满足不同 AI 应用场景的需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档