本文共 1984 字,大约阅读时间需要 6 分钟。
Scikit-learn 0.24.0 引入了多项令人关注的新特性,进一步提升了 Python 机器学习领域的实用性和效率。这些更新涵盖了超参数优化、可视化、高阶模型训练和特征处理等多个方面。下面将详细探讨这些新功能。
自 2007 年发布以来,Scikit-learn已然成为 Python 社区信赖的通用机器学习库,其支持范围覆盖分类、回归、降维及聚类等核心算法,同时提供了丰富的数据处理和模型评估工具。这一库凭借其完善的文档和灵活的 API,吸引了众多学术研究者和工业界的开发者。
这两个新算法旨在通过锦标赛方法选择最佳超参数组合,相较于 GridSearchCV 和 RandomizedSearchCV,资源消耗更低。HalvingGridSearchCV 通过全面搜索所有超参数组合,而 HalvingRandomSearchCV 则采用随机子集策略。在实际应用中,若超参数搜索空间较小且模型训练时间有限,可选择 GridSearchCV;当搜索空间较大或模型效率较低时,推荐使用 HalvingGridSearchCV 或 HalvingRandomSearchCV。这些类目前位于 Experimental 模块,使用前需启用相关导入。
Scikit-learn 0.24 引入了对个体条件期望(ICE)图的支持,同时也增强了部分依赖图(PDP)的功能。ICE 图与 PDP 的主要区别在于,它展示了每个样本的特征对目标的预测依赖性,而 PDP 则显示的是平均依赖性。通过 plot_partial_dependency 函数,开发者可以选择 'individual' 关键字参数查看 ICE 图,或同时查看 PDP 和 ICE。
HistGradientBoostingRegressor 和 HistGradientBoostingClassifier 在 0.24 版本中获得了性能和效率的提升。该算法支持类别特征的编码,通过 categorical_features 参数,可充分发挥特征编码器的优势。相较于传统的 one-hot 编码,基于直方图的 booster 早期拼接方法优化了内存和计算效率。此外,该估计器现在支持缺失值处理,可直接处理未补充的数据,节省了预处理开销。
该特征选择器通过前向优化逐步添加特征,优先选择提升模型性能的特征。不同于 RFE 和 SelectFromModel 函数,该工具无需依赖底层模型的系数或重要性属性,其特征选择标准依赖于交叉验证结果。然而,由于其检验方法的特性,处理速度可能较其他方法稍慢。
PolynomialFeatures 转换器虽然能产生高阶多项式和交互项,但其耗时较高。scikit-learn 新增了 PolynomialCountSketch 核近似函数,该方法能够以较低计算开销训练性能优越的线性模型。默认配置生成大约原始特征数的 10 倍特征集合,适用于对特征交互作用关注的场景,但其解释性较弱。
该分类器作为一个元分类器,适用于半监督学习任务。其能利用标记数据中的未标记样本(标记为 -1)进行学习,允许开发者在监督任务中潜在优势富余的数据分布中定制模型。
mean_absolute_percentage_error 函数被新增至回归评估工具中,作为另一种衡量模型预测性能的标准。该函数的综合计算方法与 R-squared 指标类似,可为不同回归任务提供参考比较结果。
该编码器现已支持缺失值处理,在原始数据集中存在 null 值的情况下,转换后增加一个特征表示缺失情况。这一优化减少了预处理的复杂性,提升了用户体验。
该编码器在新未知类别处理方面增添了灵活性,通过 handle_unknown 参数可自定义缺失值表示,为处理测试集中新类别提供了额外选项。这一特性显著提升了其在实际应用中的适用性。
用户可根据需求控制保留的特征比例,通过 n_features_to_select 参数指定保留比例(0 到 1 之间),使得特征消除过程更加可控和灵活。
这些新功能的引入不仅提升了 scikit-learn 的功能性,还优化了用户体验和性能表现,让开发者在多个应用场景中获得更高效的工具。
END
转载地址:http://vpcsz.baihongyu.com/