在这里插入图片描述

2025 年 9 月 9 日,Scikit-learn 官方宣布正式发布 1.7.2 版本。
这一版本主要包含几个重要的 Bug 修复,并且是 首个支持 Python 3.14 的版本。

本次更新主要内容如下:


一、版本概览

  • 版本号:1.7.2
  • 发布日期:2025 年 9 月 9 日
  • 主要亮点
    • 修复多个组件的已知问题
    • 新增对 Python 3.14 的支持
    • 进一步提升算法的稳定性与易用性

二、scikit-learn 1.7.2 详细更新内容

1. sklearn.compose
  • 修复compose.TransformedTargetRegressor 在将目标变量进行转换后,现在会将维度保持与原目标相同,再传递给回归器。
    此修复确保了在目标维度一致性方面的稳定性,避免了某些回归模型在输入维度不一致时出现错误。

2. sklearn.feature_extraction
  • 修复:为 feature_extraction.FeatureHasherfeature_extraction.text.HashingVectorizer 设置了标签 requires_fit=False
    这意味着这两个类在使用时 无需显式调用 fit,可以直接进行数据转换,符合其无状态(stateless)特性。

3. sklearn.impute
  • 修复:在 impute.SimpleImputer 使用 strategy="most_frequent" 策略时,如果数据中存在多个值并列为最高频率且数据类型为混合类型时,之前版本会出现 bug。
    本次更新修复了该问题,确保此类情况下的插补结果正确。

4. sklearn.linear_model
  • 修复:当在 linear_model.LogisticRegressionCVlinear_model.LogisticRegression 中使用 solver="newton-cholesky" 解决多分类问题,并且启用了 warm_start=True 时,如果 fit_intercept=Truepenalty=None(即无正则化参数),原始的 warm start 提供的最后一类的系数和截距可能会被错误地覆盖为 0。
    本次更新修复了该问题,确保 warm start 的参数能够正确保留和应用。

5. sklearn.pipeline
  • 修复:在 pipeline.FeatureUnion 中,新增校验逻辑,要求所有的子转换器必须返回 二维输出(2D array)。
    如果某个转换器返回的是一维输出(1D array),会抛出明确的错误提示,防止之前悄无声息地产生无意义的拼接结果。

三、如何升级到 1.7.2

使用 pip 升级:

pip install -U scikit-learn

使用 conda-forge 安装:

conda install -c conda-forge scikit-learn

四、总结

本次 scikit-learn 1.7.2 版本虽然是一次小版本更新,但包含了多个在日常开发中可能影响结果的关键 bug 修复,同时也是首个支持 Python 3.14 的版本。建议使用 scikit-learn 的开发者和数据科学从业者尽快升级,以获得更高的稳定性和兼容性。

更多推荐