scikit-learn 这个在机器学习领域广泛应用的库,在近日发布了它的最新版本 0.22。这次更新带来了许多重要的错误修复和新功能,下面将详细介绍一些值得关注的功能。
要安装最新版本的 scikit-learn,可以通过以下几种方式进行:
使用 pip 命令:
shell
pip install -U scikit-learn
使用 conda 命令:
shell
conda install scikit-learn
新增的绘图 API
新版 scikit-learn 引入了新的绘图 API,可以帮助用户快速调整图表的视觉效果,而无需重新计算。这个新功能还支持在同一个图表上添加多个子图。示例展示了如何使用 plot_roc_curve,此外还有 plot_partial_dependence、plot_precision_recall_curve 和 plot_confusion_matrix 等功能。
堆叠分类和回归
新版本引入了 StackingClassifier 和 StackingRegressor,这两个工具可以让用户利用多个估算器进行堆叠,最终通过一个分类器或回归器来进行预测。通过这种方法,可以充分利用每个估算器的优势。基础估算器会完全拟合,而最终的估算器则基于交叉验证的结果进行训练。
基于排列的特征重要性
新版本提供了 inspection.permutation_importance 功能,用于评估拟合后的任何估算器的特征重要性。
原生支持缺失值
ensemble.HistGradientBoostingClassifier 和 ensemble.HistGradientBoostingRegressor 现在可以直接处理缺失值(如 NaN),无需事先进行数据填充。
预先计算的稀疏最近邻图
许多基于最近邻图的估算器现在都可以接受预先计算的稀疏图作为输入,这使得可以在多个估算器拟合过程中重复使用相同的图。用户可以通过 memory 参数以及 neighbors.KNeighborsTransformer 或 neighbors.RadiusNeighborsTransformer 来实现这一功能。
基于 KNN 的插补
新版本支持使用 k 最近邻方法来估算缺失值。每个样本的缺失值将根据训练集中最近的 k 个邻居的平均值来估算。
树的剪枝
在构建树模型之后,现在可以对其进行剪枝操作,以优化模型的复杂度。
从 OpenML 获取数据帧
datasets.fetch_openml 现在可以返回 pd.DataFrame,从而更好地处理异构数据集。
检查 scikit-learn 兼容性
开发者可以使用 check_estimator 函数来验证他们的 scikit-learn 兼容估计器是否符合规范。此外,现在还提供了一个特定于 pytest 的装饰器,可以独立运行所有检查并报告失败情况。
ROC AUC 支持多类别分类
新版本的 roc_auc_score 功能现在也支持多类别分类。它支持两种平均策略:“一对一”和“一对多”,并且可以根据样本属于特定类别的概率估计来计算多类 ROC AUC 分数。
希望这些新功能能为 scikit-learn 用户带来更多的便利和效率!