机器学习Tips:关于Scikit-Learn的 10 个小秘密
作者 | Rebecca Vickery
原文 | 见『阅读原文』
编译 | NewBeeNLP
写在前面
Scikit-learn是使用最广泛的Python机器学习库之一。它有标准化和简单的接口,用于数据预处理和模型训练、优化以及评估。
这个项目最初是由David Cournapeau 开发的Google Summer of Code 项目,并于2010年首次公开发布。自创建以来,该库已经发展成为一个丰富的生态系统,用于开发机器学习模型。随着时间的推移,该项目开发了许多方便的功能,以增强其易用性。在本文中,我将介绍你可能不知道的10个关于Scikit-learn最有用的特性。
1. 内置数据集
Scikit-learn API内置了各种toy和real-world数据集[1]。这些可以便捷地通过一行代码访问,如果你正在学习或只是想快速尝试新功能,这会非常有用。
你还可以使用make_regression()
、make_blobs()
和make_classification()
生成合成数据集。所有加载实用程序都提供了返回已拆分为X(特征)和y(目标)的数据选项,以便它们可以直接用于训练模型。
2. 获取公开数据集
如果你想直接通过Scikit-learn访问更多的公共可用数据集,请了解,有一个方便的函数datasets.fetch_openml
,可以让您直接从openml.org网站[2]获取数据。这个网站包含超过21000个不同的数据集,可以用于机器学习项目。
3. 内置分类器来训练baseline
在为项目开发机器学习模型时,首先创建一个baseline模型是非常有必要的。这个模型在本质上应该是一个“dummy”模型,比如一个总是预测最频繁出现的类的模型。这就提供了一个基准,用来对你的“智能”模型进行基准测试,这样你就可以确保它的性能比随机结果更好。
Scikit learn包括用于分类任务的DummyClassifier()
和用于基于回归问题的 DummyRegressor()
。
4. 内置绘图api
Scikit learn有一个内置的绘图API,允许你在不导入任何其他库的情况下可视化模型性能。包括以下绘图:部分相关图、混淆矩阵、精确召回曲线和ROC曲线。
5. 内置特征选择方法
提高模型性能的一种技术是只使用最好的特征集或通过删除冗余特征来训练模型。这个过程称为特征选择。
Scikit learn有许多函数来执行特征选择。一个示例为 SelectPercentile()
,该方法根据所选的统计方法选择性能最好的X百分位特征进行评分。
6. 机器学习pipeline
除了为机器学习提供广泛的算法外,Scikit learn还具有一系列用于「预处理」和「转换数据」的功能。为了促进机器学习工作流程的再现性和简单性,Scikit learn创建了管道(pipeline),允许将大量预处理步骤与模型训练阶段链接在一起。
管道将工作流中的所有步骤存储为单个实体,可以通过「fit」和「predict」方法调用该实体。在管道对象上调用fit方法时,预处理步骤和模型训练将自动执行。
7. ColumnTransformer
在许多数据集中,你将拥有不同类型的特征,需要应用不同的预处理步骤。例如,可能有分类数据和连续数据的混合,你可能希望通过one-hot编码将分类数据转换为数字,并缩放数字变量。
Scikit-learn管道有一个名为ColumnTransformer
的函数,它允许你通过索引或指定列名来轻松指定要对哪些列应用最适当的预处理。
8. 管道的HTML形式
管道通常会变得非常复杂,尤其是在处理真实世界的数据时。因此,scikit-learn提供了一种方法来输出管道中步骤的HTML图表[3],非常方便。
9. 可视化 树模型
plot_tree()
函数允许你创建决策树模型中的步骤图。
10. 丰富的第三方扩展
许多第三方库可以更好地扩展scikit-learn的特性。举个栗子,category-encoders
库,它为分类特性提供了更大范围的预处理方法,以及ELI5包
以实现更大的模型可解释性。这两个包也可以直接在Scikit-learn管道中使用。
本文参考资料
[1]
toy和real-world数据集: https://scikit-learn.org/stable/datasets/index.html
[2]
openml.org网站: https://www.openml.org/home
[3]
HTML图表: https://scikit-learn.org/stable/modules/compose.html#visualizing-composite-estimators
- END -
老铁,三连支持一下,好吗?↓↓↓
机器学习Tips:关于Scikit-Learn的 10 个小秘密相关推荐
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络
本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...
- python scikit learn 关闭开源_scikit learn 里没有神经网络?
本教程的代码和数据来自于 Springboard 的博客教程,希望能为你提供帮助.作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:ht ...
- [转载]Scikit Learn: 在python中机器学习
原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...
- Scikit Learn: 在python中机器学习
Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...
- wpf window 不执行show 就不能load执行_关于机器学习中的Scikit-Learn,你不知道的10个实用功能...
Scikit-learn是使用最广泛的Python机器学习库之一. 它具有标准化和简单的界面,用于预处理数据以及模型训练,优化和评估. 该项目最初由David Cournapeau开发的Google ...
- scikit - learn 做文本分类
文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...
- TensorFlow高层次机器学习API (tf.contrib.learn)
TensorFlow高层次机器学习API (tf.contrib.learn) 1.tf.contrib.learn.datasets.base.load_csv_with_header 加载csv格 ...
- TF学习——TF之API:TensorFlow的高级机器学习API—tf.contrib.learn的简介、使用方法、案例应用之详细攻略
TF学习--TF之API:TensorFlow的高级机器学习API-tf.contrib.learn的简介.使用方法.案例应用之详细攻略 目录 tf.contrib.learn的简介 tf.contr ...
最新文章
- Python集合之set()使用方法详解
- SAXReader解析xml繁体字乱码问题
- 解决SQL server2005数据库死锁的经验心得
- 图形处理(六)拖拽式网格融合-Siggraph 2010
- 江苏省事业单位计算机入面分数线,2020江苏事业单位统考周日笔试,考多少分进面?...
- 数据模型与决策_数据模型与决策复习资料拿走不用客气
- 认识mysql总结_从根上理解Mysql - 读后个人总结1-搜云库
- 人脸离线识别模块_人脸消费机离线刷脸如何实现?
- 在mac上安装python版的hanlp/JPype1
- 基于JAVA+SpringMVC+Mybatis+MYSQL的医院预约挂号系统
- asp.net hessian + android hessdroid
- jquery对url中的中文解码
- DNN硬件加速器设计1 -- 序(MIT)
- Unity简易小地图制作
- windows无法访问共享文件 所有解决方法(非复制粘贴的烂大街处理方法)
- 旋转木马图片效果图,轮播图
- 工具一栏,就是小锤子右边的一排都没亮
- MATLAB之自动控制原理(1)
- q某音乐API接口分析--获取vKey和Sign
- Mevoco 1.6 发布:支持在线克隆云主机的私有云