1 简介

  就在几天前,著名的机器学习框架scikit-learnpypi上释放了其1.0rc1版本,这里给大家科普一下,版本号中的rcRelease Candidate的简称,代表当前的版本是一个候选发布版本,一旦到了这个阶段,scikit-learn对于1.0版本的开发设计就基本上不会再新增功能,而是全力投入到查缺补漏的测试中去也就意味着:

经历了十余年的开发进程,scikit-learn即将迎来其颇具里程碑意义的一次大版本发布!

  在这次大版本更新中,scikit-learn也很有诚意地带来了诸多新特性,下面我们就来对其中一些关键性的内容进行简单的介绍。

2 scikit-learn 1.0 版本重要特性一览

2.1 强制要求使用关键词参数传参

  按照scikit-learn官方的说法,为了更加清楚明确地构建机器学习代码,在之后的版本中,绝大部分API都将逐渐转换为强制使用关键词参数,使用位置参数则会直接抛出TypeError错误,以SVC为例:

2.2 新增r_regression()

  在新版本中新增了sklearn.feature_selection.r_regression(),可以用来快速计算各个自变量与因变量之间的皮尔逊简单相关系数来辅助特征工程过程。

2.3 新增线性分位数回归模型QuantileRegressor()

  新版本中在sklearn.linear_model下添加了线性分位数回归模型QuantileRegressor(),可用于构建回归模型由自变量求出因变量的条件分位数,近年来在计量经济学中应用广泛。

2.4 新增基于随机梯度下降的OneClassSvm模型

  在sklearn.linear_model中新增了基于随机梯度下降法的异常检测模型SGDOneClassSVM()

2.5 带交叉验证的Lasso回归与ElasticNet新增sample_weight参数

  为sklearn.linear_model中的LassoCV()ElasticNetCV()新增参数sample_weight,可帮助我们在模型建立的过程中通过构建权重提升部分样本的重要性。

2.6 为分位数回归模型新增模型性能度量指标

  伴随着新的分位数回归模型,scikit-learn也顺势新增了专门用于度量分位数回归模型性能的Pinball loss系数:

2.7 模型选择新增StratifiedGroupKFold()

  新版中将sklearn.model_selection中常用的StratifiedKFold()GroupKFold()进行结合,使得我们可以快速构建分层分组K折交叉验证流程,详情参考:https://scikit-learn.org/dev/modules/generated/sklearn.model_selection.StratifiedGroupKFold.html#sklearn.model_selection.StratifiedGroupKFold

2.8 KMeans聚类中的k-means++初始化方法运算速度提升

  新版本中cklearn.cluster中常用的KMeans()MiniBatchKMeans()聚类模型,在默认的k-means++簇心初始化方法下运算速度获得大幅度提高,尤其是在多核机器上表现更佳。

2.9 多项式&交互项特征生成速度提升

  新版本中sklearn.preprocessing中用于快速合成多项式&交互项特征的PolynomialFeatures()的运算速度更快了,且在输入为大型稀疏特征时效果更为明显。

2.10 np.matrix型输入即将弃用

  从1.0版本开始,scikit-learn中的各种算法模型在接受numpy中的matrix类型输入时,会打印弃用警告,且从未来的1.2版本开始,当用户输入np.matrix类型时将会直接报错:

2.11 利用feature_names_in_获取pandas数据框输入下的特征名称

  当输入的特征为pandas中的DataFrame类型时,对于训练好的模型,可以使用feature_names_in_属性获取到对应输入特征的字段名称:

2.12 绘制局部依赖图的方式变化

  在我们试图对模型进行解释时,局部依赖图是一个比较经典的工具,在以前的版本中我们可以使用sklearn.inspection中的plot_partial_dependence()来绘制局部依赖图,而在新版本中将会弃用这种方式,并且在1.2版本开始正式移除这个API,新的替代方案是使用sklearn.inspection.PartialDependenceDisplayfrom_estimator()

  除了这些之外,在scikit-learn新版本中还有众多的细碎的更新与调整内容,感兴趣的朋友可以前往https://scikit-learn.org/dev/whats_new/v1.0.html自行浏览学习。


  以上就是本文的全部内容,欢迎在评论区与我进行讨论。

scikit-learn 1.0 版本新特性及变动前瞻性预览的更多相关文章

  1. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系

    C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...

  2. framework各版本新特性(为面试准备)

    菜鸟D估计描述这些新特性的文章都是烂大街的货色,之所以拿出来分(e)享(xin)一下,有两个原因:1.当年面试的时候有人问到,我不知道该怎么回答:2.项目需要发布了,但是考虑到framework的版本 ...

  3. Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结

    Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.----------- ...

  4. c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】

    引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. ---------- ...

  5. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  6. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  7. Atitit mac os 版本 新特性 attilax大总结

    Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0)  1984年2 2.2. Mac OS 7. ...

  8. IOS第三天-新浪微博 - 版本新特性,OAuth授权认证

    *********版本新特性 #import "HWNewfeatureViewController.h" #import "HWTabBarViewController ...

  9. 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

随机推荐

  1. 洛谷P1879题解

    题面 显然是个状压DP. 看数据范围,不难发现算法复杂度应该是 \(O(n\times 2^n \times 2^n)\) . 显然第一个 \(n\) 是遍历每一行的土地. 后面两个 \(2^n\) ...

  2. MySQL 创建高性能索引

    索引是存储引擎用于快速找到记录的一种数据结构.除了加速查找,索引在其他方面也有一些有用的属性.索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较 ...

  3. PHP构造函数__construct()

    (!注意,__construct()前的"__"是两个"_",也就是"_ _") 在PHP5.0后的版本,允许开发者设定一个构造函数,来初始 ...

  4. Eclipse中的项目红叉问题查找记录

    1.先查看项目的validation有没有都勾上,如果都勾上,一般项目下边的文件夹下会显示出来.可以解决. 2.如果项目文件夹下各个红叉都解决了,没有什么报错了.那么可以看下工具的problem标签下 ...

  5. murmur3 hash(hash算法)

    HashUtil.java package com.example.test.util; import com.google.common.base.Charsets; import com.goog ...

  6. JVM学习笔记之类加载机制【八】

    一.类加载时机 1.1 触发类初始化的六个场景: 加载? 1.遇到new.getstatic.putstatic或invokestatic这四条字节码指令时 如果类型没有进行过初始化,则需要先触发其初 ...

  7. noip31

    T1 关于我考场上乱冲平衡树这件sb事 很快就冲了出来 然后手抖打错样例,把我hack了 sb字典序 正解: 先不考虑字典序问题,先将最大分数找出来,然后按照顺序考虑每一个位置填什么那个数能让分数尽可 ...

  8. elasticsearch可视化工具-dejavu

    https://github.com/appbaseio/dejavu docker run -p 1358:1358 -d appbaseio/dejavu http.port: 9200 http ...

  9. .Net Core WebApi(三)--使用 IdentityServer4 4.1.1 踩坑记录

    目的:创建IdentityServer 并通过PostMan验证获取token 第一次配置如下 public class Config { public static IEnumerable<A ...

  10. Java常用类之字符串类

    String 的特性 public final class String implements java.io.Serializable, Comparable<String>, Char ...