快捷搜索:

Python机器学习系列3:一个通用、强大的Python机器学习函数库

如果你对Python机器学习感兴趣,正在寻找一个强大的Python机器学习库,那么本文将强烈推荐scikit-learn,它可以帮助你把机器学习轻松应用到生产环境中。

本文将会介绍对scikit-learn库进行基本介绍,并扩展介绍相关常用机器学习资源。

scikit-learn库的产生

scikit-learn最初是David Cournapeau在2007年Google夏令营的代码项目中首次实现的。后来Matthieu Brucher加入了这个项目,并开始将其作为论文工作的一部分。2010年,INRIA参与其中,并于2010年1月第一次公开发布scikit-learn的v0.1 beta版本。

该项目目前有30多名活跃的贡献者,并已获得INRIA,Google,Tinyclues和Python软件基金会的赞助。

Python机器学习系列3:一个通用、强大的Python机器学习函数库

什么是scikit-learn

scikit-learn库是通过Python或c实现一系列有监督和无监督的学习算法,并提供封装好的Python借口供其他开发者使用。它是BSD许可证授权,并在许多Linux发行版下分发,鼓励学术和商业用途。

该库是基于SciPy(Scientific Python)构建的,必须先安装它才能使用scikit-learn。下面是scikit-learn依赖的一些Python包:

NumPy:操作N维数组的工具SciPy:科学计算的基础库Matplotlib:2D / 3D绘图IPython:增强的交互式控制台Sympy:数学对象符号化的计算方式pandas:数据分析的基础库scikit-learn库是基于SciPy库的扩展,增加了很多通用算法模块。由于该库提供很多机器学习算法,所以命名为scikit-learn。

该库的初衷是希望能够将机器学习快速运用于生成环境中,并保持健壮性和稳定性。这意味着该函数库必须具备易用、方便协作、文档详细和性能优越等特性。

虽然scikit-learn接口是Python,但是具体实现上用到了c语言,以提升性能,例如数组和矩阵运算的numpy,LAPACK,LibSVM以及cython等,都是用c语言实现的。

scikit-learn库的特点

该库专注于数据建模,但它不专注于加载、操作数据。如果你要处理数据,可以使用NumPy和Pandas。

Python机器学习系列3:一个通用、强大的Python机器学习函数库

scikit-learn提供了很多基础模型,包括:

聚类:用于对未标记的数据(如KMeans)进行分组。交叉验证:用于估计监督模型对未知数据的性能。数据集:常见的开源数据集。降维:用于减少数据中的属性数量,以进行简化、可视化和特征选择,例如主成分分析。集合方法:用于组合多个监督模型的预测结果。特征提取:用于抽取图像和文本数据的属性。特征选择:用于选择权重较大的属性。参数调整:用于调整模型参数。流形学习:用于总结和描述复杂的多维数据。监督模型:包括线性模型,判别分析,朴素贝叶斯,惰性方法,神经网络,支持向量机和决策树等常见模型。

Python机器学习系列3:一个通用、强大的Python机器学习函数库

示例:分类和回归树

这里通过举例演示使用该库训练模型是多么简单。

在此示例中,我们使用决策树(CART)算法来模拟内置的Iris数据集。代码如下,使用加载数据,并通过决策树分类模型拟合数据,然后对训练数据进行预测。最后,打印分类准确度和混淆矩阵。

Python机器学习系列3:一个通用、强大的Python机器学习函数库

除去注释的代码,大概只用了10行代码就实现了这样一个分类模型!

资源

如果你想要学习scikit-learn,可以从它的官网页面中的快速入门教程开始,然后浏览用户指南和示例库,并深入学习你感兴趣的算法。

scikit-learn是一个比较完善的库,它的文档可以帮助你解决很多问题。可以重点关注文档的以下几个部分:

快速入门教程 用户指南API参考示例库另外,如果你想通过书籍学习,下面两本书介绍了scikit-learn来训练机器学习模型。

学习scikit-learn:Python中的机器学习 (2013)使用Python构建机器学习系统 (2013)

您可能还会对下面的文章感兴趣: