博客
关于我
Scikit-learn 更新至0.24版,这10个新特性你需要了解
阅读量:554 次
发布时间:2019-03-09

本文共 1984 字,大约阅读时间需要 6 分钟。

Scikit-learn 0.24.0 引入了多项令人关注的新特性,进一步提升了 Python 机器学习领域的实用性和效率。这些更新涵盖了超参数优化、可视化、高阶模型训练和特征处理等多个方面。下面将详细探讨这些新功能。

自 2007 年发布以来,Scikit-learn已然成为 Python 社区信赖的通用机器学习库,其支持范围覆盖分类、回归、降维及聚类等核心算法,同时提供了丰富的数据处理和模型评估工具。这一库凭借其完善的文档和灵活的 API,吸引了众多学术研究者和工业界的开发者。

1. HalvingGridSearchCV 和 HalvingRandomSearchCV

这两个新算法旨在通过锦标赛方法选择最佳超参数组合,相较于 GridSearchCV 和 RandomizedSearchCV,资源消耗更低。HalvingGridSearchCV 通过全面搜索所有超参数组合,而 HalvingRandomSearchCV 则采用随机子集策略。在实际应用中,若超参数搜索空间较小且模型训练时间有限,可选择 GridSearchCV;当搜索空间较大或模型效率较低时,推荐使用 HalvingGridSearchCV 或 HalvingRandomSearchCV。这些类目前位于 Experimental 模块,使用前需启用相关导入。

2. ICE 图可视化功能

Scikit-learn 0.24 引入了对个体条件期望(ICE)图的支持,同时也增强了部分依赖图(PDP)的功能。ICE 图与 PDP 的主要区别在于,它展示了每个样本的特征对目标的预测依赖性,而 PDP 则显示的是平均依赖性。通过 plot_partial_dependency 函数,开发者可以选择 'individual' 关键字参数查看 ICE 图,或同时查看 PDP 和 ICE。

3. 直方图 boosting 算法优化

HistGradientBoostingRegressor 和 HistGradientBoostingClassifier 在 0.24 版本中获得了性能和效率的提升。该算法支持类别特征的编码,通过 categorical_features 参数,可充分发挥特征编码器的优势。相较于传统的 one-hot 编码,基于直方图的 booster 早期拼接方法优化了内存和计算效率。此外,该估计器现在支持缺失值处理,可直接处理未补充的数据,节省了预处理开销。

4. 新增的 SequentialFeatureSelector

该特征选择器通过前向优化逐步添加特征,优先选择提升模型性能的特征。不同于 RFE 和 SelectFromModel 函数,该工具无需依赖底层模型的系数或重要性属性,其特征选择标准依赖于交叉验证结果。然而,由于其检验方法的特性,处理速度可能较其他方法稍慢。

5. 多项式特征近似优化

PolynomialFeatures 转换器虽然能产生高阶多项式和交互项,但其耗时较高。scikit-learn 新增了 PolynomialCountSketch 核近似函数,该方法能够以较低计算开销训练性能优越的线性模型。默认配置生成大约原始特征数的 10 倍特征集合,适用于对特征交互作用关注的场景,但其解释性较弱。

6. 自监督学习的 SelfTrainingClassifier

该分类器作为一个元分类器,适用于半监督学习任务。其能利用标记数据中的未标记样本(标记为 -1)进行学习,允许开发者在监督任务中潜在优势富余的数据分布中定制模型。

7. 回归评估指标的增加

mean_absolute_percentage_error 函数被新增至回归评估工具中,作为另一种衡量模型预测性能的标准。该函数的综合计算方法与 R-squared 指标类似,可为不同回归任务提供参考比较结果。

8. OneHotEncoder 对缺失值的支持

该编码器现已支持缺失值处理,在原始数据集中存在 null 值的情况下,转换后增加一个特征表示缺失情况。这一优化减少了预处理的复杂性,提升了用户体验。

9. OrdinalEncoder 的灵活性

该编码器在新未知类别处理方面增添了灵活性,通过 handle_unknown 参数可自定义缺失值表示,为处理测试集中新类别提供了额外选项。这一特性显著提升了其在实际应用中的适用性。

10. 递归式特征消除的弹性配置

用户可根据需求控制保留的特征比例,通过 n_features_to_select 参数指定保留比例(0 到 1 之间),使得特征消除过程更加可控和灵活。

这些新功能的引入不仅提升了 scikit-learn 的功能性,还优化了用户体验和性能表现,让开发者在多个应用场景中获得更高效的工具。

END

转载地址:http://vpcsz.baihongyu.com/

你可能感兴趣的文章
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql sysbench测试安装及命令
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
MySQL Workbench 数据库建模详解:从设计到实践
查看>>
MySQL Workbench 数据建模全解析:从基础到实践
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>