.. include:: _contributors.rst .. currentmodule:: sklearn .. _release_notes_1_0: =========== 版本 1.0 =========== 有关本次发布主要亮点的简要描述,请参阅 :ref:`sphx_glr_auto_examples_release_highlights_plot_release_highlights_1_0_0.py` 。 .. include:: changelog_legend.inc .. _changes_1_0_2: 版本 1.0.2 ============= **2021年12月** - |Fix| :class:`cluster.Birch` 、 :class:`feature_selection.RFECV` 、:class:`ensemble.RandomForestRegressor` 、 :class:`ensemble.RandomForestClassifier` 、 :class:`ensemble.GradientBoostingRegressor` 和 :class:`ensemble.GradientBoostingClassifier` 在拟合 pandas DataFrame 时不再引发警告。:pr:`21578` 由 `Thomas Fan`_ 提交。 更新日志 --------- :mod:`sklearn.cluster` ...................... - |Fix| 修复了 :func:`cluster.SpectralClustering` 中的无限循环问题,将迭代计数器从 try 移动到 except。 :pr:`21271` 由 :user:`Tyler Martin ` 提交。 :mod:`sklearn.datasets` ....................... - |Fix| :func:`datasets.fetch_openml` 现在线程安全。数据首先下载到临时子文件夹,然后重命名。 :pr:`21833` 由 :user:`Siavash Rezazadeh ` 提交。 :mod:`sklearn.decomposition` ............................ - |Fix| 修复了 :class:`decomposition.DictionaryLearning` 、 :class:`decomposition.MiniBatchDictionaryLearning` 、:class:`decomposition.SparsePCA` 和 :class:`decomposition.MiniBatchSparsePCA` 的目标函数的约束条件,使其为凸函数并符合参考文章。 :pr:`19210` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.ensemble` ....................... - |Fix| :class:`ensemble.RandomForestClassifier` 、 :class:`ensemble.RandomForestRegressor` 、 :class:`ensemble.ExtraTreesClassifier` 、:class:`ensemble.ExtraTreesRegressor` 和 :class:`ensemble.RandomTreesEmbedding` 现在在 ``bootstrap=False`` 且 ``max_samples`` 不为 ``None`` 时引发 ``ValueError`` 。 :pr:`21295` :user:`Haoyin Xu ` . - |Fix| 修复了 :class:`ensemble.GradientBoostingClassifier` 中的一个错误,其中指数损失计算的是正梯度而不是负梯度。 :pr:`22050` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.feature_selection` ................................ - |Fix| 通过改进对未设置 `feature_names_in_` 的基础估计器的支持,修复了 :class:`feature_selection.SelectFromModel` 。 :pr:`21991` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.impute` ..................... - |Fix| 修复了 :class:`linear_model.RidgeClassifierCV` 中的一个错误,其中 `predict` 方法在从 `decision_function` 获得的分数上执行 `argmax` 而不是返回多标签指示矩阵。 :pr:`19869` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.linear_model` ........................... - |Fix| :class:`linear_model.LassoLarsIC` 现在正确计算 AIC 和 BIC。当 `n_features > n_samples` 且未提供噪声方差时,现在会引发错误。 :pr:`21481` 由 :user:`Guillaume Lemaitre ` 和 :user:`Andrés Babino ` 提交。 :mod:`sklearn.manifold` ....................... - |Fix| 修复了在使用预计算的密集距离矩阵拟合 :class:`manifold.Isomap` 时,当邻居图具有多个不连通组件时出现的不必要错误。 :pr:`21915` 由 `Tom Dupre la Tour`_ 提交。 :mod:`sklearn.metrics` ...................... - |Fix| 所有 :class:`sklearn.metrics.DistanceMetric` 子类现在都正确支持只读缓冲区属性。 这修复了相对于 0.24.2 在 1.0.0 中引入的回归问题。 :pr:`21694` 由 :user:`Julien Jerphanion ` 提交。 - |Fix| 所有 `sklearn.metrics.MinkowskiDistance` 现在接受一个权重参数,使得代码在 scipy 1.8 和早期版本中行为一致。这反过来意味着所有 基于邻居的估计器(除了使用 `algorithm="kd_tree"` 的那些)现在接受一个带有 `metric="minknowski"` 的权重参数,以产生始终与 `scipy.spatial.distance.cdist` 一致的结果。:pr:`21741` 由 :user:`Olivier Grisel ` 贡献。 :mod:`sklearn.multiclass` ......................... - |Fix| :meth:`multiclass.OneVsRestClassifier.predict_proba` 在拟合常量整数目标时不会出错。:pr:`21871` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.neighbors` ........................ - |Fix| :class:`neighbors.KDTree` 和 :class:`neighbors.BallTree` 正确支持只读缓冲区属性。:pr:`21845` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.preprocessing` ............................ - |Fix| 修复了与 NumPy 1.22 的兼容性问题,在 :class:`preprocessing.OneHotEncoder` 中。:pr:`21517` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.tree` ................... - |Fix| 防止 :func:`tree.plot_tree` 绘制超出图表边界。:pr:`21917` 由 `Thomas Fan`_ 贡献。 - |Fix| 支持加载决策树模型的 pickle 文件,当 pickle 是在具有不同位数的平台上生成时。一个典型的例子是在 64 位机器上训练和 pickle 模型,然后在 32 位机器上加载模型进行预测。:pr:`21552` 由 :user:`Loïc Estève ` 贡献。 :mod:`sklearn.utils` .................... - |Fix| :func:`utils.estimator_html_repr` 现在在生成的 HTML 中转义所有估计器描述。:pr:`21493` 由 :user:`Aurélien Geron ` 贡献。 .. _changes_1_0_1: 版本 1.0.1 ========= **2021年10月** 修复的模型 ---------- - |Fix| 以下类的非拟合方法在拟合具有有效特征名称的 DataFrame 时不会引发 UserWarning: :class:`covariance.EllipticEnvelope` , :class:`ensemble.IsolationForest` , :class:`ensemble.AdaBoostClassifier` , :class:`neighbors.KNeighborsClassifier` , :class:`neighbors.KNeighborsRegressor` , :class:`neighbors.RadiusNeighborsClassifier` , :class:`neighbors.RadiusNeighborsRegressor` . :pr:`21199` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.calibration` .......................... - |Fix| 修复了 :class:`calibration.CalibratedClassifierCV` 在 `ensemble=False` 时计算基估计器预测时未考虑 `sample_weight` 的问题。 :pr:`20638` 由 :user:`Julien Bohné ` 提交。 - |Fix| 修复了 :class:`calibration.CalibratedClassifierCV` 在 `method="sigmoid"` 时计算贝叶斯先验时忽略 `sample_weight` 的错误。 :pr:`21179` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.cluster` ...................... - |Fix| 修复了 :class:`cluster.KMeans` 中的一个错误,确保稀疏和密集输入之间的可重复性和等价性。 :pr:`21195` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.ensemble` ....................... - |Fix| 修复了在极少数情况下可能导致 :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 产生段错误的错误。 :pr:`21130` 由 :user:`Christian Lorentzen ` 提交。 :mod:`sklearn.gaussian_process` ............................... - |Fix| 在多目标场景中,正确计算 :class:`sklearn.gaussian_process.GaussianProcessRegressor` 中的 `y_std` ,实现适当的归一化。 :pr:`20761` 由 :user:`Patrick de C. T. R. Ferreira ` 提交。 :mod:`sklearn.feature_extraction` ................................. - |Efficiency| 修复了在 1.0.0 版本中引入的 :class:`feature_extraction.text.CountVectorizer` 的 `transform` 方法中的效率回归问题,该方法不再检查提供的词汇表中的大写字符。 :pr:`21251` 由 :user:`Jérémie du Boisberranger ` 提交。 - |Fix| 修复了 :class:`feature_extraction.text.CountVectorizer` 和 :class:`feature_extraction.text.TfidfVectorizer` 中的错误,当 'min_idf' 或 'max_idf' 大于 1 的浮点数时会引发错误。 :pr:`20752` 由 :user:`Alek Lefebvre ` 提交。 :mod:`sklearn.linear_model` ........................... - |Fix| 提高了 :class:`linear_model.LassoLars` 在不同版本的 openblas 下的稳定性。:pr:`21340` 由 `Thomas Fan`_ 提交。 - |Fix| :class:`linear_model.LogisticRegression` 现在在求解器不支持带有 int64 索引的稀疏矩阵时会抛出一个更好的错误信息。:pr:`21093` 由 `Tom Dupre la Tour`_ 提交。 :mod:`sklearn.neighbors` ........................ - |Fix| :class:`neighbors.KNeighborsClassifier` , :class:`neighbors.KNeighborsRegressor` , :class:`neighbors.RadiusNeighborsClassifier` , :class:`neighbors.RadiusNeighborsRegressor` 在 `metric="precomputed"` 时,对于 `bsr` 和 `dok` 稀疏矩阵在方法 `fit` , `kneighbors` 和 `radius_neighbors` 中会抛出错误,因为 `bsr` 和 `dok` 稀疏图格式中显式零的处理。:pr:`21199` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.pipeline` ....................... - |Fix| :meth:`pipeline.Pipeline.get_feature_names_out` 正确地将特征名称从一个管道步骤传递到下一个步骤。:pr:`21351` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.svm` .................. - |Fix| :class:`svm.SVC` 和 :class:`svm.SVR` 检查其内部表示的不一致性并抛出错误而不是段错误。此修复还解决了 `CVE-2020-28975 `__ 。:pr:`21336` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.utils` .................... - |Enhancement| `utils.validation._check_sample_weight` 可以对样本权重进行非负性检查。可以通过 only_non_negative 布尔参数开启。更新了检查非负权重的估计器::func:`linear_model.LinearRegression` (之前的错误信息有误导性),:func:`ensemble.AdaBoostClassifier` ,:func:`ensemble.AdaBoostRegressor` ,:func:`neighbors.KernelDensity` 。 :pr:`20880` 由 :user:`Guillaume Lemaitre ` 和 :user:`András Simon ` 贡献。 - |Fix| 修复了 ``sklearn.utils.metaestimators.if_delegate_has_method`` 中的一个错误,该错误在检查属性时无法与 NumPy 数组一起工作。:pr:`21145` 由 :user:`Zahlii ` 贡献。 杂项 ............. - |Fix| 在数据集没有特征名称的情况下拟合估计器,之前在具有特征名称的数据集上拟合的估计器不再保留旧的特征名称存储在 `feature_names_in_` 属性中。:pr:`21389` 由 :user:`Jérémie du Boisberranger ` 贡献。 .. _changes_1_0: 版本 1.0.0 ============= **2021年9月** 最小依赖 -------------------- scikit-learn 的 1.0.0 版本需要 python 3.7+,numpy 1.14.6+ 和 scipy 1.1.0+。可选的最小依赖是 matplotlib 2.2.2+。 强制使用仅关键字参数 -------------------------------- 为了促进库的清晰和无歧义使用,大多数构造函数和函数参数现在必须作为关键字参数传递(即使用 `param=value` 语法)而不是位置参数。如果仅关键字参数被用作位置参数,现在会引发 `TypeError` 。:issue:`15005` :pr:`20002` 由 `Joel Nothman`_ , `Adrin Jalali`_ , `Thomas Fan`_ , `Nicolas Hug`_ 和 `Tom Dupre la Tour`_ 贡献。更多详情请参见 `SLEP009 `_ 。 更改的模型 -------------- 以下估计器和函数,当使用相同的数据和参数拟合时,可能会产生与之前版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强),或随机抽样过程的变化。 - |Fix| :class:`manifold.TSNE` 现在在亲和矩阵计算过程中避免了数值下溢问题。 - |Fix| :class:`manifold.Isomap` 现在连接了断开的组件。 邻居图沿着一些最小距离对,而不是将所有无限距离更改为零。 - |Fix| :class:`tree.DecisionTreeClassifier` 和 :class:`tree.DecisionTreeRegressor` 的分裂准则可能会受到处理舍入误差的修复的影响。之前可能会出现一些额外的虚假分裂。 - |Fix| 使用 `stratify` 参数的 :func:`model_selection.train_test_split` 和 :class:`model_selection.StratifiedShuffleSplit` 可能会导致稍微不同的结果。 详细信息列在下面的变更日志中。 (虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。) 变更日志 --------- .. 条目应按模块(按字母顺序)分组,并以前缀之一标记:|MajorFeature|、|Feature|、|Efficiency|、|Enhancement|、|Fix| 或 |API|(参见 whats_new.rst 中的描述)。 条目应按这些标签排序(例如,|Fix| 在 |Efficiency| 之后)。 非特定于某个模块的更改应列在 *多个模块* 或 *杂项* 下。 条目应以以下内容结束: :pr:`123456` 作者::user:`Joe Bloggs ` 。 其中 123456 是 *拉取请求* 编号,而不是问题编号。 - |API| 通过 ``loss`` 和 ``criterion`` 参数使用平方误差的选项变得更加一致。首选方法是将其值设置为 `"squared_error"` 。旧的选项名称仍然有效,生成相同的模型,但已被弃用,并将在版本 1.2 中移除。 :pr:`19310` 作者::user:`Christian Lorentzen ` 。 - 对于 :class:`ensemble.ExtraTreesRegressor` , `criterion="mse"` 已被弃用,请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`ensemble.GradientBoostingRegressor` , `loss="ls"` 已被弃用,请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`ensemble.RandomForestRegressor` , `criterion="mse"` 已被弃用,请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`ensemble.HistGradientBoostingRegressor` , `loss="least_squares"` 已弃用,请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`linear_model.RANSACRegressor` , `loss="squared_loss"` 已弃用, 请改用 `"squared_error"` 。 - 对于 :class:`linear_model.SGDRegressor` , `loss="squared_loss"` 已弃用, 请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`tree.DecisionTreeRegressor` , `criterion="mse"` 已弃用, 请改用 `"squared_error"` ,这是现在的默认值。 - 对于 :class:`tree.ExtraTreeRegressor` , `criterion="mse"` 已弃用, 请改用 `"squared_error"` ,这是现在的默认值。 - |API| 通过 ``loss`` 和 ``criterion`` 参数使用绝对误差的选项变得更加一致。 首选方式是将值设置为 `"absolute_error"` 。旧的选项名称仍然有效,生成相同的模型, 但已弃用,并将在 1.2 版本中移除。 :pr:`19733` 由 :user:`Christian Lorentzen ` 提交。 - 对于 :class:`ensemble.ExtraTreesRegressor` , `criterion="mae"` 已弃用, 请改用 `"absolute_error"` 。 - 对于 :class:`ensemble.GradientBoostingRegressor` , `loss="lad"` 已弃用, 请改用 `"absolute_error"` 。 - 对于 :class:`ensemble.RandomForestRegressor` , `criterion="mae"` 已弃用, 请改用 `"absolute_error"` 。 - 对于 :class:`ensemble.HistGradientBoostingRegressor` , `loss="least_absolute_deviation"` 已弃用,请改用 `"absolute_error"` 。 - 对于 :class:`linear_model.RANSACRegressor` , `loss="absolute_loss"` 已弃用, 请改用 `"absolute_error"` ,这是现在的默认值。 - 对于 :class:`tree.DecisionTreeRegressor` , `criterion="mae"` 已弃用, 请改用 `"absolute_error"` 。 - 对于 :class:`tree.ExtraTreeRegressor` , `criterion="mae"` 已弃用, 请改用 `"absolute_error"` 。 - |API| `np.matrix` 的使用在 1.0 版本中已被弃用,并将在 1.2 版本中引发 `TypeError` 。:pr:`20165` 由 `Thomas Fan`_ 提交。 - |API| 已向转换器 API 添加了 :term:`get_feature_names_out` 以获取输出特征的名称。 `get_feature_names` 已被弃用。:pr:`18444` 由 `Thomas Fan`_ 提交。 - |API| 所有估计器在拟合 pandas DataFrame 时存储 `feature_names_in_` 。这些特征名称与非 `fit` 方法(例如 `transform` )中看到的名称进行比较,如果不一致将引发 `FutureWarning` 。这些 `FutureWarning` 将在 1.2 版本中变为 `ValueError` 。:pr:`18010` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.base` ................... - |Fix| :func:`config_context` 现在线程安全。:pr:`18736` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.calibration` .......................... - |Feature| 添加了 :func:`calibration.CalibrationDisplay` 以绘制校准曲线。:pr:`17443` 由 :user:`Lucy Liu ` 提交。 - |Fix| :class:`calibration.CalibratedClassifierCV` 的 `predict` 和 `predict_proba` 方法现在可以正确用于预拟合的管道。:pr:`19641` 由 :user:`Alek Lefebvre ` 提交。 - |Fix| 修复了在 :class:`calibration.CalibratedClassifierCV` 中使用 :class:`ensemble.VotingClassifier` 作为 `base_estimator` 时的错误。:pr:`20087` 由 :user:`Clément Fauchereau ` 提交。 :mod:`sklearn.cluster` ...................... - |Efficiency| :class:`cluster.KMeans` 和 :class:`cluster.MiniBatchKMeans` 的 `"k-means++"` 初始化现在更快,特别是在多核设置中。:pr:`19002` 由 :user:`Jon Crall ` 和 :user:`Jérémie du Boisberranger ` 提交。 - |Efficiency| 使用 `algorithm='elkan'` 的 :class:`cluster.KMeans` 在多核设置中现在更快。:pr:`19052` 由 :user:`Yusuke Nagasaka ` 提交。 - |Efficiency| :class:`cluster.MiniBatchKMeans` 在多核设置中现在更快。:pr:`17622` 由 :user:`Jérémie du Boisberranger ` 提交。 - |Efficiency| :class:`cluster.OPTICS` 现在可以使用 `memory` 参数缓存树的计算输出。:pr:`19024` 由 :user:`Frankie Robertson ` 贡献。 - |Enhancement| :class:`cluster.AffinityPropagation` 的 `predict` 和 `fit_predict` 方法现在接受稀疏数据类型的输入数据。:pr:`20117` 由 :user:`Venkatachalam Natchiappan ` 贡献。 - |Fix| 修复了 :class:`cluster.MiniBatchKMeans` 中的一个错误,当输入为稀疏时,样本权重被部分忽略。:pr:`17622` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |Fix| 改进了 :class:`cluster.MiniBatchKMeans` 中基于中心变化的收敛检测,该检测几乎从未实现。:pr:`17622` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |Fix| :class:`cluster.AgglomerativeClustering` 现在支持只读内存映射数据集。:pr:`19883` 由 :user:`Julien Jerphanion ` 贡献。 - |Fix| :class:`cluster.AgglomerativeClustering` 在连接性和亲和性都预计算且连接组件数量大于1时,正确连接组件。:pr:`20597` 由 `Thomas Fan`_ 贡献。 - |Fix| :class:`cluster.FeatureAgglomeration` 不再接受 ``fit`` 函数中的 ``**params`` 关键字参数,从而产生更简洁的错误消息。:pr:`20899` 由 :user:`Adam Li ` 贡献。 - |Fix| 修复了 :class:`cluster.KMeans` 中的一个错误,确保稀疏和密集输入之间的可重复性和等价性。:pr:`20200` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |API| :class:`cluster.Birch` 属性 `fit_` 和 `partial_fit_` 已弃用,将在1.2版本中移除。:pr:`19297` 由 `Thomas Fan`_ 贡献。 - |API| :class:`cluster.MiniBatchKMeans` 的 `batch_size` 参数默认值从100改为1024,出于效率原因。:class:`cluster.MiniBatchKMeans` 的 `n_iter_` 属性现在报告已开始的迭代次数。 `n_steps_` 属性报告已处理的小批量数量。 :pr:`17622` 由 :user:`Jérémie du Boisberranger ` 提供。 - |API| :func:`cluster.spectral_clustering` 在传递 `np.matrix` 时引发改进的错误。 :pr:`20560` 由 `Thomas Fan`_ 提供。 :mod:`sklearn.compose` ...................... - |Enhancement| :class:`compose.ColumnTransformer` 现在记录每个转换器的输出在 `output_indices_` 中。 :pr:`18393` 由 :user:`Luca Bittarello ` 提供。 - |Enhancement| :class:`compose.ColumnTransformer` 现在允许 DataFrame 输入在 `transform` 中以改变的顺序出现列。此外,在转换中被删除的列将不再需要,如果 `remainder='drop'` ,额外的列将被忽略。 :pr:`19263` 由 `Thomas Fan`_ 提供。 - |Enhancement| 在 :meth:`compose.TransformedTargetRegressor.predict` 中添加 `**predict_params` 关键字参数,传递关键字参数给回归器。 :pr:`19244` 由 :user:`Ricardo ` 提供。 - |FIX| `compose.ColumnTransformer.get_feature_names` 支持由其任何转换器返回的非字符串特征名称。然而,请注意 ``get_feature_names`` 已被弃用,请改用 ``get_feature_names_out`` 。 :pr:`18459` 由 :user:`Albert Villanova del Moral ` 和 :user:`Alonso Silva Allende ` 提供。 - |Fix| :class:`compose.TransformedTargetRegressor` 现在支持具有适当转换器的 nD 目标。 :pr:`18898` 由 :user:`Oras Phongpanagnam ` 提供。 - |API| 在 :class:`compose.ColumnTransformer` 中添加 `verbose_feature_names_out` 。此标志控制 :term:`get_feature_names_out` 中的特征名称前缀。 :pr:`18444` 和 :pr:`21080` 由 `Thomas Fan`_ 提供。 :mod:`sklearn.covariance` ......................... - |Fix| 在 :func:`covariance.ledoit_wolf` 和 :func:`covariance.ledoit_wolf_shrinkage` 中添加数组检查。 :pr:`20416` 由 :user:`Hugo Defois ` 提供。 - |API| 弃用了 `cv_results_` 中的以下键: `'mean_score'` 、 `'std_score'` 和 `'split(k)_score'` ,改为使用 `'mean_test_score'` 、 `'std_test_score'` 和 `'split(k)_test_score'` 。:pr:`20583` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.datasets` ....................... - |Enhancement| :func:`datasets.fetch_openml` 现在支持在返回 pandas DataFrame 时处理缺失值的类别。:pr:`19365` 由 `Thomas Fan`_ 、:user:`Amanda Dsouza ` 和 :user:`EL-ATEIF Sara ` 提交。 - |Enhancement| :func:`datasets.fetch_kddcup99` 在缓存文件无效时提供更好的错误信息。:pr:`19669` 由 `Thomas Fan`_ 提交。 - |Enhancement| 使用 ``importlib.resources`` 替换与资源文件 I/O 相关的 ``__file__`` 用法,以避免假设这些资源文件(例如 ``iris.csv`` )已经存在于文件系统中,并由此实现与 ``PyOxidizer`` 等工具的兼容性。:pr:`20297` 由 :user:`Jack Liu ` 提交。 - |Fix| 缩短 openml 测试中的数据文件名,以更好地支持在 Windows 上安装,并适应其默认的 260 字符文件名限制。:pr:`20209` 由 `Thomas Fan`_ 提交。 - |Fix| :func:`datasets.fetch_kddcup99` 在 `return_X_y=True` 和 `as_frame=True` 时返回 DataFrame。:pr:`19011` 由 `Thomas Fan`_ 提交。 - |API| 在 1.0 版本中弃用 `datasets.load_boston` ,并将在 1.2 版本中移除。提供了加载类似数据集的替代代码片段。详情请参阅函数的文档字符串。:pr:`20729` 由 `Guillaume Lemaitre`_ 提交。 :mod:`sklearn.decomposition` ............................ - |Enhancement| 为 :class:`decomposition.KernelPCA` 添加了一个新的近似求解器(随机 SVD,可通过 `eigen_solver='randomized'` 使用)。当样本数量远大于所需组件数量时,这显著加速了计算。:pr:`12069` 由 :user:`Sylvain Marié ` 提交。 - |Fix| 修复了在聚类布尔数据时出现的不正确的多数据转换警告。:pr:`19046` 由 :user:`Surya Prakash ` 贡献。 - |Fix| 修复了 :func:`decomposition.dict_learning` ,该函数被 :class:`decomposition.DictionaryLearning` 使用,以确保输出的确定性。通过翻转用于初始化代码的 SVD 输出的符号来实现。:pr:`18433` 由 :user:`Bruno Charron ` 贡献。 - |Fix| 修复了 :class:`decomposition.MiniBatchDictionaryLearning` 、:class:`decomposition.MiniBatchSparsePCA` 和 :func:`decomposition.dict_learning_online` 中的一个错误,其中字典的更新不正确。:pr:`19198` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |Fix| 修复了 :class:`decomposition.DictionaryLearning` 、:class:`decomposition.SparsePCA` 、:class:`decomposition.MiniBatchDictionaryLearning` 、:class:`decomposition.MiniBatchSparsePCA` 、:func:`decomposition.dict_learning` 和 :func:`decomposition.dict_learning_online` 中的一个错误,其中在字典更新期间未使用的原子的重新启动未按预期工作。:pr:`19198` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |API| 在 :class:`decomposition.DictionaryLearning` 、:class:`decomposition.MiniBatchDictionaryLearning` 、:func:`decomposition.dict_learning` 和 :func:`decomposition.dict_learning_online` 中,从版本 1.2 开始, `transform_alpha` 将默认等于 `alpha` 而不是 1.0。:pr:`19159` 由 :user:`Benoît Malézieux ` 贡献。 - |API| 重命名 :class:`decomposition.KernelPCA` 中的变量名以提高可读性。 `lambdas_` 和 `alphas_` 分别重命名为 `eigenvalues_` 和 `eigenvectors_` 。 `lambdas_` 和 `alphas_` 已弃用,将在 1.2 版本中移除。:pr:`19908` 由 :user:`Kei Ishikawa ` 贡献。 - |API| :class:`decomposition.NMF` 和 :func:`decomposition.non_negative_factorization` 的 `alpha` 和 `regularization` 参数已弃用,并将在未来版本中移除。 在1.2版本中,请使用新的参数 `alpha_W` 和 `alpha_H` 代替。:pr:`20512` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.dummy` .................... - |API| :class:`dummy.DummyRegressor` 和 :class:`dummy.DummyRegressor` 中的属性 `n_features_in_` 已弃用,并将在1.2版本中移除。 :pr:`20960` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.ensemble` ....................... - |Enhancement| :class:`~sklearn.ensemble.HistGradientBoostingClassifier` 和 :class:`~sklearn.ensemble.HistGradientBoostingRegressor` 在决定OpenMP使用的线程数时会考虑cgroups配额。 这避免了在使用这些类时,例如在docker容器中,因过度订阅导致的性能问题。:pr:`20477` 由 `Thomas Fan`_ 提交。 - |Enhancement| :class:`~sklearn.ensemble.HistGradientBoostingClassifier` 和 :class:`~sklearn.ensemble.HistGradientBoostingRegressor` 不再处于实验阶段。 它们现在被认为是稳定的,并且与其他所有估计器一样,遵循相同的弃用周期。:pr:`19799` 由 `Nicolas Hug`_ 提交。 - |Enhancement| 改进了 :class:`ensemble.StackingClassifier` 和 :class:`ensemble.StackingRegressor` 的HTML渲染。 :pr:`19564` 由 `Thomas Fan`_ 提交。 - |Enhancement| 在 :class:`ensemble.RandomForestRegressor` 中添加了泊松准则。:pr:`19836` 由 :user:`Brian Sun ` 提交。 - |Fix| 不允许在 :class:`ensemble.RandomForestClassifier` 和 :class:`ensemble.ExtraTreesClassifier` 中计算袋外(OOB)分数,因为scikit-learn不支持这种类型的目标的任何度量。 进行了额外的私有重构。:pr:`19162` 由 :user:`Guillaume Lemaitre ` 提交。 - |Fix| 改进了 :class:`ensemble.AdaBoostClassifier` 和 :class:`ensemble.AdaBoostRegressor` 中权重提升的数值精度,以避免下溢。 :pr:`10096` 由 :user:`Fenil Suchak ` 提交。 - |Fix| 修复了 :class:`ensemble.RandomForestClassifier` 和 :class:`ensemble.RandomForestRegressor` 中参数 ``max_samples`` 的范围为 ``(0.0, 1.0]`` , 其中 `max_samples=1.0` 被解释为使用所有 `n_samples` 进行自助采样。:pr:`20159` 由 :user:`murata-yu` 提交。 - |Fix| 修复了 :class:`ensemble.AdaBoostClassifier` 和 :class:`ensemble.AdaBoostRegressor` 中的一个错误,其中 `sample_weight` 参数在 `fit` 过程中被覆盖。 :pr:`20534` 由 :user:`Guillaume Lemaitre ` 提交。 - |API| 移除了 :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 中的 `tol=None` 选项。请使用 `tol=0` 以获得相同的行为。 :pr:`19296` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.feature_extraction` ................................. - |Fix| 修复了 :class:`feature_extraction.text.HashingVectorizer` 中的一个错误, 其中某些输入字符串会导致转换后的数据中出现负索引。:pr:`19035` 由 :user:`Liu Yu ` 提交。 - |Fix| 修复了 :class:`feature_extraction.DictVectorizer` 中的一个错误,通过引发不支持的值类型的错误。 :pr:`19520` 由 :user:`Jeff Zhao ` 提交。 - |Fix| 修复了 :func:`feature_extraction.image.img_to_graph` 和 :func:`feature_extraction.image.grid_to_graph` 中的一个错误,其中单例连接组件未被正确处理,导致顶点索引错误。 :pr:`18964` 由 `Bertrand Thirion`_ 提交。 - |Fix| 在 :class:`feature_extraction.text.CountVectorizer` 中,当 `lowercase=True` 且词汇表条目包含大写字符时, 引发警告以避免在生成的特征向量中出现静默遗漏。:pr:`19401` 由 :user:`Zito Relova ` 提交。 :mod:`sklearn.feature_selection` ................................ - |Feature| :func:`feature_selection.r_regression` 计算特征与目标之间的皮尔逊相关系数 R。 :pr:`17169` 由 :user:`Dmytro Lituiev ` 提交。 和 :user:`Julien Jerphanion ` 。 - |Enhancement| :func:`feature_selection.RFE.fit` 接受额外的估计器参数,这些参数直接传递给估计器的 `fit` 方法。 :pr:`20380` 由 :user:`Iván Pulido ` 、:user:`Felipe Bidu ` 、 :user:`Gil Rutter ` 和 :user:`Adrin Jalali ` 贡献。 - |Fix| 修复了 :func:`isotonic.isotonic_regression` 中的一个错误,其中用户传递的 `sample_weight` 在 `fit` 过程中被覆盖。 :pr:`20515` 由 :user:`Carsten Allefeld ` 贡献。 - |Fix| 修改 :func:`feature_selection.SequentialFeatureSelector` 以允许无监督建模,使得 `fit` 签名不需要进行任何 `y` 验证,并允许 `y=None` 。 :pr:`19568` 由 :user:`Shyam Desai ` 贡献。 - |API| 当方差阈值为负时,在 :class:`feature_selection.VarianceThreshold` 中引发错误。 :pr:`20207` 由 :user:`Tomohiro Endo ` 贡献。 - |API| 弃用 `grid_scores_` ,转而使用 `cv_results_` 中的分割分数,在 :class:`feature_selection.RFECV` 中。 `grid_scores_` 将在版本 1.2 中移除。 :pr:`20161` 由 :user:`Shuhei Kayawari ` 和 :user:`arka204` 贡献。 :mod:`sklearn.inspection` ......................... - |Enhancement| 在 :func:`inspection.permutation_importance` 中添加 `max_samples` 参数。它允许抽取样本子集来计算排列重要性。这对于在大数据集上评估特征重要性时保持方法的可行性很有用。 :pr:`20431` 由 :user:`Oliver Pfaffel ` 贡献。 - |Enhancement| 在部分依赖图 `inspection.plot_partial_dependence` 和 :meth:`inspection.PartialDependenceDisplay.plot` 中添加 kwargs 以分别格式化 ICE 和 PD 线。:pr:`19428` 由 :user:`Mehdi Hamoumi ` 贡献。 - |Fix| 允许向 :func:`inspection.permutation_importance` 输入多个评分器。:pr:`19411` 由 :user:`Simona Maggio ` 贡献。 - |API| :class:`inspection.PartialDependenceDisplay` 暴露了一个类方法: :func:`~inspection.PartialDependenceDisplay.from_estimator` 。 `inspection.plot_partial_dependence` 已被弃用,取而代之的是该类方法,并将在 1.2 版本中移除。:pr:`20959` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.kernel_approximation` ................................... - |Fix| 修复了 :class:`kernel_approximation.Nystroem` 中的一个错误, 其中属性 `component_indices_` 与用于生成近似核的样本索引子集不对应。:pr:`20554` 由 :user:`Xiangyin Kong ` 提交。 :mod:`sklearn.linear_model` ........................... - |MajorFeature| 新增了 :class:`linear_model.QuantileRegressor` ,实现了带有 L1 惩罚的线性分位数回归。 :pr:`9978` 由 :user:`David Dale ` 和 :user:`Christian Lorentzen ` 提交。 - |Feature| 新的 :class:`linear_model.SGDOneClassSVM` 提供了线性 One-Class SVM 的 SGD 实现。结合核近似技术,该实现近似于核化 One Class SVM 的解,同时受益于样本数量的线性复杂度。 :pr:`10027` 由 :user:`Albert Thomas ` 提交。 - |Feature| 为 :class:`linear_model.LassoCV` 和 :class:`linear_model.ElasticNetCV` 添加了 `sample_weight` 参数。 :pr:`16449` 由 :user:`Christian Lorentzen ` 提交。 - |Feature| 新增了新的求解器 `lbfgs` (可通过 `solver="lbfgs"` 使用)和 `positive` 参数到 :class:`linear_model.Ridge` 。当 `positive` 设置为 `True` 时,强制系数为正(仅支持 `lbfgs` )。:pr:`20231` 由 :user:`Toshihiro Nakae ` 提交。 - |Efficiency| 对使用 `solver='newton-cg'` 和 `multi_class!='multinomial'` 时的密集矩阵进行了 :class:`linear_model.LogisticRegression` 实现的优化。 :pr:`19571` 由 :user:`Julien Jerphanion ` 提交。 - |Enhancement| `fit` 方法在 :class:`linear_model.Lars` 、:class:`linear_model.LassoLars` 、 :class:`linear_model.LarsCV` 和 :class:`linear_model.LassoLarsCV` 中保留了 numpy.float32 的 dtype。 :pr:`20155` 由 :user:`Takeshi Oura ` 贡献。 - |Enhancement| 验证通过 `precompute` 参数传递给线性模型的用户提供的 gram 矩阵。 :pr:`19004` 由 :user:`Adam Midvidy ` 贡献。 - |Fix| :meth:`linear_model.ElasticNet.fit` 不再就地修改 `sample_weight` 。 :pr:`19055` 由 `Thomas Fan`_ 贡献。 - |Fix| :class:`linear_model.Lasso` 和 :class:`linear_model.ElasticNet` 不再具有与其目标不对应的 `dual_gap_` 。 :pr:`19172` 由 :user:`Mathurin Massias ` 贡献。 - |Fix| 当 `normalize=True` 时,线性模型中的 `sample_weight` 现在完全考虑了特征中心化和特征缩放。 :pr:`19426` 由 :user:`Alexandre Gramfort ` 和 :user:`Maria Telenczuk ` 贡献。 - |Fix| 对于 :class:`linear_model.RANSACRegressor` ,残差等于 ``residual_threshold`` 的点现在被视为内点。 这允许在 `residual_threshold=0` 时对某些数据集完美拟合模型。 :pr:`19499` 由 :user:`Gregory Strubel ` 贡献。 - |Fix| :class:`linear_model.Ridge` 的样本权重不变性在 :pr:`19616` 中由 :user:`Oliver Grisel ` 和 :user:`Christian Lorentzen ` 修复。 - |Fix| :func:`linear_model.enet_path` 和 :func:`linear_model.lasso_path` 中的字典 `params` 应仅包含坐标下降求解器的参数。 否则,将引发错误。 :pr:`19391` 由 :user:`Shao Yang Hong ` 贡献。 - |API| 在 :class:`linear_model.RANSACRegressor` 中引发警告,从版本 1.2 开始,对于除 :class:`linear_model.LinearRegression` 之外的模型,需要显式设置 `min_samples` 。 :pr:`19390` 由 :user:`Shao Yang Hong ` 贡献。 - |API|: :class:`linear_model.LinearRegression` 的参数 ``normalize`` 已被弃用,并将在 1.2 版本中移除。弃用此参数的原因是:当 ``fit_intercept`` 设置为 False 时, ``normalize`` 参数没有任何效果,因此被认为容易引起混淆。已弃用的 ``LinearModel(normalize=True)`` 的行为可以通过使用 :class:`~sklearn.pipeline.Pipeline` 和 ``LinearModel`` (其中 ``LinearModel`` 可以是 :class:`~linear_model.LinearRegression` 、:class:`~linear_model.Ridge` 、:class:`~linear_model.RidgeClassifier` 、:class:`~linear_model.RidgeCV` 或 :class:`~linear_model.RidgeClassifierCV` )来重现,如下所示: ``make_pipeline(StandardScaler(with_mean=False), LinearModel())`` 。:class:`~linear_model.LinearRegression` 中的 ``normalize`` 参数在 :pr:`17743` 中被 :user:`Maria Telenczuk ` 和 :user:`Alexandre Gramfort ` 弃用。同样,:class:`~linear_model.Ridge` 、:class:`~linear_model.RidgeClassifier` 、:class:`~linear_model.RidgeCV` 和 :class:`~linear_model.RidgeClassifierCV` 中的 ``normalize`` 参数在 :pr:`17772` 中被 :user:`Maria Telenczuk ` 和 :user:`Alexandre Gramfort ` 弃用。同样,:class:`~linear_model.BayesianRidge` 和 :class:`~linear_model.ARDRegression` 中的 ``normalize`` 参数在 :pr:`17746` 中被 :user:`Maria Telenczuk ` 弃用。同样,:class:`~linear_model.Lasso` 、:class:`~linear_model.LassoCV` 、:class:`~linear_model.ElasticNet` 、:class:`~linear_model.ElasticNetCV` 、:class:`~linear_model.MultiTaskLasso` 、:class:`~linear_model.MultiTaskLassoCV` 、:class:`~linear_model.MultiTaskElasticNet` 和 :class:`~linear_model.MultiTaskElasticNetCV` 中的 ``normalize`` 参数在 :pr:`17785` 中被 :user:`Maria Telenczuk ` 和 :user:`Alexandre Gramfort ` 弃用。 - |API| :class:`~linear_model.OrthogonalMatchingPursuit` 和 :class:`~linear_model.OrthogonalMatchingPursuitCV` 的 ``normalize`` 参数在 1.2 版本中将默认为 False,并将在 1.4 版本中移除。此更改在 :pr:`17750` 中由 :user:`Maria Telenczuk ` 提出。 - `` 和 :user:`Alexandre Gramfort ` 。同样适用于 :class:`~linear_model.Lars` :class:`~linear_model.LarsCV` :class:`~linear_model.LassoLars` :class:`~linear_model.LassoLarsCV` :class:`~linear_model.LassoLarsIC` ,在 :pr:`17769` 中由 :user:`Maria Telenczuk ` 和 :user:`Alexandre Gramfort ` 完成。 - |API| 关键字验证已从 `__init__` 和 `set_params` 移动到 `fit` 对于以下符合 scikit-learn 约定的估计器: :class:`~linear_model.SGDClassifier` , :class:`~linear_model.SGDRegressor` , :class:`~linear_model.SGDOneClassSVM` , :class:`~linear_model.PassiveAggressiveClassifier` ,以及 :class:`~linear_model.PassiveAggressiveRegressor` 。 :pr:`20683` 由 `Guillaume Lemaitre`_ 完成。 :mod:`sklearn.manifold` ....................... - |Enhancement| 在 :class:`manifold.TSNE` 中实现 `'auto'` 启发式学习率。它将在 1.2 版本中成为默认设置。默认初始化将在 1.2 版本中更改为 `pca` 。PCA 初始化将在 1.2 版本中缩放为标准差 1e-4。 :pr:`19491` 由 :user:`Dmitry Kobak ` 完成。 - |Fix| 更改数值精度以防止在 :class:`manifold.TSNE` 的亲和矩阵计算过程中出现下溢问题。 :pr:`19472` 由 :user:`Dmitry Kobak ` 完成。 - |Fix| :class:`manifold.Isomap` 现在使用 `scipy.sparse.csgraph.shortest_path` 来计算图的最短路径。它还连接邻居图的一些最小距离对,而不是将每个无限距离更改为零。 :pr:`20531` 由 `Roman Yurchak`_ 和 `Tom Dupre la Tour`_ 完成。 - |Fix| 在 :func:`manifold.spectral_embedding` 中降低 lobpcg 调用的数值默认容差,以防止数值不稳定性。 :pr:`21194` 由 :user:`Andrew Knyazev ` 完成。 :mod:`sklearn.metrics` ...................... - |Feature| :func:`metrics.mean_pinball_loss` 暴露了 pinball 损失, 分位数回归。:pr:`19415` 由 :user:`Xavier Dupré ` 和 :user:`Oliver Grisel ` 贡献。 - |Feature| :func:`metrics.d2_tweedie_score` 计算带有参数 ``power`` 的 Tweedie 偏差的 D^2 回归得分。这是 `r2_score` 的泛化,可以解释为 Tweedie 偏差解释的百分比。 :pr:`17036` 由 :user:`Christian Lorentzen ` 贡献。 - |Feature| :func:`metrics.mean_squared_log_error` 现在支持 `squared=False` 。 :pr:`20326` 由 :user:`Uttam kumar ` 贡献。 - |Efficiency| 当标签为整数时,提高了 :func:`metrics.confusion_matrix` 的速度。 :pr:`9843` 由 :user:`Jon Crall ` 贡献。 - |Enhancement| 修复了在 :func:`metrics.hinge_loss` 中当 ``pred_decision`` 为 1 维而它是一个多类分类时或当 ``pred_decision`` 参数与 ``labels`` 参数不一致时引发错误的修复。 :pr:`19643` 由 :user:`Pierre Attard ` 贡献。 - |Fix| :meth:`metrics.ConfusionMatrixDisplay.plot` 使用正确的颜色映射最大值。 :pr:`19784` 由 `Thomas Fan`_ 贡献。 - |Fix| 具有零 `sample_weight` 值的样本不会影响 :func:`metrics.det_curve` 、:func:`metrics.precision_recall_curve` 和 :func:`metrics.roc_curve` 的结果。 :pr:`18328` 由 :user:`Albert Villanova del Moral ` 和 :user:`Alonso Silva Allende ` 贡献。 - |Fix| 在 :func:`metrics.adjusted_rand_score` 中避免大量数据时的溢出。 :pr:`20312` 由 :user:`Divyanshu Deoli ` 贡献。 - |API| :class:`metrics.ConfusionMatrixDisplay` 暴露了两个类方法 :func:`~metrics.ConfusionMatrixDisplay.from_estimator` 和 :func:`~metrics.ConfusionMatrixDisplay.from_predictions` ,允许使用估计器或预测来创建混淆矩阵图。 `metrics.plot_confusion_matrix` 已被弃用,取而代之的是这两个类方法,并将在 1.2 版本中移除。 :pr:`18543` 由 `Guillaume Lemaitre`_ 提交。 - |API| :class:`metrics.PrecisionRecallDisplay` 暴露了两个类方法 :func:`~metrics.PrecisionRecallDisplay.from_estimator` 和 :func:`~metrics.PrecisionRecallDisplay.from_predictions` ,允许使用估计器或预测结果创建精确召回曲线。 `metrics.plot_precision_recall_curve` 已被弃用,取而代之的是这两个类方法,并将在 1.2 版本中移除。 :pr:`20552` 由 `Guillaume Lemaitre`_ 提交。 - |API| :class:`metrics.DetCurveDisplay` 暴露了两个类方法 :func:`~metrics.DetCurveDisplay.from_estimator` 和 :func:`~metrics.DetCurveDisplay.from_predictions` ,允许使用估计器或预测结果创建混淆矩阵图。 `metrics.plot_det_curve` 已被弃用,取而代之的是这两个类方法,并将在 1.2 版本中移除。 :pr:`19278` 由 `Guillaume Lemaitre`_ 提交。 :mod:`sklearn.mixture` ...................... - |Fix| 确保在 :class:`mixture.GaussianMixture` 和 :class:`mixture.BayesianGaussianMixture` 出现分歧的情况下,最佳参数被适当地设置。 :pr:`20030` 由 :user:`Tingshan Liu ` 和 :user:`Benjamin Pedigo ` 提交。 :mod:`sklearn.model_selection` .............................. - |Feature| 添加了 :class:`model_selection.StratifiedGroupKFold` ,它结合了 :class:`model_selection.StratifiedKFold` 和 :class:`model_selection.GroupKFold` ,提供了一种在保持每个分割中类别分布的同时,将每个组保持在单个分割内的能力。 :pr:`18649` 由 :user:`Leandro Hermida ` 和 :user:`Rodion Martynov ` 提交。 - |Enhancement| 在交叉验证中,每个分割的拟合失败仅在主进程中警告一次。 :pr:`20619` 由 :user:`Loïc Estève ` 提交。 - |Enhancement| `model_selection.BaseShuffleSplit` 基类现在已公开。 :pr:`20056` 由 :user:`pabloduque0` 提交。 - |Fix| 避免在 :func:`model_selection.train_test_split` 中过早溢出。 :pr:`20904` 由 :user:`Tomasz Jakubek ` 贡献。 :mod:`sklearn.naive_bayes` .......................... - |Fix| 离散朴素贝叶斯分类器的 `fit` 和 `partial_fit` 方法(:class:`naive_bayes.BernoulliNB` 、 :class:`naive_bayes.CategoricalNB` 、:class:`naive_bayes.ComplementNB` 和 :class:`naive_bayes.MultinomialNB` )现在正确处理训练集中只有一个类别的退化情况。 :pr:`18925` 由 :user:`David Poznik ` 贡献。 - |API| :class:`naive_bayes.GaussianNB` 中的属性 ``sigma_`` 现已弃用,并将在 1.2 版本中移除。 请改用 ``var_`` 。 :pr:`18842` 由 :user:`Hong Shao Yang ` 贡献。 :mod:`sklearn.neighbors` ........................ - |Enhancement| :class:`neighbors.KDTree` 和 :class:`neighbors.BallTree` 的创建已改进, 其最坏情况时间复杂度从 :math:`\mathcal{O}(n^2)` 提升至 :math:`\mathcal{O}(n)` 。 :pr:`19473` 由 :user:`jiefangxuanyan ` 和 :user:`Julien Jerphanion ` 贡献。 - |Fix| `neighbors.DistanceMetric` 子类现在支持只读内存映射数据集。 :pr:`19883` 由 :user:`Julien Jerphanion ` 贡献。 - |Fix| :class:`neighbors.NearestNeighbors` 、:class:`neighbors.KNeighborsClassifier` 、 :class:`neighbors.RadiusNeighborsClassifier` 、:class:`neighbors.KNeighborsRegressor` 和 :class:`neighbors.RadiusNeighborsRegressor` 在 `__init__` 中不再验证 `weights` ,而是在 `fit` 中验证。 :pr:`20072` 由 :user:`Juan Carlos Alfaro Jiménez ` 贡献。 - |API| :class:`neighbors.RadiusNeighborsClassifier` 的参数 `kwargs` 已弃用,并将在 1.2 版本中移除。 :pr:`20842` 由 :user:`Juan Martín Loyola ` 贡献。 :mod:`sklearn.neural_network` ............................. - |Fix| :class:`neural_network.MLPClassifier` 和 :class:`neural_network.MLPRegressor` 现在正确支持从 pickle 文件加载后的继续训练。:pr:`19631` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.pipeline` ....................... - |API| :class:`pipeline.Pipeline` 的 `predict_proba` 和 `predict_log_proba` 方法现在支持将预测 kwargs 传递给最终估计器。:pr:`19790` 由 :user:`Christopher Flynn ` 贡献。 :mod:`sklearn.preprocessing` ............................ - |Feature| 新的 :class:`preprocessing.SplineTransformer` 是一个用于生成 B-样条的特征预处理工具,参数化由样条的 ``degree`` 多项式、结点数量 ``n_knots`` 和结点定位策略 ``knots`` 决定。:pr:`18368` 由 :user:`Christian Lorentzen ` 贡献。:class:`preprocessing.SplineTransformer` 还通过 ``extrapolation`` 参数支持周期样条。:pr:`19483` 由 :user:`Malte Londschien ` 贡献。:class:`preprocessing.SplineTransformer` 支持结点定位策略 ``"quantile"`` 的样本权重。:pr:`20526` 由 :user:`Malte Londschien ` 贡献。 - |Feature| :class:`preprocessing.OrdinalEncoder` 默认支持传递缺失值。:pr:`19069` 由 `Thomas Fan`_ 贡献。 - |Feature| :class:`preprocessing.OneHotEncoder` 现在支持 `handle_unknown='ignore'` 和删除类别。:pr:`19041` 由 `Thomas Fan`_ 贡献。 - |Feature| :class:`preprocessing.PolynomialFeatures` 现在支持传递一个元组给 `degree` ,即 `degree=(min_degree, max_degree)` 。:pr:`20250` 由 :user:`Christian Lorentzen ` 贡献。 - |Efficiency| :class:`preprocessing.StandardScaler` 更快且更节省内存。:pr:`20652` 由 `Thomas Fan`_ 贡献。 - |Efficiency| 在 :class:`preprocessing.KBinsDiscretizer` 中,:class:`cluster.KMeans` 的 ``algorithm`` 参数从 ``auto`` 改为 ``full`` 。:pr:`19934` 由 :user:`Gleb Levitskiy ` 贡献。 - |Efficiency| `fit` 方法的实现 :class:`preprocessing.PolynomialFeatures` 转换器现在更快了。这在大型稀疏输入上尤为明显。:pr:`19734` 由 :user:`Fred Robinson ` 贡献。 - |Fix| :func:`preprocessing.StandardScaler.inverse_transform` 方法现在在输入数据为1D时会引发错误。:pr:`19752` 由 :user:`Zhehao Liu ` 贡献。 - |Fix| :func:`preprocessing.scale` 、:class:`preprocessing.StandardScaler` 以及类似的缩放器会检测接近常量的特征,以避免将其缩放到非常大的值。这个问题尤其在使用带有样本权重的稀疏数据和常量列的缩放器时发生,在这种情况下通常会禁用中心化。:pr:`19527` 由 :user:`Oliver Grisel ` 和 :user:`Maria Telenczuk ` 贡献,以及 :pr:`19788` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |Fix| :meth:`preprocessing.StandardScaler.inverse_transform` 现在正确处理整数类型。:pr:`19356` 由 :user:`makoeppel` 贡献。 - |Fix| :meth:`preprocessing.OrdinalEncoder.inverse_transform` 不支持稀疏矩阵,并会引发适当的错误消息。:pr:`19879` 由 :user:`Guillaume Lemaitre ` 贡献。 - |Fix| :class:`preprocessing.OrdinalEncoder` 的 `fit` 方法在 `handle_unknown='ignore'` 且给定未知类别时不会引发错误。:pr:`19906` 由 :user:`Zhehao Liu ` 贡献。 - |Fix| 修复了 :class:`preprocessing.OrdinalEncoder` 中的一个回归问题,其中大型 Python 数值在转换为 C 类型( `np.float64` 或 `np.int64` )时会因溢出而引发错误。:pr:`20727` 由 `Guillaume Lemaitre`_ 贡献。 - |Fix| :class:`preprocessing.FunctionTransformer` 不会根据 `inverse_transform` 的输入设置 `n_features_in_` 。:pr:`20961` 由 `Thomas Fan`_ 贡献。 - |API| :class:`preprocessing.PolynomialFeatures` 的 `n_input_features_` 属性已被弃用,取而代之的是 `n_features_in_` ,并将在 1.2 版本中移除。:pr:`20240` 由 :user:`Jérémie du Boisberranger ` 贡献。 :mod:`sklearn.svm` ................... - |API| :func:`svm.OneClassSVM.fit` 的参数 `**params` 已弃用,并将在 1.2 版本中移除。 :pr:`20843` 由 :user:`Juan Martín Loyola ` 提交。 :mod:`sklearn.tree` ................... - |Enhancement| 在 :func:`tree.export_graphviz` 中添加 `fontname` 参数,以支持非英文字符。 :pr:`18959` 由 :user:`Zero ` 和 :user:`wstates ` 提交。 - |Fix| 改进了 :func:`tree.plot_tree` 与高DPI屏幕的兼容性。 :pr:`20023` 由 `Thomas Fan`_ 提交。 - |Fix| 修复了 :class:`tree.DecisionTreeClassifier` 和 :class:`tree.DecisionTreeRegressor` 中的一个错误, 该错误可能导致节点被错误地分割,原因是处理舍入误差不当。 :pr:`19336` 由 :user:`Jérémie du Boisberranger ` 提交。 - |API| :class:`tree.DecisionTreeClassifier` 、:class:`tree.DecisionTreeRegressor` 、 :class:`tree.ExtraTreeClassifier` 和 :class:`tree.ExtraTreeRegressor` 的 `n_features_` 属性已弃用, 改为使用 `n_features_in_` ,并将在 1.2 版本中移除。 :pr:`20272` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.utils` .................... - |Enhancement| 在 :func:`~sklearn.utils.extmath.randomized_svd` 中弃用了 `random_state=0` 的默认值。 从 1.2 版本开始, `random_state` 的默认值将设置为 `None` 。 :pr:`19459` 由 :user:`Cindy Bezuidenhout ` 和 :user:`Clifford Akai-Nettey` 提交。 - |Enhancement| 添加了辅助装饰器 :func:`utils.metaestimators.available_if` , 以提供在元估计器中根据状态灵活地使方法可用或不可用的方式,使其更易读。 :pr:`19948` 由 `Joel Nothman`_ 提交。 - |Enhancement| :func:`utils.validation.check_is_fitted` 现在优先使用 ``__sklearn_is_fitted__`` (如果可用), 而不是检查以下划线结尾的属性。这也使得 :class:`pipeline.Pipeline` 和 :class:`preprocessing.FunctionTransformer` pass ``check_is_fitted(estimator)`` . :pr:`20657` by `Adrin Jalali`_ . - |Fix| 修复了 :func:`utils.sparsefuncs.mean_variance_axis` 中的一个错误,当实际方差恰好为零时,计算出的方差精度非常差。:pr:`19766` by :user:`Jérémie du Boisberranger ` . - |Fix| 现在,使用 :func:`utils.deprecated` 装饰的属性的文档字符串已正确包装。:pr:`20385` by `Thomas Fan`_ . - |Fix| `utils.stats._weighted_percentile` 现在正确忽略了权重为零且小于具有正权重的最小观测值的观测值,适用于 ``percentile=0`` 。受影响的类包括 :class:`dummy.DummyRegressor` 对于 ``quantile=0`` 以及 `ensemble.HuberLossFunction` 和 `ensemble.HuberLossFunction` 对于 ``alpha=0`` 。:pr:`20528` by :user:`Malte Londschien ` . - |Fix| :func:`utils._safe_indexing` 在提供整数索引时显式采用数据框副本,避免了从 Pandas 引发警告。此警告之前在重采样实用程序和使用这些实用程序的函数(例如 :func:`model_selection.train_test_split` 、:func:`model_selection.cross_validate` 、:func:`model_selection.cross_val_score` 、:func:`model_selection.cross_val_predict` )中引发。:pr:`20673` by :user:`Joris Van den Bossche ` . - |Fix| 修复了 `utils.is_scalar_nan` 中的一个回归问题,其中大型 Python 数字会因 C 类型( `np.float64` 或 `np.int64` )中的溢出而引发错误。:pr:`20727` by `Guillaume Lemaitre`_ . - |Fix| 在 1.0 版本中,:func:`~sklearn.utils.check_array` 对 `np.matrix` 的支持已弃用,并将在 1.2 版本中引发 `TypeError` 。:pr:`20165` by `Thomas Fan`_ . - |API| `utils._testing.assert_warns` 和 `utils._testing.assert_warns_message` 在 1.0 版本中已弃用,并将在 1.2 版本中移除。请改用 `pytest.warns` 上下文管理器。请注意,这些函数未被记录且不属于公共 API。 公共 API。:pr:`20521` 由 :user:`Olivier Grisel ` 贡献。 - |API| 修复了 `utils.graph.graph_shortest_path` 中的几个错误,该功能现已弃用。请改用 `scipy.sparse.csgraph.shortest_path` 。:pr:`20531` 由 `Tom Dupre la Tour`_ 贡献。 .. rubric:: 代码和文档贡献者 感谢自版本 0.24 以来为项目的维护和改进做出贡献的每一个人,包括: Abdulelah S. Al Mesfer, Abhinav Gupta, Adam J. Stewart, Adam Li, Adam Midvidy, Adrian Garcia Badaracco, Adrian Sadłocha, Adrin Jalali, Agamemnon Krasoulis, Alberto Rubiales, Albert Thomas, Albert Villanova del Moral, Alek Lefebvre, Alessia Marcolini, Alexandr Fonari, Alihan Zihna, Aline Ribeiro de Almeida, Amanda, Amanda Dsouza, Amol Deshmukh, Ana Pessoa, Anavelyz, Andreas Mueller, Andrew Delong, Ashish, Ashvith Shetty, Atsushi Nukariya, Aurélien Geron, Avi Gupta, Ayush Singh, baam, BaptBillard, Benjamin Pedigo, Bertrand Thirion, Bharat Raghunathan, bmalezieux, Brian Rice, Brian Sun, Bruno Charron, Bryan Chen, bumblebee, caherrera-meli, Carsten Allefeld, CeeThinwa, Chiara Marmo, chrissobel, Christian Lorentzen, Christopher Yeh, Chuliang Xiao, Clément Fauchereau, cliffordEmmanuel, Conner Shen, Connor Tann, David Dale, David Katz, David Poznik, Dimitri Papadopoulos Orfanos, Divyanshu Deoli, dmallia17, Dmitry Kobak, DS_anas, Eduardo Jardim, EdwinWenink, EL-ATEIF Sara, Eleni Markou, EricEllwanger, Eric Fiegel, Erich Schubert, Ezri-Mudde, Fatos Morina, Felipe Rodrigues, Felix Hafner, Fenil Suchak, flyingdutchman23, Flynn, Fortune Uwha, Francois Berenger, Frankie Robertson, Frans Larsson, Frederick Robinson, frellwan, Gabriel S Vicente, Gael Varoquaux, genvalen, Geoffrey Thomas, geroldcsendes, Gleb Levitskiy, Glen, Glòria Macià Muñoz, gregorystrubel, groceryheist, Guillaume Lemaitre, guiweber, Haidar Almubarak, Hans Moritz Günther, Haoyin Xu, Harris Mirza, Harry Wei, Harutaka Kawamura, Hassan Alsawadi, Helder Geovane Gomes de Lima, Hugo DEFOIS, Igor Ilic, Ikko Ashimine, Isaack Mungui, Ishaan Bhat, Ishan Mishra, Iván Pulido, iwhalvic, J Alexander, Jack Liu, James Alan Preiss, James Budarz, James Lamb, Jannik, Jeff Zhao, Jennifer Maldonado, Jérémie du Boisberranger, Jesse Lima, Jianzhu Guo, jnboehm, Joel Nothman, JohanWork, John Paton, Jonathan Schneider, Jon Crall, Jon Haitz Legarreta Gorroño, Joris Van den Bossche, José Manuel Nápoles Duarte, Juan Carlos Alfaro Jiménez, Juan Martin Loyola, Julien Jerphanion, Julio Batista Silva, julyrashchenko, JVM, Kadatatlu Kishore, Karen Palacio, Kei Ishikawa, kmatt10, kobaski, Kot271828, Kunj, KurumeYuta, kxytim, lacrosse91, LalliAcqua, Laveen Bagai, Leonardo Rocco, Leonardo Uieda, Leopoldo Corona, Loic Esteve, LSturtew, Luca Bittarello, Luccas Quadros, Lucy Jiménez, Lucy Liu, ly648499246, Mabu Manaileng, Manimaran, makoeppel, Marco Gorelli, Maren Westermann, Mariangela, Maria Telenczuk, marielaraj, Martin Hirzel, Mateo Noreña, Mathieu Blondel, Mathis Batoul, mathurinm, Matthew Calcote, Maxime Prieur, Maxwell, Mehdi Hamoumi, Mehmet Ali Özer, Miao Cai, Michal Karbownik, michalkrawczyk, Mitzi, mlondschien, Mohamed Haseeb, Mohamed Khoualed, Muhammad Jarir Kanji, murata-yu, Nadim Kawwa, Nanshan Li, naozin555, Nate Parsons, Neal Fultz, Nic Annau, Nicolas Hug, Nicolas Miller, Nico Stefani, Nigel Bosch, Nikita Titov, Nodar Okroshiashvili, Norbert Preining, novaya, Ogbonna Chibuike Stephen, OGordon100, Oliver Pfaffel, Olivier Grisel, Oras Phongpanangam, Pablo Duque, Pablo Ibieta-Jimenez, Patric Lacouth, Paulo S. Costa, Paweł Olszewski, Peter Dye, PierreAttard, Pierre-Yves Le Borgne, PranayAnchuri, Prince Canuma, putschblos, qdeffense, RamyaNP, ranjanikrishnan, Ray Bell, Rene Jean Corneille, Reshama Shaikh, ricardojnf, RichardScottOZ, Rodion Martynov, Rohan Paul, Roman Lutz, Roman Yurchak, Samuel Brice, Sandy Khosasi, Sean Benhur J, Sebastian Flores, Sebastian Pölsterl, Shao Yang Hong, shinehide, shinnar, shivamgargsya, Shooter23, Shuhei Kayawari, Shyam Desai, simonamaggio, Sina Tootoonian, solosilence, Steven Kolawole, Steve Stagg, Surya Prakash, swpease, Sylvain Marié, Takeshi Oura, Terence Honles, TFiFiE, Thomas A Caswell, Thomas J. Fan, Tim Gates, TimotheeMathieu, Timothy Wolodzko, Tim Vink, t-jakubek, t-kusanagi, tliu68, Tobias Uhmann, tom1092, Tomás Moreyra, Tomás Ronald Hughes, Tom Dupré la Tour, Tommaso Di Noto, Tomohiro Endo, TONY GEORGE, Toshihiro NAKAE, tsuga, Uttam kumar, vadim-ushtanit, Vangelis Gkiastas, Venkatachalam N, Vilém Zouhar, Vinicius Rios Fuck, Vlasovets, waijean, Whidou, xavier dupré, xiaoyuchai, Yasmeen Alsaedy, yoch, Yosuke KOBAYASHI, Yu Feng, YusukeNagasaka, yzhenman, Zero, ZeyuSun, ZhaoweiWang, Zito, Zito Relova