.. include:: _contributors.rst .. currentmodule:: sklearn .. _release_notes_1_2: =========== 版本 1.2 =========== 有关此版本主要亮点简要描述,请参阅 :ref:`sphx_glr_auto_examples_release_highlights_plot_release_highlights_1_2_0.py` 。 .. include:: changelog_legend.inc .. _changes_1_2_2: 版本 1.2.2 ============= **2023年3月** 更新日志 --------- :mod:`sklearn.base` ................... - |Fix| 当 `set_output(transform="pandas")` 时,:class:`base.TransformerMixin` 会保持索引,如果 :term:`transform` 输出已经是 DataFrame。:pr:`25747` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.calibration` .......................... - |Fix| 使用 `base_estimator__` 前缀设置 :class:`calibration.CalibratedClassifierCV` 中使用的估计器参数时,会引发弃用警告。:pr:`25477` 由 :user:`Tim Head ` 贡献。 :mod:`sklearn.cluster` ...................... - |Fix| 修复了 :class:`cluster.BisectingKMeans` 中的一个错误,防止 `fit` 在多次初始化时由于标签排列而随机失败。:pr:`25563` 由 :user:`Jérémie du Boisberranger ` 贡献。 :mod:`sklearn.compose` ...................... - |Fix| 修复了 :class:`compose.ColumnTransformer` 中的一个错误,现在支持在 `set_output(transform="pandas")` 时选择空列。:pr:`25570` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.ensemble` ....................... - |Fix| 使用 `base_estimator__` 前缀设置 :class:`ensemble.AdaBoostClassifier` 、:class:`ensemble.AdaBoostRegressor` 、:class:`ensemble.BaggingClassifier` 和 :class:`ensemble.BaggingRegressor` 中使用的估计器参数时,会引发弃用警告。:pr:`25477` 由 :user:`Tim Head ` 贡献。 :mod:`sklearn.feature_selection` ................................ - |Fix| 修复了一个回归问题,其中 :class:`feature_selection.SequentialFeatureSelector` 不再接受负的 `tol` 。 :pr:`25664` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.inspection` ......................... - |Fix| 在处理无法通过 :func:`numpy.unique` 排序的混合数据类型类别时,在 :func:`inspection.partial_dependence` 中引发更具信息性的错误消息。当类别为 `str` 且存在使用 `np.nan` 的缺失值时,通常会出现此问题。 :pr:`25774` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.isotonic` ....................... - |Fix| 修复了 :class:`isotonic.IsotonicRegression` 中的一个错误,其中当全局配置设置 `transform_output="pandas"` 时,:meth:`isotonic.IsotonicRegression.predict` 会返回一个 pandas DataFrame。 :pr:`25500` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.preprocessing` ............................ - |Fix| `preprocessing.OneHotEncoder.drop_idx_` 现在在存在不频繁类别时正确引用 `categories_` 属性中的被删除类别。:pr:`25589` 由 `Thomas Fan`_ 提交。 - |Fix| :class:`preprocessing.OrdinalEncoder` 现在正确支持 `encoded_missing_value` 或 `unknown_value` 设置为类别基数,当训练数据中存在缺失值时。:pr:`25704` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.tree` ................... - |Fix| 修复了 :class:`tree.DecisionTreeClassifier` 、:class:`tree.DecisionTreeRegressor` 、:class:`tree.ExtraTreeClassifier` 和 :class:`tree.ExtraTreeRegressor` 中的回归问题,其中在版本 1.2 中不再在 `min_sample_split=1` 时引发错误。 :pr:`25744` 由 :user:`Jérémie du Boisberranger ` 提交。 :mod:`sklearn.utils` .................... - |Fix| 修复了 :func:`utils.check_array` 中的一个错误,现在它能够根据 Array API 规范正确执行非有限值验证。:pr:`25619` 由 `Thomas Fan`_ 提交。 - |Fix| :func:`utils.multiclass.type_of_target` 可以识别 pandas 可空数据类型作为分类目标。:pr:`25638` 由 `Thomas Fan`_ 提交。 .. _changes_1_2_1: 版本 1.2.1 ========= **2023年1月** 更改的模型 ---------- 以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强)或随机抽样过程的变化引起的。 - |Fix| :class:`decomposition.MiniBatchDictionaryLearning` 中拟合的组件可能会有所不同。现在在线更新充分统计量时会正确考虑批次的大小。 :pr:`25354` 由 :user:`Jérémie du Boisberranger ` 贡献。 - |Fix| :class:`preprocessing.OneHotEncoder` 的 `categories_` 属性现在在使用预定义的字符串类别时总是包含一个 `object` 类型的数组。预定义的以字节编码的类别将不再适用于以字符串编码的 `X` 。 :pr:`25174` 由 :user:`Tim Head ` 贡献。 影响所有模块的更改 ------------------ - |Fix| 支持分类器和回归器的 `pandas.Int64` 类型的 `y` 。 :pr:`25089` 由 :user:`Tim Head ` 贡献。 - |Fix| 移除内部使用邻居搜索方法的估计器的虚假警告。 :pr:`25129` 由 :user:`Julien Jerphanion ` 贡献。 - |Fix| 修复了一个错误,该错误导致在使用 `n_jobs > 1` 的估计器中忽略了当前配置。此错误在 `joblib` 的辅助线程分派的任务中触发,因为 :func:`sklearn.get_config` 曾经访问一个空的线程本地配置,而不是从首次调用 `joblib.Parallel` 的线程中可见的配置。 :pr:`25363` 由 :user:`Guillaume Lemaitre ` 贡献。 变更日志 -------- :mod:`sklearn.base` ................... - |Fix| 修复了 `BaseEstimator.__getstate__` 中的回归问题,该问题会阻止某些估计器在 Python 3.11 中被序列化。 :pr:`25188` 由 :user:`Benjamin Bossan ` 贡献。 - |Fix| 继承自 :class:`base.TransformerMixin` 时,仅当类本身定义了 `transform` 方法时才会包装 `transform` 方法。:pr:`25295` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.datasets` ....................... - |Fix| 修复了 :func:`datasets.fetch_openml` 在 liac-arff 和 pandas 解析器之间的一个不一致问题,当分隔符后引入前导空格时。ARFF 规范要求忽略前导空格。:pr:`25312` 由 :user:`Guillaume Lemaitre ` 提交。 - |Fix| 修复了在使用 `parser="pandas"` 时 :func:`datasets.fetch_openml` 中的一个错误,其中单引号和反斜杠转义字符未被正确处理。:pr:`25511` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.decomposition` ............................ - |Fix| 修复了 :class:`decomposition.MiniBatchDictionaryLearning` 中的一个错误,当在不同大小的批次上调用 `partial_fit` 时,充分统计量的在线更新不正确。:pr:`25354` 由 :user:`Jérémie du Boisberranger ` 提交。 - |Fix| :class:`decomposition.DictionaryLearning` 更好地支持只读 NumPy 数组。特别是,当与坐标下降算法(即当 `fit_algorithm='cd'` 时)一起使用时,它更好地支持内存映射的大型数据集。:pr:`25172` 由 :user:`Julien Jerphanion ` 提交。 :mod:`sklearn.ensemble` ....................... - |Fix| :class:`ensemble.RandomForestClassifier` 、:class:`ensemble.RandomForestRegressor` 、:class:`ensemble.ExtraTreesClassifier` 和 :class:`ensemble.ExtraTreesRegressor` 现在支持只读稀疏数据集。:pr:`25341` 由 :user:`Julien Jerphanion ` 提交。 :mod:`sklearn.feature_extraction` ................................. - |Fix| :class:`feature_extraction.FeatureHasher` 在输入为字符串列表时会引发一个信息性的错误。:pr:`25094` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.linear_model` ........................... - |Fix| 修复了 :class:`linear_model.SGDClassifier` 和 :class:`linear_model.SGDRegressor` 中的一个回归问题,使得当 `verbose` 参数设置为大于 0 的值时它们无法使用。 :pr:`25250` 由 :user:`Jérémie Du Boisberranger ` 贡献。 :mod:`sklearn.manifold` ....................... - |Fix| :class:`manifold.TSNE` 现在在输出类型设置为 pandas 时可以正确工作。 :pr:`25370` 由 :user:`Tim Head ` 贡献。 :mod:`sklearn.model_selection` .............................. - |Fix| :func:`model_selection.cross_validate` 在多指标评分情况下,如果某些评分器失败,非失败的评分器现在会返回正确的分数而不是 `error_score` 值。 :pr:`23101` 由 :user:`András Simon ` 和 `Thomas Fan`_ 贡献。 :mod:`sklearn.neural_network` ............................. - |Fix| :class:`neural_network.MLPClassifier` 和 :class:`neural_network.MLPRegressor` 在拟合带有特征名称的数据时不再引发警告。 :pr:`24873` 由 :user:`Tim Head ` 贡献。 - |Fix| 改进了 :class:`neural_network.MLPClassifier` 和 :class:`neural_network.MLPRegressor` 中的错误消息,当 `early_stopping=True` 且调用 `partial_fit` 时。 :pr:`25694` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.preprocessing` ............................ - |Fix| :meth:`preprocessing.FunctionTransformer.inverse_transform` 在 `check_inverse=True` 时正确支持所有数值的 DataFrame。 :pr:`25274` 由 `Thomas Fan`_ 贡献。 - |Fix| :meth:`preprocessing.SplineTransformer.get_feature_names_out` 在 `extrapolations="periodic"` 时正确返回特征名称。 :pr:`25296` 由 `Thomas Fan`_ 贡献。 :mod:`sklearn.tree` ................... - |Fix| :class:`tree.DecisionTreeClassifier` , :class:`tree.DecisionTreeRegressor` :class:`tree.ExtraTreeClassifier` 和 :class:`tree.ExtraTreeRegressor` 现在支持稀疏只读数据集。 :pr:`25341` 由 :user:`Julien Jerphanion ` 贡献。 :mod:`sklearn.utils` .................... - |Fix| 恢复 :func:`utils.check_array` 对布尔类型 pandas Series 的行为。类型保持不变,而不是转换为 `float64` 。 :pr:`25147` 由 :user:`Tim Head ` 提交。 - |API| `utils.fixes.delayed` 在 1.2.1 中已弃用,并将在 1.5 中移除。取而代之的是,导入 :func:`utils.parallel.delayed` 并结合新引入的 :func:`utils.parallel.Parallel` 使用,以确保 scikit-learn 配置正确传播到工作进程。 :pr:`25363` 由 :user:`Guillaume Lemaitre ` 提交。 .. _changes_1_2: 版本 1.2.0 ========= **2022年12月** 更改的模型 ---------- 以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强),或随机抽样过程的变化。 - |Enhancement| :class:`cluster.SpectralClustering` 、:class:`manifold.SpectralEmbedding` 、:func:`cluster.spectral_clustering` 和 :func:`manifold.spectral_embedding` 在使用 `'amg'` 或 `'lobpcg'` 求解器时的默认 `eigen_tol` 现在为 `None` 。这一更改提高了求解器的数值稳定性,但可能导致不同的模型。 - |Enhancement| :class:`linear_model.GammaRegressor` 、:class:`linear_model.PoissonRegressor` 和 :class:`linear_model.TweedieRegressor` 在使用 lbfgs 求解器时可以达到更高的精度,特别是在 `tol` 设置为极小值时。此外, `verbose` 现在正确地传播到 L-BFGS-B。 :pr:`23619` 由 :user:`Christian Lorentzen ` 提交。 - |Enhancement| :func:`metrics.log_loss` 的默认 `eps` 值已从 `1e-15` 更改为 `"auto"` 。 `"auto"` 将 `eps` 设置为 `np.finfo(y_pred.dtype).eps` 。 :pr:`24354` 由 :user:`Safiuddin Khaja ` 和 :user:`gsiisg ` 提交。 - |Fix| 在 :class:`decomposition.SparsePCA` 中使 `components_` 的符号确定。 :pr:`23935` 由 :user:`Guillaume Lemaitre ` 提交。 - |Fix| :class:`decomposition.FastICA` 中的 `components_` 符号可能不同。 现在它们是一致的且确定性的,适用于所有 SVD 求解器。 :pr:`22527` 由 :user:`Meekail Zain ` 和 `Thomas Fan`_ 提交。 - |Fix| `linear_model._sgd_fast._plain_sgd` 中用于早期停止的条件现已更改, 该函数被 :class:`linear_model.SGDRegressor` 和 :class:`linear_model.SGDClassifier` 使用。 旧条件没有区分训练集和验证集,并且对误差容限有过度缩放的影响。 这一问题在 :pr:`23798` 中由 :user:`Harsh Agrawal ` 修复。 - |Fix| 对于 :class:`model_selection.GridSearchCV` 和 :class:`model_selection.RandomizedSearchCV` ,对应于 nan 分数的排名将全部设置为最大可能排名。 :pr:`24543` 由 :user:`Guillaume Lemaitre ` 提交。 - |API| `tol` 的默认值从 `1e-3` 更改为 `1e-4` ,适用于 :func:`linear_model.ridge_regression` 、:class:`linear_model.Ridge` 和 :class:`linear_model.RidgeClassifier` 。 :pr:`24465` 由 :user:`Christian Lorentzen ` 提交。 影响所有模块的更改 -------------------- - |MajorFeature| 所有转换器已采用 `set_output` API。 包含转换器的元估计器,如 :class:`pipeline.Pipeline` 或 :class:`compose.ColumnTransformer` , 也定义了 `set_output` 。详情请参阅 `SLEP018 `__ 。 :pr:`23734` 和 :pr:`24699` 由 `Thomas Fan`_ 提交。 - |Efficiency| 针对密集 float32 数据集的成对距离缩减的底层例程已重构。 以下函数和估计器现在在硬件可扩展性和速度提升方面受益: - :func:`sklearn.metrics.pairwise_distances_argmin` - :func:`sklearn.metrics.pairwise_distances_argmin_min` - :class:`sklearn.cluster.AffinityPropagation` - :class:`sklearn.cluster.Birch` - :class:`sklearn.cluster.MeanShift` - :class:`sklearn.cluster.OPTICS` - :class:`sklearn.cluster.SpectralClustering` - :func:`sklearn.feature_selection.mutual_info_regression` - :class:`sklearn.neighbors.KNeighborsClassifier` - :class:`sklearn.neighbors.KNeighborsRegressor` - :class:`sklearn.neighbors.RadiusNeighborsClassifier` - :class:`sklearn.neighbors.RadiusNeighborsRegressor` - :class:`sklearn.neighbors.LocalOutlierFactor` - :class:`sklearn.neighbors.NearestNeighbors` - :class:`sklearn.manifold.Isomap` - :class:`sklearn.manifold.LocallyLinearEmbedding` - :class:`sklearn.manifold.TSNE` - :func:`sklearn.manifold.trustworthiness` - :class:`sklearn.semi_supervised.LabelPropagation` - :class:`sklearn.semi_supervised.LabelSpreading` 例如,:meth:`sklearn.neighbors.NearestNeighbors.kneighbors` 和 :meth:`sklearn.neighbors.NearestNeighbors.radius_neighbors` 在笔记本电脑上的速度分别可以比以前快至20倍和5倍。 此外,这两个算法的实现现在适用于多核机器,使得它们可以用于包含数百万样本的数据集。 :pr:`23865` 由 :user:`Julien Jerphanion ` 贡献。 - |Enhancement| 所有估计器中的有限性检查(检测NaN和无限值)现在通过利用NumPy的SIMD优化原语,对float32数据更加高效。 :pr:`23446` 由 :user:`Meekail Zain ` 贡献 - |Enhancement| 所有估计器中的有限性检查(检测NaN和无限值)现在通过使用更高效的首次停止二次遍历算法,速度更快。 :pr:`23197` 由 :user:`Meekail Zain ` 贡献 - |Enhancement| 已添加或改进了对所有距离度量以及float32和float64数据集的密集和稀疏数据集对组合的支持,涉及以下估计器: - :func:`sklearn.metrics.pairwise_distances_argmin` - :func:`sklearn.metrics.pairwise_distances_argmin_min` - :class:`sklearn.cluster.AffinityPropagation` - :class:`sklearn.cluster.Birch` - :class:`sklearn.cluster.SpectralClustering` - :class:`sklearn.neighbors.KNeighborsClassifier` - :class:`sklearn.neighbors.KNeighborsRegressor` - :class:`sklearn.neighbors.RadiusNeighborsClassifier` - :class:`sklearn.neighbors.RadiusNeighborsRegressor` - :class:`sklearn.neighbors.LocalOutlierFactor` - :class:`sklearn.neighbors.NearestNeighbors` - :class:`sklearn.manifold.Isomap` - :class:`sklearn.manifold.TSNE` - :func:`sklearn.manifold.trustworthiness` :pr:`23604` 和 :pr:`23585` 由 :user:`Julien Jerphanion ` 、 :user:`Olivier Grisel ` 和 `Thomas Fan`_ 提交, :pr:`24556` 由 :user:`Vincent Maladière ` 提交。 - |Fix| 系统性地检查文档中代码示例使用的数据集压缩包的 sha256 摘要。 :pr:`24617` 由 :user:`Olivier Grisel ` 和 `Thomas Fan`_ 提交。感谢 `Sim4n6 `_ 的报告。 变更日志 --------- .. 条目应按模块(按字母顺序)分组,并以前缀标签之一开头:|MajorFeature|、|Feature|、|Efficiency|、|Enhancement|、 |Fix| 或 |API|(参见 whats_new.rst 中的描述)。 条目应按这些标签排序(例如,|Fix| 在 |Efficiency| 之后)。 非特定于某个模块的更改应列在 *多个模块* 或 *杂项* 下。 条目应以以下内容结束: :pr:`123456` 由 :user:`Joe Bloggs ` 提交。 其中 123456 是 *拉取请求* 编号,而不是问题编号。 :mod:`sklearn.base` ................... - |Enhancement| 引入 :class:`base.ClassNamePrefixFeaturesOutMixin` 和 :class:`base.ClassNamePrefixFeaturesOutMixin` 混合类,为常见转换器用例定义 :term:`get_feature_names_out` 。 :pr:`24688` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.calibration` .......................... - |API| 在 :class:`calibration.CalibratedClassifierCV` 中将 `base_estimator` 重命名为 `estimator` ,以提高可读性和一致性。参数 `base_estimator` 已被弃用,并将在 1.4 版本中移除。:pr:`22054` 由 :user:`Kevin Roice ` 提交。 :mod:`sklearn.cluster` ...................... - |Efficiency| 使用 `algorithm="lloyd"` 的 :class:`cluster.KMeans` 现在更快且占用更少内存。:pr:`24264` 由 :user:`Vincent Maladiere ` 提交。 - |Enhancement| :class:`cluster.OPTICS` 的 `predict` 和 `fit_predict` 方法现在接受稀疏数据类型作为输入数据。:pr:`14736` 由 :user:`Hunt Zhan ` 提交,:pr:`20802` 由 :user:`Brandon Pokorny ` 提交,以及 :pr:`22965` 由 :user:`Meekail Zain ` 提交。 - |Enhancement| :class:`cluster.Birch` 现在保留 `numpy.float32` 输入的 dtype。:pr:`22968` 由 `Meekail Zain ` 提交。 - |Enhancement| :class:`cluster.KMeans` 和 :class:`cluster.MiniBatchKMeans` 现在接受一个新的 `'auto'` 选项用于 `n_init` ,当使用 `init='k-means++'` 时,随机初始化的次数变为一次,以提高效率。这标志着这两个类中 `n_init` 默认值的弃用开始,它们在 1.4 版本中默认值将变为 `n_init='auto'` 。:pr:`23038` 由 :user:`Meekail Zain ` 提交。 - |Enhancement| :class:`cluster.SpectralClustering` 和 :func:`cluster.spectral_clustering` 现在将 `eigen_tol` 参数传递给所有 `eigen_solver` 选项。新增 `eigen_tol="auto"` 选项,并开始弃用将默认值从 `eigen_tol=0` 改为 `eigen_tol="auto"` 的过程,计划在 1.3 版本中完成。:pr:`23210` 由 :user:`Meekail Zain ` 提交。 - |Fix| :class:`cluster.KMeans` 现在支持在预测时使用只读属性。:pr:`24258` 由 `Thomas Fan`_ 提交。 - |API| `affinity` 属性现在已被弃用。 :class:`cluster.AgglomerativeClustering` 将在 v1.4 中重命名为 `metric` 。 :pr:`23470` 由 :user:`Meekail Zain ` 提交。 :mod:`sklearn.datasets` ....................... - |Enhancement| 在 :func:`datasets.fetch_openml` 中引入新参数 `parser` 。 `parser="pandas"` 允许使用非常高效利用 CPU 和内存的 `pandas.read_csv` 解析器来加载密集型 ARFF 格式的数据集文件。可以通过传递 `parser="liac-arff"` 来使用旧的 LIAC 解析器。当 `parser="auto"` 时,密集型数据集使用 "pandas" 加载,稀疏型数据集使用 "liac-arff" 加载。目前默认 `parser="liac-arff"` ,将在版本 1.4 中更改为 `parser="auto"` 。 :pr:`21938` 由 :user:`Guillaume Lemaitre ` 提交。 - |Enhancement| :func:`datasets.dump_svmlight_file` 现在通过 Cython 实现加速,提供 2-4 倍的速度提升。 :pr:`23127` 由 :user:`Meekail Zain ` 提交。 - |Enhancement| 现在允许使用 pathlib 创建的路径类对象作为 :func:`datasets.load_svmlight_file` 和 :func:`datasets.load_svmlight_files` 中的路径。 :pr:`19075` 由 :user:`Carlos Ramos Carreño ` 提交。 - |Fix| 确保 :func:`datasets.fetch_lfw_people` 和 :func:`datasets.fetch_lfw_pairs` 根据 `slice_` 参数内部裁剪图像。 :pr:`24951` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.decomposition` ............................ - |Efficiency| :func:`decomposition.FastICA.fit` 已经针对其内存占用和运行时间进行了优化。 :pr:`22268` 由 :user:`MohamedBsh ` 提交。 - |Enhancement| :class:`decomposition.SparsePCA` 和 :class:`decomposition.MiniBatchSparsePCA` 现在实现了 `inverse_transform` 函数。 :pr:`23905` 由 :user:`Guillaume Lemaitre ` 提交。 - |Enhancement| :class:`decomposition.FastICA` 现在允许用户通过新的 `whiten_solver` 参数选择如何进行白化处理。 支持 `svd` 和 `eigh` 。 `whiten_solver` 默认设置为 `svd` ,尽管在 `num_features > num_samples` 的情况下, `eigh` 可能更快且更节省内存。 :pr:`11860` 由 :user:`Pierre Ablin ` 提交, :pr:`22527` 由 :user:`Meekail Zain ` 和 `Thomas Fan`_ 提交。 - |Enhancement| :class:`decomposition.LatentDirichletAllocation` 现在保留 `numpy.float32` 输入的 dtype。:pr:`24528` 由 :user:`Takeshi Oura ` 和 :user:`Jérémie du Boisberranger ` 提交。 - |Fix| 在 :class:`decomposition.SparsePCA` 中确定 `components_` 的符号。:pr:`23935` 由 :user:`Guillaume Lemaitre ` 提交。 - |API| :class:`decomposition.MiniBatchSparsePCA` 的 `n_iter` 参数已弃用,并被 `max_iter` 、 `tol` 和 `max_no_improvement` 参数取代,以与 :class:`decomposition.MiniBatchDictionaryLearning` 保持一致。 `n_iter` 将在版本 1.3 中移除。:pr:`23726` 由 :user:`Guillaume Lemaitre ` 提交。 - |API| :class:`decomposition.PCA` 的 `n_features_` 属性已弃用,取而代之的是 `n_features_in_` ,并将在 1.4 版本中移除。:pr:`24421` 由 :user:`Kshitij Mathur ` 提交。 :mod:`sklearn.discriminant_analysis` .................................... - |MajorFeature| :class:`discriminant_analysis.LinearDiscriminantAnalysis` 现在支持 `solver="svd"` 的 `Array API `_ 。Array API 支持被视为实验性的,可能会在没有遵循我们通常的滚动弃用周期政策的情况下进行演变。详情请参阅 :ref:`array_api` 。:pr:`22554` 由 `Thomas Fan`_ 提交。 - |Fix| 仅在 `fit` 中验证参数,而不是在 `__init__` 中验证参数,适用于 :class:`discriminant_analysis.QuadraticDiscriminantAnalysis` 。:pr:`24218` 由 :user:`Stefanie Molin ` 提交。 :mod:`sklearn.ensemble` ....................... - |MajorFeature| :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 现在通过其构造函数的 `interaction_cst` 参数支持交互约束。 :pr:`21020` 由 :user:`Christian Lorentzen ` 贡献。 使用交互约束还可以使拟合速度更快。 :pr:`24856` 由 :user:`Christian Lorentzen ` 贡献。 - |Feature| 为 :class:`ensemble.HistGradientBoostingClassifier` 添加 `class_weight` 参数。 :pr:`22014` 由 `Thomas Fan`_ 贡献。 - |Efficiency| 通过避免数据复制,提高 :class:`ensemble.IsolationForest` 的运行时性能。 :pr:`23252` 由 :user:`Zhehao Liu ` 贡献。 - |Enhancement| :class:`ensemble.StackingClassifier` 现在接受任何类型的基础估计器。 :pr:`24538` 由 :user:`Guillem G Subies ` 贡献。 - |Enhancement| 使 :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 的 `categorical_features` 参数可以通过特征名称传递。 :pr:`24889` 由 :user:`Olivier Grisel ` 贡献。 - |Enhancement| :class:`ensemble.StackingClassifier` 现在支持多标签指示器目标。 :pr:`24146` 由 :user:`Nicolas Peretti ` 、 :user:`Nestor Navarro ` 、:user:`Nati Tomattis ` 和 :user:`Vincent Maladiere ` 贡献。 - |Enhancement| :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingClassifier` 现在接受其 `monotonic_cst` 参数作为字典传递, 除了之前支持的类似数组格式外。 此类字典以特征名称为键,以 `-1` 、 `0` 、 `1` 之一为值,指定每个特征的单调性约束。 :pr:`24855` 由 :user:`Olivier Grisel ` 贡献。 - |Enhancement| :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 的交互约束现在可以指定为字符串, 适用于两种常见情况:"no_interactions" 和 "pairwise" 交互。 :pr:`24849` 由 :user:`Tim Head ` 提交。 - |Fix| 修复了 :class:`ensemble.AdaBoostClassifier` 在样本权重非常小的情况下拟合时特征重要性输出 NaN 的问题。 :pr:`20415` 由 :user:`Zhehao Liu ` 提交。 - |Fix| :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` 在预测编码为负值的类别时不再报错,而是将其视为“缺失类别”的成员。 :pr:`24283` 由 `Thomas Fan`_ 提交。 - |Fix| :class:`ensemble.HistGradientBoostingClassifier` 和 :class:`ensemble.HistGradientBoostingRegressor` ,当 `verbose>=1` 时,打印详细的计算直方图和寻找最佳分割点的计时信息。之前根节点所花费的时间未被包含,现在已包含在打印信息中。 :pr:`24894` 由 :user:`Christian Lorentzen ` 提交。 - |API| 在以下类中将构造函数参数 `base_estimator` 重命名为 `estimator` : :class:`ensemble.BaggingClassifier` , :class:`ensemble.BaggingRegressor` , :class:`ensemble.AdaBoostClassifier` , :class:`ensemble.AdaBoostRegressor` 。 `base_estimator` 在 1.2 版本中已弃用,并将在 1.4 版本中移除。 :pr:`23819` 由 :user:`Adrian Trujillo ` 和 :user:`Edoardo Abati ` 提交。 - |API| 在以下类中将拟合属性 `base_estimator_` 重命名为 `estimator_` : :class:`ensemble.BaggingClassifier` , :class:`ensemble.BaggingRegressor` , :class:`ensemble.AdaBoostClassifier` , :class:`ensemble.AdaBoostRegressor` , :class:`ensemble.RandomForestClassifier` , :class:`ensemble.RandomForestRegressor` , :class:`ensemble.ExtraTreesClassifier` , :class:`ensemble.ExtraTreesRegressor` , :class:`ensemble.RandomTreesEmbedding` , :class:`ensemble.IsolationForest` 。 `base_estimator_` 在 1.2 版本中已弃用,并将在 1.4 版本中移除。 :pr:`23819` 由 :user:`Adrian Trujillo ` 和 :user:`Edoardo Abati ` 提交。 :mod:`sklearn.feature_selection` ................................ - |Fix| 修复了 :func:`feature_selection.mutual_info_regression` 和 :func:`feature_selection.mutual_info_classif` 中的一个错误,其中连续特征 在 `X` 中应独立缩放到单位方差,如果目标 `y` 是连续的或离散的。 :pr:`24747` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.gaussian_process` ............................... - |Fix| 修复了 :class:`gaussian_process.kernels.Matern` 在 `nu=0.5` 时 的梯度计算问题,适用于 PyPy(以及其他可能的非 CPython 解释器)。 :pr:`24245` 由 :user:`Loïc Estève ` 提交。 - |Fix| :class:`gaussian_process.GaussianProcessRegressor` 的 `fit` 方法 在使用了自定义内核且该内核的 `diag` 方法返回输入 `X` 的一部分时,不会修改输入 `X` 。 :pr:`24405` 由 :user:`Omar Salman ` 提交。 :mod:`sklearn.impute` ..................... - |Enhancement| 为 :class:`impute.SimpleImputer` 、:class:`impute.KNNImputer` 和 :class:`impute.IterativeImputer` 添加了 `keep_empty_features` 参数, 防止在转换时移除仅包含缺失值的特征。 :pr:`16695` 由 :user:`Vitor Santa Rosa ` 提交。 :mod:`sklearn.inspection` ......................... - |MajorFeature| 扩展了 :func:`inspection.partial_dependence` 和 :class:`inspection.PartialDependenceDisplay` 以处理分类特征。 :pr:`18298` 由 :user:`Madhura Jayaratne ` 和 :user:`Guillaume Lemaitre ` 提交。 - |Fix| :class:`inspection.DecisionBoundaryDisplay` 现在会在输入数据 不是二维时引发错误。 :pr:`25077` 由 :user:`Arturo Amor ` 提交。 :mod:`sklearn.kernel_approximation` ................................... - |Enhancement| :class:`kernel_approximation.RBFSampler` 现在保留 `numpy.float32` 输入的 dtype。 :pr:`24317` 由 `Tim Head ` 提交。 - |Enhancement| :class:`kernel_approximation.SkewedChi2Sampler` 现在保留 `numpy.float32` 输入的 dtype。:pr:`24350` 由 :user:`Rahil Parikh ` 贡献。 - |Enhancement| :class:`kernel_approximation.RBFSampler` 现在接受参数 `gamma` 的 `'scale'` 选项。 :pr:`24755` 由 :user:`Gleb Levitski ` 贡献。 :mod:`sklearn.linear_model` ........................... - |Enhancement| :class:`linear_model.LogisticRegression` , :class:`linear_model.LogisticRegressionCV` , :class:`linear_model.GammaRegressor` , :class:`linear_model.PoissonRegressor` 和 :class:`linear_model.TweedieRegressor` 获得了一个新的求解器 `solver="newton-cholesky"` 。这是一个使用 Hessian 矩阵的 Cholesky 分解的二阶(Newton)优化程序。当 `n_samples >> n_features` 时,在具有一些罕见类别级别的一热编码分类变量的问题上, `"newton-cholesky"` 求解器已被观察到比 `"lbfgs"` 求解器更快收敛且达到更高精度的解。 :pr:`24637` 和 :pr:`24767` 由 :user:`Christian Lorentzen ` 贡献。 - |Enhancement| :class:`linear_model.GammaRegressor` , :class:`linear_model.PoissonRegressor` 和 :class:`linear_model.TweedieRegressor` 可以使用 lbfgs 求解器达到更高的精度,特别是在 `tol` 设置为极小值时。此外, `verbose` 现在正确地传递给 L-BFGS-B。 :pr:`23619` 由 :user:`Christian Lorentzen ` 贡献。 - |Fix| :class:`linear_model.SGDClassifier` 和 :class:`linear_model.SGDRegressor` 在所有验证样本的样本权重为零时会引发错误。 :pr:`23275` 由 `Zhehao Liu ` 贡献。 - |Fix| :class:`linear_model.SGDOneClassSVM` 不再在构造函数中执行参数验证。所有验证现在都在 `fit()` 和 `partial_fit()` 中处理。 :pr:`24433` 由 :user:`Yogendrasingh ` , :user:`Arisa Y. ` 和 :user:`Tim Head ` 贡献。 - |Fix| 修复了启用早期停止时平均损失的计算。 :class:`linear_model.SGDRegressor` 和 :class:`linear_model.SGDClassifier` 。 同时相应地更新了早期停止的条件。 :pr:`23798` 由 :user:`Harsh Agrawal ` 提交。 - |API| :class:`linear_model.QuantileRegressor` 中 `solver` 参数的默认值将从 `"interior-point"` 在版本 1.4 中更改为 `"highs"` 。 :pr:`23637` 由 :user:`Guillaume Lemaitre ` 提交。 - |API| 字符串选项 `"none"` 在 :class:`linear_model.LogisticRegression` 的 `penalty` 参数中已被弃用, 并将在版本 1.4 中移除。请改用 `None` 。 :pr:`23877` 由 :user:`Zhehao Liu ` 提交。 - |API| `tol` 的默认值从 `1e-3` 更改为 `1e-4` ,适用于 :func:`linear_model.ridge_regression` 、:class:`linear_model.Ridge` 和 :class:`linear_model.RidgeClassifier` 。 :pr:`24465` 由 :user:`Christian Lorentzen ` 提交。 :mod:`sklearn.manifold` ....................... - |Feature| 在 :class:`manifold.MDS` 中增加了使用标准化应力的选项。通过将新的 `normalize` 参数设置为 `True` 来启用此功能。 :pr:`10168` 由 :user:`Łukasz Borchmann ` 提交, :pr:`12285` 由 :user:`Matthias Miltenberger ` 提交, :pr:`13042` 由 :user:`Matthieu Parizy ` 提交, :pr:`18094` 由 :user:`Roth E Conrad ` 提交, 以及 :pr:`22562` 由 :user:`Meekail Zain ` 提交。 - |Enhancement| 在 :class:`manifold.SpectralEmbedding` 中增加了 `eigen_tol` 参数。 :func:`manifold.spectral_embedding` 和 :class:`manifold.SpectralEmbedding` 现在将 `eigen_tol` 传播到所有 `eigen_solver` 的选择。新增了一个选项 `eigen_tol="auto"` ,并开始弃用将默认值从 `eigen_tol=0` 更改为 `eigen_tol="auto"` 的计划,将在版本 1.3 中实施。 :pr:`23210` 由 :user:`Meekail Zain ` 提交。 - |Enhancement| :class:`manifold.Isomap` 现在保留了 `np.float32` 输入的 dtype。 :pr:`24714` 由 :user:`Rahil Parikh ` 提交。 - |API| 在 `normalized_stress` 参数中增加了 `"auto"` 选项, :class:`manifold.MDS` 和 :func:`manifold.smacof` 。请注意, `normalized_stress` 仅对非度量 MDS 有效,因此当 `metric=False` 时, `"auto"` 选项启用 `normalized_stress` ,而当 `metric=True` 时禁用它。在版本 1.4 中, `"auto"` 将成为 `normalized_stress` 的默认值。:pr:`23834` 由 :user:`Meekail Zain ` 提交。 :mod:`sklearn.metrics` ...................... - |Feature| :func:`metrics.ConfusionMatrixDisplay.from_estimator` 、:func:`metrics.ConfusionMatrixDisplay.from_predictions` 和 :meth:`metrics.ConfusionMatrixDisplay.plot` 接受一个 `text_kw` 参数,该参数传递给 matplotlib 的 `text` 函数。:pr:`24051` 由 `Thomas Fan`_ 提交。 - |Feature| 添加了 :func:`metrics.class_likelihood_ratios` 用于计算从二分类问题的混淆矩阵导出的正负似然比。:pr:`22518` 由 :user:`Arturo Amor ` 提交。 - |Feature| 添加了 :class:`metrics.PredictionErrorDisplay` 用于绘制残差与预测值以及实际值与预测值,以定性评估回归器的行为。可以使用类方法 :func:`metrics.PredictionErrorDisplay.from_estimator` 和 :func:`metrics.PredictionErrorDisplay.from_predictions` 创建显示。:pr:`18020` 由 :user:`Guillaume Lemaitre ` 提交。 - |Feature| :func:`metrics.roc_auc_score` 现在支持 One-vs-Rest 多分类情况( `multi_class="ovr"` )的微平均( `average="micro"` )。:pr:`24338` 由 :user:`Arturo Amor ` 提交。 - |Enhancement| 在 :func:`metrics.log_loss` 中为 `eps` 添加了 `"auto"` 选项。此选项将根据 `y_pred` 的数据类型自动设置 `eps` 值。此外, `eps` 的默认值从 `1e-15` 更改为新的 `"auto"` 选项。:pr:`24354` 由 :user:`Safiuddin Khaja ` 和 :user:`gsiisg ` 提交。 - |Fix| 允许 `csr_matrix` 作为参数 `y_true` 的输入。 :func:`metrics.label_ranking_average_precision_score` 指标。 :pr:`23442` 由 :user:`Sean Atukorala ` 提交。 - |Fix| :func:`metrics.ndcg_score` 现在会在 `y_true` 值包含负值时触发警告。用户仍可使用负值,但结果可能不在 0 到 1 之间。从 v1.4 开始,传递负值给 `y_true` 将引发错误。 :pr:`22710` 由 :user:`Conroy Trinh ` 和 :pr:`23461` 由 :user:`Meekail Zain ` 提交。 - |Fix| :func:`metrics.log_loss` 在 `eps=0` 时,现在会返回正确的值 0 或 `np.inf` ,而不是 `nan` ,适用于边界预测(0 或 1)。它也接受整数输入。 :pr:`24365` 由 :user:`Christian Lorentzen ` 提交。 - |API| :func:`metrics.pairwise.manhattan_distances` 的参数 `sum_over_features` 已弃用,将在 1.4 版本中移除。 :pr:`24630` 由 :user:`Rushil Desai ` 提交。 :mod:`sklearn.model_selection` .............................. - |Feature| 添加了类 :class:`model_selection.LearningCurveDisplay` ,允许轻松绘制由函数 :func:`model_selection.learning_curve` 获得的学习曲线。 :pr:`24084` 由 :user:`Guillaume Lemaitre ` 提交。 - |Fix| 对于所有 `SearchCV` 类和 scipy >= 1.10,与 nan 分数对应的排名现在正确设置为最大可能排名,而不是 `np.iinfo(np.int32).min` 。 :pr:`24141` 由 :user:`Loïc Estève ` 提交。 - |Fix| 在 :class:`model_selection.HalvingGridSearchCV` 和 :class:`model_selection.HalvingRandomSearchCV` 中,具有 NaN 分数的参数组合现在共享最低排名。 :pr:`24539` 由 :user:`Tim Head ` 提交。 - |Fix| 对于 :class:`model_selection.GridSearchCV` 和 :class:`model_selection.RandomizedSearchCV` ,与 nan 分数对应的排名将全部设置为最大可能排名。 :pr:`24543` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.multioutput` .......................... - |Feature| 为类添加了布尔标志 `verbose` : :class:`multioutput.ClassifierChain` 和 :class:`multioutput.RegressorChain` 。 :pr:`23977` 由 :user:`Eric Fiegel ` 、 :user:`Chiara Marmo ` 、 :user:`Lucy Liu ` 和 :user:`Guillaume Lemaitre ` 贡献。 :mod:`sklearn.naive_bayes` .......................... - |Feature| 为所有朴素贝叶斯分类器添加了 `predict_joint_log_proba` 方法。 :pr:`23683` 由 :user:`Andrey Melnik ` 贡献。 - |Enhancement| 为 :class:`naive_bayes.BernoulliNB` 、:class:`naive_bayes.ComplementNB` 、 :class:`naive_bayes.CategoricalNB` 和 :class:`naive_bayes.MultinomialNB` 添加了新参数 `force_alpha` , 允许用户将参数 alpha 设置为一个非常小的数字,大于或等于 0,而之前会自动更改为 `1e-10` 。 :pr:`16747` 由 :user:`arka204` 贡献, :pr:`18805` 由 :user:`hongshaoyang` 贡献, :pr:`22269` 由 :user:`Meekail Zain ` 贡献。 :mod:`sklearn.neighbors` ........................ - |Feature| 添加了新函数 :func:`neighbors.sort_graph_by_row_values` , 用于对 CSR 稀疏图进行排序,使得每行按递增值存储。 这对于在使用预计算的稀疏距离矩阵时提高效率非常有用,并避免 `EfficiencyWarning` 。 :pr:`23139` 由 `Tom Dupre la Tour`_ 贡献。 - |Efficiency| :class:`neighbors.NearestCentroid` 更快且需要的内存更少,因为它更好地利用了 CPU 缓存来计算预测。 :pr:`24645` 由 :user:`Olivier Grisel ` 贡献。 - |Enhancement| :class:`neighbors.KernelDensity` 的带宽参数现在接受使用 Scott 和 Silverman 估计方法的定义。 :pr:`10468` 由 :user:`Ruben ` 贡献,:pr:`22993` 由 :user:`Jovan Stojanovic ` 贡献。 - |Enhancement| `neighbors.NeighborsBase` 现在接受 Minkowski 半度量(即当 :math:`0 < p < 1` 时, 对于 `metric="minkowski"` )用于 `algorithm="auto"` 或 `algorithm="brute"` 。 :pr:`24750` 由 :user:`Rudresh Veerkhare ` 提交 - |Fix| :class:`neighbors.NearestCentroid` 现在在拟合时会抛出一个信息丰富的错误消息, 而不是在预测时出现一个低级错误消息。 :pr:`23874` 由 :user:`Juan Gomez <2357juan>` 提交。 - |Fix| 默认设置 `n_jobs=None` (而不是 `1` )为 :class:`neighbors.KNeighborsTransformer` 和 :class:`neighbors.RadiusNeighborsTransformer` 。 :pr:`24075` 由 :user:`Valentin Laurent ` 提交。 - |Enhancement| :class:`neighbors.LocalOutlierFactor` 现在保留 `numpy.float32` 输入的 dtype。 :pr:`22665` 由 :user:`Julien Jerphanion ` 提交。 :mod:`sklearn.neural_network` ............................. - |Fix| :class:`neural_network.MLPClassifier` 和 :class:`neural_network.MLPRegressor` 始终公开参数 `best_loss_` 、 `validation_scores_` 和 `best_validation_score_` 。当 `early_stopping=True` 时, `best_loss_` 设置为 `None` ,而 `validation_scores_` 和 `best_validation_score_` 在 `early_stopping=False` 时设置为 `None` 。 :pr:`24683` 由 :user:`Guillaume Lemaitre ` 提交。 :mod:`sklearn.pipeline` ....................... - |Enhancement| :meth:`pipeline.FeatureUnion.get_feature_names_out` 现在可以在 :class:`pipeline.FeatureUnion` 中的一个转换器是 `"passthrough"` 时使用。 :pr:`24058` 由 :user:`Diederik Perdok ` 提交 - |Enhancement| :class:`pipeline.FeatureUnion` 类现在有一个 `named_transformers` 属性,用于按名称访问转换器。 :pr:`20331` 由 :user:`Christopher Flynn ` 提交。 :mod:`sklearn.preprocessing` ............................ - |Enhancement| :class:`preprocessing.FunctionTransformer` 将始终尝试设置 `n_features_in_` 和 `feature_names_in_` ,无论 `validate` 参数如何。 :pr:`23993` 由 `Thomas Fan`_ 提交。 - |Fix| :class:`preprocessing.LabelEncoder` 在 `transform` 中正确编码 NaNs。 :pr:`22629` 由 `Thomas Fan`_ 提交。 - |API| :class:`preprocessing.OneHotEncoder` 的 `sparse` 参数现已弃用,并将在版本 1.4 中移除。请改用 `sparse_output` 。 :pr:`24412` 由 :user:`Rushil Desai ` 提交。 :mod:`sklearn.svm` .................. - |API| :class:`svm.NuSVR` 、:class:`svm.SVR` 、:class:`svm.OneClassSVM` 的 `class_weight_` 属性现已弃用。 :pr:`22898` 由 :user:`Meekail Zain ` 提交。 :mod:`sklearn.tree` ................... - |Enhancement| :func:`tree.plot_tree` 、:func:`tree.export_graphviz` 现在使用小写的 `x[i]` 来表示特征 `i` 。 :pr:`23480` 由 `Thomas Fan`_ 提交。 :mod:`sklearn.utils` .................... - |Feature| 一个新的模块暴露了开发工具,用于发现 scikit-learn 中的估计器(即 :func:`utils.discovery.all_estimators` )、显示器(即 :func:`utils.discovery.all_displays` )和函数(即 :func:`utils.discovery.all_functions` )。 :pr:`21469` 由 :user:`Guillaume Lemaitre ` 提交。 - |Enhancement| :func:`utils.extmath.randomized_svd` 现在接受一个参数 `lapack_svd_driver` ,用于指定随机 SVD 算法内部使用的确定性 SVD 所用的 LAPACK 驱动程序。 :pr:`20617` 由 :user:`Srinath Kailasa ` 提交。 - |Enhancement| :func:`utils.validation.column_or_1d` 现在接受一个 `dtype` 参数,用于指定 `y` 的数据类型。 :pr:`22629` 由 `Thomas Fan`_ 提交。 - |Enhancement| `utils.extmath.cartesian` 现在接受具有不同 `dtype` 的数组,并将输出转换为最宽松的 `dtype` 。 :pr:`25067` 由 :user:`Guillaume Lemaitre ` 提交。 - |Fix| :func:`utils.multiclass.type_of_target` 现在正确处理稀疏矩阵。 :pr:`14862` 由 :user:`Léonard Binet ` 提交。 - |Fix| 当估计器类作为 `get_params` 中的值时,HTML 表示不再出错。 :pr:`24512` 由 `Thomas Fan`_ 提交。 - |Fix| :func:`utils.estimator_checks.check_estimator` 现在考虑了 正确处理 `requires_positive_X` 标签。:pr:`24667` 由 `Thomas Fan`_ 提交。 - |Fix| :func:`utils.check_array` 现在支持包含 `pd.NA` 的 Pandas Series, 通过抛出更好的错误信息或返回兼容的 `ndarray` 。 :pr:`25080` 由 `Thomas Fan`_ 提交。 - |API| :func:`utils.extmath.density` 的额外关键字参数已弃用, 并将在 1.4 版本中移除。 :pr:`24523` 由 :user:`Mia Bajic ` 提交。 .. rubric:: 代码和文档贡献者 感谢自 1.1 版本以来为项目的维护和改进做出贡献的每一个人,包括: 2357juan, 3lLobo, Adam J. Stewart, Adam Kania, Adam Li, Aditya Anulekh, Admir Demiraj, adoublet, Adrin Jalali, Ahmedbgh, Aiko, Akshita Prasanth, Ala-Na, Alessandro Miola, Alex, Alexandr, Alexandre Perez-Lebel, Alex Buzenet, Ali H. El-Kassas, aman kumar, Amit Bera, András Simon, Andreas Grivas, Andreas Mueller, Andrew Wang, angela-maennel, Aniket Shirsat, Anthony22-dev, Antony Lee, anupam, Apostolos Tsetoglou, Aravindh R, Artur Hermano, Arturo Amor, as-90, ashah002, Ashwin Mathur, avm19, Azaria Gebremichael, b0rxington, Badr MOUFAD, Bardiya Ak, Bartłomiej Gońda, BdeGraaff, Benjamin Bossan, Benjamin Carter, berkecanrizai, Bernd Fritzke, Bhoomika, Biswaroop Mitra, Brandon TH Chen, Brett Cannon, Bsh, cache-missing, carlo, Carlos Ramos Carreño, ceh, chalulu, Changyao Chen, Charles Zablit, Chiara Marmo, Christian Lorentzen, Christian Ritter, Christian Veenhuis, christianwaldmann, Christine P. Chai, Claudio Salvatore Arcidiacono, Clément Verrier, crispinlogan, Da-Lan, DanGonite57, Daniela Fernandes, DanielGaerber, darioka, Darren Nguyen, davidblnc, david-cortes, David Gilbertson, David Poznik, Dayne, Dea María Léon, Denis, Dev Khant, Dhanshree Arora, Diadochokinetic, diederikwp, Dimitri Papadopoulos Orfanos, Dimitris Litsidis, drewhogg, Duarte OC, Dwight Lindquist, Eden Brekke, Edern, Edoardo Abati, Eleanore Denies, EliaSchiavon, Emir, ErmolaevPA, Fabrizio Damicelli, fcharras, Felipe Siola, Flynn, francesco-tuveri, Franck Charras, ftorres16, Gael Varoquaux, Geevarghese George, genvalen, GeorgiaMayDay, Gianr Lazz, Gleb Levitski, Glòria Macià Muñoz, Guillaume Lemaitre, Guillem García Subies, Guitared, gunesbayir, Haesun Park, Hansin Ahuja, Hao Chun Chang, Harsh Agrawal, harshit5674, hasan-yaman, henrymooresc, Henry Sorsky, Hristo Vrigazov, htsedebenham, humahn, i-aki-y, Ian Thompson, Ido M, Iglesys, Iliya Zhechev, Irene, ivanllt, Ivan Sedykh, Jack McIvor, jakirkham, JanFidor, Jason G, Jérémie du Boisberranger, Jiten Sidhpura, jkarolczak, João David, JohnathanPi, John Koumentis, John P, John Pangas, johnthagen, Jordan Fleming, Joshua Choo Yun Keat, Jovan Stojanovic, Juan Carlos Alfaro Jiménez, juanfe88, Juan Felipe Arias, JuliaSchoepp, Julien Jerphanion, jygerardy, ka00ri, Kanishk Sachdev, Kanissh, Kaushik Amar Das, Kendall, Kenneth Prabakaran, Kento Nozawa, kernc, Kevin Roice, Kian Eliasi, Kilian Kluge, Kilian Lieret, Kirandevraj, Kraig, krishna kumar, krishna vamsi, Kshitij Kapadni, Kshitij Mathur, Lauren Burke, Léonard Binet, lingyi1110, Lisa Casino, Logan Thomas, Loic Esteve, Luciano Mantovani, Lucy Liu, Maascha, Madhura Jayaratne, madinak, Maksym, Malte S. Kurz, Mansi Agrawal, Marco Edward Gorelli, Marco Wurps, Maren Westermann, Maria Telenczuk, Mario Kostelac, martin-kokos, Marvin Krawutschke, Masanori Kanazu, mathurinm, Matt Haberland, mauroantonioserrano, Max Halford, Maxi Marufo, maximeSaur, Maxim Smolskiy, Maxwell, m. bou, Meekail Zain, Mehgarg, mehmetcanakbay, Mia Bajić, Michael Flaks, Michael Hornstein, Michel de Ruiter, Michelle Paradis, Mikhail Iljin, Misa Ogura, Moritz Wilksch, mrastgoo, Naipawat Poolsawat, Naoise Holohan, Nass, Nathan Jacobi, Nawazish Alam, Nguyễn Văn Diễn, Nicola Fanelli, Nihal Thukarama Rao, Nikita Jare, nima10khodaveisi, Nima Sarajpoor, nitinramvelraj, NNLNR, npache, Nwanna-Joseph, Nymark Kho, o-holman, Olivier Grisel, Olle Lukowski, Omar Hassoun, Omar Salman, osman tamer, ouss1508, Oyindamola Olatunji, PAB, Pandata, partev, Paulo Sergio Soares, Petar Mlinarić, Peter Jansson, Peter Steinbach, Philipp Jung, Piet Brömmel, Pooja M, Pooja Subramaniam, priyam kakati, puhuk, Rachel Freeland, Rachit Keerti Das, Rafal Wojdyla, Raghuveer Bhat, Rahil Parikh, Ralf Gommers, ram vikram singh, Ravi Makhija, Rehan Guha, Reshama Shaikh, Richard Klima, Rob Crockett, Robert Hommes, Robert Juergens, Robin Lenz, Rocco Meli, Roman4oo, Ross Barnowski, Rowan Mankoo, Rudresh Veerkhare, Rushil Desai, Sabri Monaf Sabri, Safikh, Safiuddin Khaja, Salahuddin, Sam Adam Day, Sandra Yojana Meneses, Sandro Ephrem, Sangam, SangamSwadik, SANJAI_3, SarahRemus, Sashka Warner, SavkoMax, Scott Gigante, Scott Gustafson, Sean Atukorala, sec65, SELEE, seljaks, Shady el Gewily, Shane, shellyfung, Shinsuke Mori, Shiva chauhan, Shoaib Khan, Shogo Hida, Shrankhla Srivastava, Shuangchi He, Simon, sonnivs, Sortofamudkip, Srinath Kailasa, Stanislav (Stanley) Modrak, Stefanie Molin, stellalin7, Stéphane Collot, Steven Van Vaerenbergh, Steve Schmerler, Sven Stehle, Tabea Kossen, TheDevPanda, the-syd-sre, Thijs van Weezel, Thomas Bonald, Thomas Germer, Thomas J. Fan, Ti-Ion, Tim Head, Timofei Kornev, toastedyeast, Tobias Pitters, Tom Dupré la Tour, tomiock, Tom Mathews, Tom McTiernan, tspeng, Tyler Egashira, Valentin Laurent, Varun Jain, Vera Komeyer, Vicente Reyes-Puerta, Vinayak Mehta, Vincent M, Vishal, Vyom Pathak, wattai, wchathura, WEN Hao, William M, x110, Xiao Yuan, Xunius, yanhong-zhao-ef, Yusuf Raji, Z Adil Khwaja, zeeshan lone