版本0.20#
警告
0.20版是scikit-learn支持Python 2.7和Python 3.4的最后一个版本。Scikit-learn 0.21需要Python 3.5或更高版本。
换象传说
Major Feature 一些你以前做不到的大事。
Feature 一些你以前做不到的事情。
Efficiency 现有功能现在可能不需要那么多的计算或内存。
Enhancement 一个杂七杂八的小改进。
Fix 以前没有按照记录或合理预期发挥作用的事情现在应该起作用了。
API Change 您需要更改您的代码才能在将来产生相同的效果;或者将来将删除某个功能。
版本0.20.4#
July 30, 2019
这是一个错误修复版本,其中一些错误修复应用于版本0.20.3。
Changelog#
joblib的捆绑版本从0.13.0升级到0.13.2。
sklearn.cluster#
Fix 修复了中的一个错误
cluster.KMeans其中KMeans++初始化很少会导致Index错误。 #11756 通过 Joel Nothman .
sklearn.compose#
Fix 修复了中的一个问题
compose.ColumnTransformer其中使用列顺序不同的数据框架fit和transform可能会导致将错误的列悄悄传递到remainderTransformer。 #14237 通过Andreas Schuderer <schuderer>.
sklearn.decomposition#
Fix 修复了中的一个错误
cross_decomposition.CCA提高数字稳定性时Yis close to zero. #13903 by Thomas Fan .
sklearn.model_selection#
Fix 修复了一个错误,
model_selection.StratifiedKFold用相同的random_state,制作shuffle=True无效。 #13124 通过 Hanmin Qin .
sklearn.neighbors#
Fix 修复了中的一个错误
neighbors.KernelDensity如果不能从泡菜中恢复过来sample_weight被利用了。 #13772 通过 Aditya Vyas .
版本0.20.3#
March 1, 2019
这是一个错误修复版本,对0.20.0中发布的功能进行了一些小的文档改进和增强。
Changelog#
sklearn.cluster#
Fix 修复了中的一个错误
cluster.KMeans其中计算是单线程的,n_jobs > 1或n_jobs = -1. #12949 通过 Prabakaran Kumaresshan .
sklearn.compose#
Fix 修复了中的一个错误
compose.ColumnTransformer处理变压器列列表中的负索引。 #12946 通过 Pierre Tallotte .
sklearn.covariance#
Fix 修复了回归
covariance.graphical_lasso使案件n_features=2处理正确。 #13276 通过 Aurélien Bellet .
sklearn.decomposition#
Fix 修复了中的一个错误
decomposition.sparse_encode其中计算是单线程的,n_jobs > 1或n_jobs = -1. #13005 通过 Prabakaran Kumaresshan .
sklearn.datasets#
Efficiency
sklearn.datasets.fetch_openml现在通过流式加载数据,避免高内存使用。 #13312 通过 Joris Van den Bossche .
sklearn.feature_extraction#
Fix Fixed a bug in
feature_extraction.text.CountVectorizerwhich would result in the sparse feature matrix having conflictingindptrandindicesprecisions under very large vocabularies. #11295 by Gabriel Vacaliuc.
sklearn.impute#
Fix 添加对非数字数据的支持
sklearn.impute.MissingIndicator这是不支持的,sklearn.impute.SimpleImputer支持这一观点的一些归因策略。 #13046 通过 Guillaume Lemaitre .
sklearn.linear_model#
Fix 修复了中的一个错误
linear_model.MultiTaskElasticNet和linear_model.MultiTaskLasso当它们被打破时warm_start = True. #12360 通过 Aakanksha Joshi .
sklearn.preprocessing#
Fix 修复了中的一个错误
preprocessing.KBinsDiscretizer哪里strategy='kmeans'由于垃圾箱边缘未排序,转换期间出现错误。 #13134 通过 Sandro Casagrande .Fix 修复了中的一个错误
preprocessing.OneHotEncoder在那里,categorical_features与之结合处理不当handle_unknown='ignore'. #12881 通过 Joris Van den Bossche .Fix 宽度太小的箱(即,<= 1 e-8)已删除,并在中发出警告
preprocessing.KBinsDiscretizer. #13165 通过 Hanmin Qin .
sklearn.svm#
Fix 修复了中的一个错误
svm.SVC,svm.NuSVC,svm.SVR,svm.NuSVR和svm.OneClassSVM其中scale参数选项gamma被错误地定义为1 / (n_features * X.std()).现在它被定义为1 / (n_features * X.var()). #13221 通过 Hanmin Qin .
代码和文档贡献者#
感谢:
Adrin Jalali、Agamemnon Krasoulis、Albert Thomas、Andreas Mueller、Aurélien Bellet、bertrandhaut、Bharat Raghunathan、Dowon、Emmanuel Arias、Fibinse Xavier、Finn O ' Shea、Gabriel Varoquaux、Guillaume Lemaitre、Hanmin Qin、joaak、Joel Nothman、Joris Van den Bossche、Jérémie Méhault、kms 15、Kossori Aruku、Lakshya KD、maikia、Manuel López-Ibáñez、Marco Gorelli、mferrari 3、Mickaël Schoentgen、Nicolas Hug、pavlos kallis、Pierre Glaser、pierretalupe、Prabakaran Kumaresshan、Resshama Shaikh、Rohit Kapoor、Roman Yurchak、SandroCasagrande、Tashay Green、Thomas Fan、Visshaal Kapoor、Zhuyi Xu、Zijie(ZJ)Poh
版本0.20.2#
December 20, 2018
这是一个错误修复版本,对0.20.0中发布的功能进行了一些小的文档改进和增强。
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
sklearn.neighbors当metric=='jaccard'(bug修复)使用
'seuclidean'或'mahalanobis'某些情况下的指标(错误修复)
Changelog#
sklearn.compose#
Fix 修复了中的一个问题
compose.make_column_transformer当列为pandas Index或pandas Series时,会引发意外错误。 #12704 通过 Hanmin Qin .
sklearn.metrics#
Fix 修复了中的一个错误
metrics.pairwise_distances和metrics.pairwise_distances_chunked其中参数V的"seuclidean"和VI的"mahalanobis"指标是在将数据分成块后计算的,而不是对整个数据预先计算的。 #12701 通过 Jeremie du Boisberranger .
sklearn.neighbors#
Fix 固定
sklearn.neighbors.DistanceMetricjaccard距离函数在比较两个全零载体时返回0。 #12685 通过 Thomas Fan .
sklearn.utils#
Fix 调用
utils.check_array对pandas.Serieswith categorical data, which raised an error in 0.20.0, now returns the expected output again. #12699 by Joris Van den Bossche .
代码和文档贡献者#
感谢:
adanhawh、Adrin Jalali、Albert Thomas、Andreas Mueller、Dan Stine、Feda Curic、Hanmin Qin、Jan S、jeremiedbb、Joel Nothman、Joris Van den Bossche、josephsalon、Katrin Leinweber、Loic Esteve、Muhammad Hassaan Rafique、Nicolas Hug、Olivier Grisel、Paul Paczuski、Reshama Shaikh、Sam Waterbury、Shivam Kotwalia、Thomas Fan
版本0.20.1#
November 21, 2018
这是一个错误修复版本,对0.20.0中发布的功能进行了一些小的文档改进和增强。请注意,我们还在此版本中包含了一些API更改,因此在从0.20.0更新到0.20.1后,您可能会收到一些额外的警告。
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
decomposition.IncrementalPCA(bug修复)
Changelog#
sklearn.cluster#
Efficiency 使
cluster.MeanShift不再尝试执行嵌套并行,因为当n_jobs > 1. #12159 通过 Olivier Grisel .Fix 修复了中的一个错误
cluster.DBSCAN使用预先计算的稀疏邻居图,即使已经存在,它也会在对角线上显式添加零。 #12105 通过 Tom Dupre la Tour .
sklearn.compose#
Fix 修复了中的一个问题
compose.ColumnTransformer堆叠类型无法转换为数字的列时。 #11912 通过 Adrin Jalali .API Change
compose.ColumnTransformer现在适用sparse_threshold即使所有转换结果都是稀疏的。 #12304 通过 Andreas Müller .API Change
compose.make_column_transformer现在预计(transformer, columns)而不是(columns, transformer)保持一致compose.ColumnTransformer. #12339 通过 Adrin Jalali .
sklearn.datasets#
Fix
datasets.fetch_openml正确使用本地缓存。 #12246 通过 Jan N. van Rijn .Fix
datasets.fetch_openml正确处理忽略属性和行id属性。 #12330 通过 Jan N. van Rijn .Fix 固定的integer溢出
datasets.make_classification的值的n_informative参数大于64。 #10811 通过 Roman Feldbauer .Fix 修复奥利韦蒂面临数据集
DESCR属性指向中的正确位置datasets.fetch_olivetti_faces. #12441 通过 Jérémie du BoisberrangerFix
datasets.fetch_openml从本地缓存读取失败时重试下载。 #12517 通过 Thomas Fan .
sklearn.decomposition#
Fix 修复了回归
decomposition.IncrementalPCA其中,如果用于匹配IncrementalPCA的最终批次中的样本数量小于n_components,则0.20.0会出现错误。 #12234 通过 Ming Li .
sklearn.ensemble#
Fix 修复了主要影响的错误
ensemble.RandomForestClassifier哪里class_weight='balanced_subsample'超过32堂课失败。 #12165 通过 Joel Nothman .Fix 修复了影响
ensemble.BaggingClassifier,ensemble.BaggingRegressor和ensemble.IsolationForest,在哪里max_features有时会四舍五入为零。 #12388 通过 Connor Tann .
sklearn.feature_extraction#
Fix 修复了v0.20.0中的回归,其中
feature_extraction.text.CountVectorizer和其他文本向量化器在使用自定义预处理器或标记化器进行停止词验证期间可能出错。 #12393 通过 Roman Yurchak .
sklearn.linear_model#
Fix
linear_model.SGDClassifier和变体early_stopping=True在多类情况下不会使用一致的验证拆分,当使用这些估计器作为并行参数搜索或交叉验证的一部分时,这会导致崩溃。 #12122 通过 Olivier Grisel .Fix 修复了影响
linear_model.SGDClassifier在多类情况下。每个一一对抗所有步骤都在joblib.Parallel调用和变异公共参数,如果在后台使用进程而不是线程调用,则会导致分段错误。我们现在使用require=sharedmem在joblib.Parallel实例创建。 #12518 通过 Pierre Glaser 和 Olivier Grisel .
sklearn.metrics#
Fix 修复了中的一个错误
metrics.pairwise.pairwise_distances_argmin_min当指标参数设置为“欧几里得”时,它返回距离的平方根。 #12481 通过 Jérémie du Boisberranger .Fix 修复了中的一个错误
metrics.pairwise.pairwise_distances_chunked这并不能确保欧几里得距离的对角线为零。 #12612 通过 Andreas Müller .API Change 的
metrics.calinski_harabaz_score已重命名为metrics.calinski_harabasz_score并将在0.23版本中删除。 #12211 通过 Lisa Thomas , Mark Hannel 和 Melissa Ferrari .
sklearn.mixture#
Fix 确保
fit_predict方法mixture.GaussianMixture和mixture.BayesianGaussianMixture始终产生与以下一致的作业fit其次是predict即使收敛标准太宽松或未满足。 #12451 通过 Olivier Grisel .
sklearn.neighbors#
Fix 强制后台并行
threading为neighbors.KDTree和neighbors.BallTree在Python 2.7中,以避免由于方法的序列化而导致的pickle错误。 #12171 通过 Thomas Moreau .
sklearn.preprocessing#
Fix 修复了
preprocessing.OrdinalEncoder当通过手动指定的类别时。 #12365 通过 Joris Van den Bossche .Fix Fixed bug in
preprocessing.KBinsDiscretizerwhere thetransformmethod mutates the_encoderattribute. Thetransformmethod is now thread safe. #12514 by Hanmin Qin.Fix 修复了中的一个错误
preprocessing.PowerTransformer其中Yeo-Johnson变换对于外部的Lambda参数不正确[0, 2]#12522 通过 Nicolas Hug .Fix 修复了中的一个错误
preprocessing.OneHotEncoder当设置为忽略不同长度的未知麻木字符串时,转换失败 #12471 通过 Gabriel Marzinotto .API Change 的默认值
method论点preprocessing.power_transform将由box-cox到yeo-johnson以匹配preprocessing.PowerTransformer在0.23版本中。使用默认值时会引发FutureWarning。 #12317 通过 Eric Chang .
sklearn.utils#
Fix 将float 64用于平均累加器,以避免中的浮点精度问题
preprocessing.StandardScaler和decomposition.IncrementalPCA使用float 32数据集时。 #12338 通过 bauks .Fix 调用
utils.check_array对pandas.Series, which raised an error in 0.20.0, now returns the expected output again. #12625 by Andreas Müller
杂项#
Fix 当通过设置环境变量使用站点jobib时
SKLEARN_SITE_JOBLIB, added compatibility with joblib 0.11 in addition to 0.12+. #12350 by Joel Nothman 和 Roman Yurchak .Fix 确保避免抚养
FutureWarning打电话时np.vstack使用numpy 1.16及更高版本(在scikit-learn代码库的许多位置使用列表解析而不是生成器表达)。 #12467 通过 Olivier Grisel .API Change 删除所有提及的
sklearn.externals.joblib,以及中暴露的废弃jobib方法sklearn.utils,除了utils.parallel_backendandutils.register_parallel_backend, which allow users to configure parallel computation in scikit-learn. Other functionalities are part of joblib .包,并应通过安装直接使用。此更改的目标是为在未来版本的scikit-learn中解除joblib做好准备。 #12345 通过 Thomas Moreau
代码和文档贡献者#
感谢:
^_,Adrin Jalali,Andrea Navarbite,Andreas Mueller,bauks,BenjaStudio,Cheuk Ting Ho,Connossor,Corey Levinson,Dan Stine,daten-kieker,Denis Kataev,Dillon Gardner,Dmitry Vukolov,Dougal J. Sutherland,Edward J Brown,Eric Chang,Federico Caselli,Gabriel Marzinotto,Gael Varoquaux,GauravAhlawat,Gustavo De Mari Pereira,Hanmin Qin,haroldfox,JackLangerman,Jacopo Notarstefano,janvanrijn,jethurens,jeremiedb、Joel Nothman、Joris Van den Bossche、Koen、Kushal Chauhan、Lee Yi Jie Joel、Lily Xiong、mail-liam、Mark Hannel、melsyt、Ming Li、Nicholas Smith、Nicolas Hug、Nikolay Shebanov、Oleksandr Pavlyk、Olivier Grisel、Peter Hausamann、Pierre Glaser、PulKit Maloo、Quentin Batista、Radostin Stoyanov、Ramil Nugmanov、Rebekah Kim、Reshama Shaikh、Rohan Singh、Roman Feldbauer、Roman Yurchak、Rooopam Sharma、Sam Waterbury、Scott Lowe、Sebastian Raschka、Stephen Tierney、SylvainLan、TakingItCasual、Thomas Fan、Thomas Moreau、Tom Dupré la Tour、Tulio Casagrande、Utkarsh Upadhyay、Xing Han Lu、Yaroslav Halchenko、Zach Miller
版本0.20.0#
September 25, 2018
该版本包含了Scikit-learn库的大量错误修复、功能和增强,以及对文档和示例的改进。感谢我们的贡献者!
本版本旨在纪念拉格哈夫·拉贾戈帕兰。
亮点#
我们试图改善对常见数据科学用例的支持,包括缺失值、分类变量、异类数据以及具有异常分布的特征/目标。由NaN表示的特征中的缺失值现在在按列预处理(例如缩放器)中被接受。每个特征的匹配不考虑NaN,并且可以转换包含NaN的数据。新 sklearn.impute 尽管数据缺失,模块仍为学习提供估计器。
ColumnTransformer 处理pandas.DataFrame的不同功能或列需要不同预处理的情况。字符串或pandas现在可以用以下方式编码分类列 OneHotEncoder 或 OrdinalEncoder .
TransformedTargetRegressor 当回归目标需要转换才能建模时,这会有所帮助。 PowerTransformer 和 KBinsDiscretizer 加入 QuantileTransformer 作为非线性变换。
Beyond this, we have added sample_weight support to several estimators
(including KMeans, BayesianRidge and
KernelDensity) and improved stopping criteria in others
(including MLPRegressor,
GradientBoostingRegressor and
SGDRegressor).
该版本也是第一个伴随着 常用术语和API元素词汇表 开发 Joel Nothman .该术语表是一个参考资源,旨在帮助用户和贡献者熟悉Scikit-learn中使用的术语和惯例。
如果您的贡献没有成为亮点,我很抱歉。这里有很多.
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
cluster.MeanShift(bug修复)decomposition.IncrementalPCA在Python 2中(错误修复)decomposition.SparsePCA(bug修复)ensemble.GradientBoostingClassifier(bug修复影响功能重要性的问题)isotonic.IsotonicRegression(bug修复)linear_model.ARDRegression(bug修复)linear_model.Perceptron(bug修复)linear_model.SGDClassifier(bug修复)linear_model.SGDRegressor(bug修复)metrics.roc_auc_score(bug修复)metrics.roc_curve(bug修复)neural_network.BaseMultilayerPerceptron(bug修复)neural_network.MLPClassifier(bug修复)neural_network.MLPRegressor(bug修复)v0.19.0发布说明没有提及与的向后不兼容
model_selection.StratifiedKFold当shuffle=True由于 #7823 .
详细信息见下面的变更日志。
(虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。
已知的主要bug#
#11924 :
linear_model.LogisticRegressionCV与solver='lbfgs'和multi_class='multinomial'在macOS上可能是不确定的或以其他方式损坏的。Travis CI服务器上似乎就是这种情况,但尚未在个人MacBook上得到证实!此问题在之前的版本中曾存在过。#9354 :
metrics.pairwise.euclidean_distances(在整个库中多次使用)给出的结果精度较差,这特别影响其与32位浮点输入的使用。当某些算法被更改以避免将32位数据转换为64位时,这在0.18和0.19版本中变得更加问题。
Changelog#
对Python 3.3的支持已正式放弃。
sklearn.cluster#
Major Feature
cluster.AgglomerativeClustering现在通过以下方式支持单链接集群linkage='single'. #9372 通过 Leland McInnes 和 Steve Astels .Feature
cluster.KMeans和cluster.MiniBatchKMeans现在通过新参数支持样本权重sample_weight在fit功能 #10933 通过 Johannes Hansen .Efficiency
cluster.KMeans,cluster.MiniBatchKMeans和cluster.k_means通过了algorithm='full'现在强制行主要排序,改善运行时间。 #10471 通过 Gaurav Dhingra .Efficiency
cluster.DBSCAN现在是并行化,根据n_jobs无论algorithm. #8003 通过 Joël Billaud .Enhancement
cluster.KMeans现在,如果发现的不同集群的数量小于n_clusters.当数据集中不同点的数量实际上小于一个正在寻找的集群数量时,可能会发生这种情况。 #10059 通过 Christian Braune .Fix 修复了一个错误
fit方法cluster.AffinityPropagation在不收敛的情况下,将集群中心存储为3D阵列而不是2D阵列。对于同一类,在所有样本具有相同相似性的训练数据的情况下修复了未定义和任意行为。 #9612 .通过 Jonatan Samoocha .Fix 修复了中的一个错误
cluster.spectral_clustering其中频谱的正规化是使用除而不是乘。 #8129 通过 Jan Margeta , Guillaume Lemaitre ,而且 Devansh D. .Fix 修复了中的一个错误
cluster.k_means_elkan返回的地方iteration比正确值小1。还补充了失踪的n_iter_的文档字符串中的属性cluster.KMeans. #11353 通过 Jeremie du Boisberranger .Fix 修复了中的一个错误
cluster.mean_shift其中,如果存在多个强度相同的集群,则分配的标签不确定。 #11901 通过 Adrin Jalali .API Change 弃用
pooling_func中未使用的参数cluster.AgglomerativeClustering. #9875 通过 Kumar Ashutosh .
sklearn.compose#
新模块。
Major Feature 添加
compose.ColumnTransformer,它允许将不同的转换器应用于不同的数组列或pandas DataFrame。 #9012 通过 Andreas Müller 和 Joris Van den Bossche ,而且 #11315 通过 Thomas Fan .Major Feature 添加了
compose.TransformedTargetRegressor它在匹配回归模型之前转换目标y。预测通过逆变换映射回原始空间。 #9041 通过 Andreas Müller 和 Guillaume Lemaitre .
sklearn.covariance#
Efficiency 对以下方面的改进
covariance.GraphicalLasso. #9858 通过 Steven Brown .API Change 的
covariance.graph_lasso,covariance.GraphLasso和covariance.GraphLassoCV已更名为covariance.graphical_lasso,covariance.GraphicalLasso和covariance.GraphicalLassoCV分别将在0.22版本中删除。 #9993 通过 Artiem Krinitsyn
sklearn.datasets#
Major Feature 添加
datasets.fetch_openml从获取数据集 OpenML . OpenML是一个免费、开放的数据共享平台,将用于代替mldata,因为它提供更好的服务可用性。 #9908 通过 Andreas Müller 和 Jan N. van Rijn .Feature 在
datasets.make_blobs,现在可以将列表传递给n_samples参数指示每个集群要生成的样本数。 #8617 通过 Maskani Filali Mohamed 和 Konstantinos Katrioplas .Feature 添加
filename属性来sklearn.datasets有CSV文件的。 #9101 通过 alex-33 和 Maskani Filali Mohamed .Feature
return_X_y参数已添加到多个数据集加载器中。 #10774 通过 Chris Catalfo .Fix 修复了中的一个错误
datasets.load_boston它有错误的数据点。 #10795 通过 Takeshi Yoshizawa .Fix 修复了中的一个错误
datasets.load_iris它有两个错误的数据点。 #11082 通过 Sadhana Srinivasan 和 Hanmin Qin .Fix 修复了中的一个错误
datasets.fetch_kddcup99,其中数据没有正确洗牌。 #9731 通过 Nicolas Goix .Fix 修复了中的一个错误
datasets.make_circles,其中不能生成奇数个数据点。 #10045 通过 Christian Braune .API Change 弃用
sklearn.datasets.fetch_mldatato be removed in version 0.22. mldata.org is no longer operational. Until removal it will remain possible to load cached datasets. #11466 by Joel Nothman .
sklearn.decomposition#
Feature
decomposition.dict_learning功能和模型现在支持积极性约束。这适用于字典和稀疏代码。 #6374 通过 John Kirkham .Feature Fix
decomposition.SparsePCAnow exposesnormalize_components. When set to True, the train and test data are centered with the train mean respectively during the fit phase and the transform phase. This fixes the behavior of SparsePCA. When set to False, which is the default, the previous abnormal behaviour still holds. The False value is for backward compatibility and should not be used. #11585 by Ivan Panico.Efficiency 效率提高
decomposition.dict_learning. #11420 和其他由 John Kirkham .Fix 修复中的无信息错误
decomposition.IncrementalPCA:现在,如果组件数量大于选择的批量大小,则会引发错误。的n_components=None案例进行了相应的调整。 #6452 .通过 Wally Gauze .Fix 修复了一个错误
partial_fit方法decomposition.IncrementalPCA在Python 2上使用了整除而不是浮点数。 #9492 通过 James Bourbeau .Fix 在
decomposition.PCA选择大于采样数的n_components参数现在会引发错误。同样,n_components=Nonecase现在选择最小值n_samples和n_features. #8484 通过 Wally Gauze .Fix 修复了中的一个错误
decomposition.PCA当用户出现大型数据集时,n_components='mle'在Python 3版本上。 #9886 通过 Hanmin Qin .Fix 修复了计算KL偏差时的下溢
decomposition.NMF#10142 通过 Tom Dupre la Tour .Fix 修复了中的一个错误
decomposition.SparseCoder当使用只读内存映射数据结构并行运行OMP稀疏编码时。 #5956 通过 Vighnesh Birodkar 和 Olivier Grisel .
sklearn.discriminant_analysis#
Efficiency 内存使用率改进
_class_meansand_ 类_cover ' in :mod:`sklearn.discriminant_analysis. #10898 通过 Nanxin Chen .
sklearn.dummy#
Feature
dummy.DummyRegressor现在手上有一return_std选择在其predict法返回的标准差将为零。Feature
dummy.DummyClassifier和dummy.DummyRegressor现在只需要X是一个具有有限长度或形状的物体。 #9832 通过 Vrishank Bhardwaj .Feature
dummy.DummyClassifier和dummy.DummyRegressor现在可以在不提供测试样本的情况下评分。 #11951 通过 Rüdiger Busche .
sklearn.ensemble#
Feature
ensemble.BaggingRegressor和ensemble.BaggingClassifier现在可以用X和/或多输出Y中的缺失/非有限值来适应,以支持执行自己插补的包装管道。 #9707 通过 Jimmy Wan .Feature
ensemble.GradientBoostingClassifier和ensemble.GradientBoostingRegressor现在支持提前停止通过n_iter_no_change,validation_fraction和tol. #7071 通过 Raghav RVFeature 添加
named_estimators_参数ensemble.VotingClassifier以访问合适的估计器。 #9157 通过 Herilalaina Rakotoarison .Fix 修复了试穿时的错误
ensemble.GradientBoostingClassifier或ensemble.GradientBoostingRegressor与warm_start=True由于CSC矩阵未转换为CSR格式,此前提出了分段错误decision_function.同样,在稠密情况下,Forrester排序数组会转换为C排序数组。 #9991 通过 Guillaume Lemaitre .Fix 修复了中的一个错误
ensemble.GradientBoostingRegressor和ensemble.GradientBoostingClassifier对特征重要性进行总和并进行规范化,而不是在每棵树的基础上进行规范化。之前的行为过度强调了后期出现的特征的基尼重要性。此问题只影响功能的重要性。 #11176 通过 Gil Forsyth .API Change 的默认值
n_estimators参数ensemble.RandomForestClassifier,ensemble.RandomForestRegressor,ensemble.ExtraTreesClassifier,ensemble.ExtraTreesRegressor,而且ensemble.RandomTreesEmbedding将从0.20版本中的10更改为0.22版本中的100。使用默认值时会引发FutureWarning。 #11542 通过 Anna Ayzenshtat .API Change 衍生自
ensemble.BaseBagging.属性estimators_samples_将返回包含为每个引导程序选择的索引的数组列表,而不是包含为每个引导程序选择的样本掩码的数组列表。索引允许重复采样,而掩码不允许此功能。 #9524 通过 Guillaume Lemaitre .Fix
ensemble.BaseBagging无法确定性地繁殖fit结果是当random_state已设置。 #9723 通过 Guillaume Lemaitre .
sklearn.feature_extraction#
Feature 启用呼叫
get_feature_names在不合身的feature_extraction.text.CountVectorizer用词汇初始化。 #10908 通过 Mohamed Maskani .Enhancement
idf_现在可以设置在feature_extraction.text.TfidfTransformer. #10899 通过 Sergey Melderis .Fix 修复了中的一个错误
feature_extraction.image.extract_patches_2d如果出现以下情况,则会引发异常max_patches大于或等于所有可能补丁的数量,而不是简单地返回可能补丁的数量。 #10101 通过 Varun AgrawalFix 修复了中的一个错误
feature_extraction.text.CountVectorizer,feature_extraction.text.TfidfVectorizer,feature_extraction.text.HashingVectorizer支持处理具有超过2·10个字节令牌(字或n元语法)的大型数据集所需的64位稀疏数组索引。 #9147 通过 Claes-Fredrik Mannby 和 Roman Yurchak .Fix 修复了
feature_extraction.text.TfidfVectorizer它忽略了参数dtype.此外,feature_extraction.text.TfidfTransformer将保留dtype如果出现浮动并提出警告dtype请求的是integer。 #10441 通过 Mayur Kulkarni 和 Guillaume Lemaitre .
sklearn.feature_selection#
Feature 添加了精选K最佳功能功能,
feature_selection.SelectFromModel. #6689 通过 Nihar Sheth 和 Quazi Rahman .Feature 添加
min_features_to_select参数以feature_selection.RFECV绑定已评估的特征计数。 #11293 通过 Brent Yi .Feature
feature_selection.RFECV的贴合方法现在支持 groups . #9656 通过 Adam Greenhall .Fix 固定计算
n_features_to_compute对于简历成绩并列的边缘情况feature_selection.RFECV. #9222 通过 Nick Hoh .
sklearn.gaussian_process#
Efficiency 在
gaussian_process.GaussianProcessRegressor、方法predict使用时更快return_std=True尤其是连续多次呼叫时更是如此。 #9234 通过 andrewww 和 Minghui Liu .
sklearn.impute#
New module, adopting
preprocessing.Imputerasimpute.SimpleImputerwith minor changes (see under preprocessing below).Major Feature 添加
impute.MissingIndicator它生成缺失值的二进制指示符。 #8075 通过 Maniteja Nandana 和 Guillaume Lemaitre .Feature 的
impute.SimpleImputer有了新的策略,'constant',用固定值来完成缺失的值,由fill_value参数.此策略支持数字和非数字数据,'most_frequent'现在的策略。 #11211 通过 Jeremie du Boisberranger .
sklearn.isotonic#
Fix 修复了中的一个错误
isotonic.IsotonicRegression当将模型与涉及具有相同X值的点的数据进行匹配时,它错误地组合了权重。 #9484 通过 Dallas Card
sklearn.linear_model#
Feature
linear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressor和linear_model.Perceptron现在暴露early_stopping,validation_fraction和n_iter_no_change参数,以停止优化监控验证集上的分数。新的学习率"adaptive"策略每次将学习率除以5n_iter_no_change连续的时代未能改善模型。 #9043 通过 Tom Dupre la Tour .Feature 添加
sample_weight参数与的匹配方法linear_model.BayesianRidge用于加权线性回归。 #10112 通过 Peter St. John .Fix 修复了中的一个错误
logistic.logistic_regression_path为了确保返回的系数正确multiclass='multinomial'.以前,一些系数会相互叠加,导致不正确的结果linear_model.LogisticRegressionCV. #11724 通过 Nicolas Hug .Fix 修复了中的一个错误
linear_model.LogisticRegression其中使用参数时multi_class='multinomial',predict_proba在二元结果的情况下,该方法返回不正确的概率。 #9939 通过 Roger Westover .Fix 修复了中的一个错误
linear_model.LogisticRegressionCV其中score方法始终计算准确性,而不是scoring参数. #10998 通过 Thomas Fan .Fix 修复了中的一个错误
linear_model.LogisticRegressionCV其中“ovr”策略始终用于计算多类设置中的交叉验证分数,即使'multinomial'已定。 #8720 通过 William de Vazelhes .Fix 修复了中的一个错误
linear_model.OrthogonalMatchingPursuit设置时坏了normalize=False. #10071 通过 Alexandre Gramfort .Fix 修复了中的一个错误
linear_model.ARDRegression这导致标准差和系数的估计更新不正确。 #10153 通过 Jörg Döpfert .Fix 修复了中的一个错误
linear_model.ARDRegression和linear_model.BayesianRidge这导致NaN预测时,拟合一个恒定的目标。 #10095 通过 Jörg Döpfert .Fix 修复了中的一个错误
linear_model.RidgeClassifierCV其中参数store_cv_values尽管记录在cv_values作为为不同阿尔法设置交叉验证值存储的一种方式。 #10297 通过 Mabel Villalba-Jiménez .Fix 修复了中的一个错误
linear_model.ElasticNet这导致使用参数时输入被重写copy_X=True和check_input=False. #10581 通过 Yacine Mazari .Fix 修复了中的一个错误
sklearn.linear_model.Lasso当系数的形状错误时fit_intercept=False. #10687 通过 Martin Hahn .Fix 修复了中的一个错误
sklearn.linear_model.LogisticRegression其中multi_class='multinomial'带二进制输出with warm_start=True#10836 通过 Aishwarya Srinivasan .Fix 修复了中的一个错误
linear_model.RidgeCV其中使用integeralphas提出了一个错误。 #10397 通过 Mabel Villalba-Jiménez .Fix 固定条件触发差距计算
linear_model.Lasso和linear_model.ElasticNet在处理稀疏矩阵时。 #10992 通过 Alexandre Gramfort .Fix 修复了中的一个错误
linear_model.SGDClassifier,linear_model.SGDRegressor,linear_model.PassiveAggressiveClassifier,linear_model.PassiveAggressiveRegressor和linear_model.Perceptron,其中停止标准是在收敛之前停止算法。的参数n_iter_no_change已添加并默认设置为5。先前的行为等效于将参数设置为1。 #9043 通过 Tom Dupre la Tour .Fix 修复了一个错误,即如果传递具有64位索引的scipy.sparse矩阵,liblinear和基于libsvm的估计器将segfault。他们现在提出ValueHelp。 #11327 通过 Karan Dhingra 和 Joel Nothman .
API Change 的默认值
solver和multi_class参数linear_model.LogisticRegression将分别从'liblinear'和'ovr'在0.20版本中,'lbfgs'和'auto'在0.22版本中。使用默认值时会引发FutureWarning。 #11905 通过 Tom Dupre la Tour 和 Joel Nothman .API Change 弃用
positive=True选项linear_model.Lars因为底层实现被破坏了。使用linear_model.Lasso而不是. #9837 通过 Alexandre Gramfort .API Change
n_iter_可能与之前的版本有所不同,linear_model.LogisticRegression与solver='lbfgs'和linear_model.HuberRegressor.对于Scipy <= 1.0.0,优化器可以执行超过请求的最大迭代次数。现在两个估计器最多只能报告max_iter即使执行了更多迭代。 #10723 通过 Joel Nothman .
sklearn.manifold#
Efficiency 加快中“exact”和“barnes_hut”方法的改进
manifold.TSNE. #10593 和 #10610 通过 Tom Dupre la Tour .Feature 支持稀疏输入
manifold.Isomap.fit. #8554 通过 Leland McInnes .Feature
manifold.t_sne.trustworthiness接受欧几里得以外的指标。 #9775 通过 William de Vazelhes .Fix 修复了中的一个错误
manifold.spectral_embedding其中频谱的正规化是使用除而不是乘。 #8129 通过 Jan Margeta , Guillaume Lemaitre ,而且 Devansh D. .API Change Feature Deprecate
precomputedparameter in functionmanifold.t_sne.trustworthiness. Instead, the new parametermetricshould be used with any compatible metric including 'precomputed', in which case the input matrixXshould be a matrix of pairwise distances or squared distances. #9775 by William de Vazelhes.API Change Deprecate
precomputedparameter in functionmanifold.t_sne.trustworthiness. Instead, the new parametermetricshould be used with any compatible metric including 'precomputed', in which case the input matrixXshould be a matrix of pairwise distances or squared distances. #9775 by William de Vazelhes.
sklearn.metrics#
Major Feature 添加了
metrics.davies_bouldin_score用于在没有基本事实的情况下评估集群模型的指标。 #10827 通过 Luis Osa .Major Feature 添加了
metrics.balanced_accuracy_score度量和相应的'balanced_accuracy'二进制和多类分类的评分器。 #8066 通过 @xyguo 和 Aman Dalmia ,而且 #10587 通过 Joel Nothman .Feature 通过以下方式获得部分AUT
max_fpr参数metrics.roc_auc_score. #3840 通过 Alexander Niederbühl .Feature 得分手基于
metrics.brier_score_loss完美的享受放松 #9521 通过 Hanmin Qin .Feature 添加了对规范化的控制
metrics.normalized_mutual_info_score和metrics.adjusted_mutual_info_score经由average_method参数.在0.22版中,每个的默认规范化器将成为 arithmetic 每个聚类的熵的平均值。 #11124 通过 Arya McCarthy .Feature 添加
output_dict参数metrics.classification_report将分类统计信息作为字典返回。 #11160 通过 Dan Barkhorn .Feature
metrics.classification_report现在报告给定数据的所有适用平均值,包括微观、宏观和加权平均值以及多标签数据的样本平均值。 #11679 通过 Alexander Pacha .Feature
metrics.average_precision_score现在支持二进制y_true除了{0, 1}或{-1, 1}通过pos_label参数. #9980 通过 Hanmin Qin .Feature
metrics.label_ranking_average_precision_score现在支持sample_weight. #10845 通过 Jose Perez-Parras Toledano .Feature 添加
dense_output参数以metrics.pairwise.linear_kernel.当False且两个输入都是稀疏的时,将返回一个稀疏矩阵。 #10999 通过 Taylor G Smith .Efficiency
metrics.silhouette_score和metrics.silhouette_samples内存效率更高,运行速度更快。这可以避免一些报告的冻结和MemoryErrors。 #11135 通过 Joel Nothman .Fix 修复了中的一个错误
metrics.precision_recall_fscore_support截断后range(n_labels)作为值传递labels. #10377 通过 Gaurav Dhingra .Fix 修复了中因浮点错误而导致的错误
metrics.roc_auc_score具有非整样本权重。 #9786 通过 Hanmin Qin .Fix 修复了一个错误,
metrics.roc_curve有时从y轴开始,而不是(0,0),这与文档和其他实现不一致。请注意,这不会影响结果metrics.roc_auc_score#10093 通过 alexryndin 和 Hanmin Qin .Fix 修复了一个错误以避免integer溢出。将产品铸造为64位整入
metrics.mutual_info_score. #9772 通过 Kumar Ashutosh .Fix 修复了一个错误,
metrics.average_precision_score有时会回来nan当sample_weight包含0。 #9980 通过 Hanmin Qin .Fix 修复了中的一个错误
metrics.fowlkes_mallows_score以避免integer溢出。铸造的返回值contingency_matrix到int64并且计算平方根的乘积而不是乘积的平方根。 #9515 通过 Alan Liddell 和 Manh Dao .API Change 弃用
reorder参数metrics.auc因为它不再需要metrics.roc_auc_score.此外,使用reorder=True可以隐藏由于输入中的浮点错误而引起的错误。 #9851 通过 Hanmin Qin .API Change 在
metrics.normalized_mutual_info_score和metrics.adjusted_mutual_info_score,警告说,average_method将有一个新的默认值。在0.22版中,每个的默认规范化器将成为 arithmetic 每个聚类的熵的平均值。目前,metrics.normalized_mutual_info_score使用默认值average_method='geometric',而且metrics.adjusted_mutual_info_score使用默认值average_method='max'以匹配0.19版本中的行为。 #11124 通过 Arya McCarthy .API Change 的
batch_size参数以metrics.pairwise_distances_argmin_min和metrics.pairwise_distances_argmin建议在v0.22中删除。它不再有任何影响,因为批量大小由全局决定working_memoryconfig.看到 限制工作记忆 . #10280 通过 Joel Nothman 和 Aman Dalmia .
sklearn.mixture#
Feature 附加功能 fit_predict 到
mixture.GaussianMixture和mixture.GaussianMixture,本质上相当于打电话 fit 和 predict . #10336 通过 Shu Haoran 和 Andrew Peng .Fix 修复了中的一个错误
mixture.BaseMixture据报道,n_iter_错过了一个迭代。它影响mixture.GaussianMixture和mixture.BayesianGaussianMixture. #10740 通过 Erich Schubert 和 Guillaume Lemaitre .Fix 修复了中的一个错误
mixture.BaseMixture及其子类mixture.GaussianMixture和mixture.BayesianGaussianMixture其中lower_bound_不是所有初始化的最大下限(当n_init > 1),但只是上次初始化的下限。 #10869 通过 Aurélien Géron .
sklearn.model_selection#
Feature 添加
return_estimator参数model_selection.cross_validate返回适合每个分裂的估计量。 #9686 通过 Aurélien Bellet .Feature 新
refit_time_属性将存储在model_selection.GridSearchCV和model_selection.RandomizedSearchCV如果refit设置为True.这将允许测量执行超参数优化和重新调整整个数据集的最佳模型所需的完整时间。 #11310 通过 Matthias Feurer .Feature Expose
error_scoreparameter inmodel_selection.cross_validate,model_selection.cross_val_score,model_selection.learning_curveandmodel_selection.validation_curveto control the behavior triggered when an error occurs inmodel_selection._fit_and_score. #11576 by Samuel O. Ronsin.Feature
BaseSearchCVnow has an experimental, private interface to support customized parameter search strategies, through its ``_ run_search '方法。请参阅中的实现model_selection.GridSearchCV和model_selection.RandomizedSearchCV如果您使用此功能,请提供反馈。请注意,我们不保证此API在0.20版本之后的稳定性。 #9599 通过 Joel NothmanEnhancement 添加改进的错误消息
model_selection.cross_val_score当传递多个指标时scoring关键字 #11006 通过 Ming Li .API Change 默认交叉验证折叠数
cv以及默认拆分数n_splits在model_selection.KFold- 类似拆分器将在0.22内从3更改为5,因为3-fold具有很大的变化。 #11557 通过 Alexandre Boucaud .API Change 违约
iid参数model_selection.GridSearchCV和model_selection.RandomizedSearchCV将从True到False在0.22版本中,以对应交叉验证的标准定义,并且该参数将在0.24版本中完全删除。当交叉验证中不同测试集的大小非常不平等时,即在基于群体的简历策略中,该参数具有最大的实际意义。 #9085 通过 Laurent Direr 和 Andreas Müller .API Change 的默认值
error_score参数model_selection.GridSearchCV和model_selection.RandomizedSearchCV将更改为np.NaN在0.22版本中。 #10677 通过 Kirill Zhdanovich .API Change 中引发的Changed Value错误异常
model_selection.ParameterSampler如果类以更大的值实例化,则将其添加到用户警告n_iter大于参数网格中参数的总空间。n_iter现在充当迭代的上限。 #10982 通过 Juliet LawtonAPI Change 的输入无效
model_selection.ParameterGrid现在引发TypeError。 #10928 通过 Solutus Immensus
sklearn.multioutput#
Major Feature 添加
multioutput.RegressorChain用于多目标回归。 #9257 通过 Kumar Ashutosh .
sklearn.naive_bayes#
Major Feature 添加
naive_bayes.ComplementNB,它实现了Rennie等人(2003)中描述的Complement Naive Bayes分类器。 #8190 通过 Michael A. Alcorn .Feature 添加
var_smoothing参数naive_bayes.GaussianNB以精确控制方差计算。 #9681 通过 Dmitry Mottl .Fix 修复了中的一个错误
naive_bayes.GaussianNB这错误地引发了先前列表的错误,其总和为1。 #10005 通过 Gaurav Dhingra .Fix 修复了中的一个错误
naive_bayes.MultinomialNB它不接受向值伪计数(Alpha)。 #10346 通过 Tobias Madsen
sklearn.neighbors#
Efficiency
neighbors.RadiusNeighborsRegressor和neighbors.RadiusNeighborsClassifier现在根据n_jobs无论algorithm. #10887 通过 Joël Billaud .Efficiency
sklearn.neighbors查询方法现在的内存效率更高,algorithm='brute'. #11136 通过 Joel Nothman 和 Aman Dalmia .Feature 添加
sample_weight参数与的匹配方法neighbors.KernelDensity以启用核密度估计中的加权。 #4394 通过 Samuel O. Ronsin .Feature 新颖性检测
neighbors.LocalOutlierFactor:添加一个novelty参数以neighbors.LocalOutlierFactor.当novelty设置为True,neighbors.LocalOutlierFactor然后可用于新奇性检测,即预测新的未见数据。可用的预测方法有predict,decision_function和score_samples.默认情况下,novelty设置为False,而且只有fit_predict方法可用。通过 Albert Thomas .Fix 修复了中的一个错误
neighbors.NearestNeighbors其中,当a)使用的距离度量是可调用的并且b)对NearestNeighbors模型的输入是稀疏的时,对NearestNeighbors模型的匹配失败。 #9579 通过 Thomas Kober .Fix 修复了一个错误,
predict在neighbors.RadiusNeighborsRegressor使用非均匀权重时可以处理空邻居集。当未找到样本的邻居时,还会发出新的警告。 #9655 通过 Andreas Bjerre-Nielsen .Fix Efficiency Fixed a bug in
KDTreeconstruction that results in faster construction and querying times. #11556 by Jake VanderPlasFix 修复了中的一个错误
neighbors.KDTree和neighbors.BallTree其中腌制的树对象将其类型更改为超级类BinaryTree. #11774 通过 Nicolas Hug .
sklearn.neural_network#
Feature 添加
n_iter_no_change参数neural_network.BaseMultilayerPerceptron,neural_network.MLPRegressor,而且neural_network.MLPClassifier控制不满足的最大历元数tol改进. #9456 通过 Nicholas Nadeau .Fix 修复了中的一个错误
neural_network.BaseMultilayerPerceptron,neural_network.MLPRegressor,而且neural_network.MLPClassifier用新n_iter_no_change参数现在从之前硬编码的2变为10。 #9456 通过 Nicholas Nadeau .Fix 修复了中的一个错误
neural_network.MLPRegressor由于局部最小值或波动,合身意外提前退出。 #9456 通过 Nicholas Nadeau
sklearn.pipeline#
Feature 的
predict方法pipeline.Pipeline现在将关键字参数传递给管道的最后一个估计器,从而允许使用参数,例如return_std谨慎进行管道。 #9304 通过 Breno Freitas .API Change
pipeline.FeatureUnion现在支持'drop'as a Transformer to drop下降features功能. #11144 通过 Thomas Fan .
sklearn.preprocessing#
Major Feature 扩大
preprocessing.OneHotEncoder允许使用一热(或哑)编码方案将类别字符串要素编码为数字数组,并添加preprocessing.OrdinalEncoder转换为有序的数字。这两个类现在处理所有要素类型的编码(还处理字符串值要素),并根据要素中的唯一值而不是要素中的最大值来推导类别。 #9151 和 #10521 通过 Vighnesh Birodkar 和 Joris Van den Bossche .Major Feature 添加
preprocessing.KBinsDiscretizer用于将连续特征转化为分类或一次性编码特征。 #7668 , #9647 , #10195 , #10192 , #11272 , #11467 和 #11505 .通过 Henry Lin , Hanmin Qin , Tom Dupre la Tour 和 Giovanni Giuseppe Costa .Major Feature 添加
preprocessing.PowerTransformer,它实现了Yeo-Johnson和Box-Cox权力转换。功率变换尝试找到一组按特征的参数变换,以将数据大致映射到以零为中心且具有单位方差的高斯分布。在需要正态性和同质性的情况下,这作为方差稳定转换是有用的。 #10210 通过 Eric Chang 和 Maniteja Nandana ,而且 #11520 通过 Nicolas Hug .Major Feature NaN值被忽略并通过以下预处理方法处理:
preprocessing.MaxAbsScaler,preprocessing.MinMaxScaler,preprocessing.RobustScaler,preprocessing.StandardScaler,preprocessing.PowerTransformer,preprocessing.QuantileTransformer类和preprocessing.maxabs_scale,preprocessing.minmax_scale,preprocessing.robust_scale,preprocessing.scale,preprocessing.power_transform,preprocessing.quantile_transform分别在问题中解决的职能 #11011 , #11005 , #11308 , #11206 , #11306 ,而且 #10437 .通过 Lucija Gregov 和 Guillaume Lemaitre .Feature
preprocessing.PolynomialFeatures现在支持稀疏输入。 #10452 通过 Aman Dalmia 和 Joel Nothman .Feature
preprocessing.RobustScaler和preprocessing.robust_scale可以使用稀疏矩阵进行匹配。 #11308 通过 Guillaume Lemaitre .Feature
preprocessing.OneHotEncoder现在支持get_feature_namesmethod to obtain the transformed feature names. #10181 by Nirvan Anjirbag and Joris Van den Bossche .Feature 的参数
check_inverse添加至preprocessing.FunctionTransformer确保func和inverse_func是彼此相反的。 #9399 通过 Guillaume Lemaitre .Feature 的
transform方法sklearn.preprocessing.MultiLabelBinarizer现在忽略任何未知类。系统会发出警告,指出发现的未知类将被忽略。 #10913 通过 Rodrigo Agundez .Fix 修复了中的错误
preprocessing.LabelEncoder这有时会出现错误时transform或inverse_transform使用空数组调用。 #10458 通过 Mayur Kulkarni .Fix 修复值错误
preprocessing.LabelEncoder当使用inverse_transform在看不见的标签上。 #9816 通过 Charlie Newey .Fix 修复错误
preprocessing.OneHotEncoder它抛弃了dtype当返回稀疏矩阵输出时。 #11042 通过 Daniel Morales .Fix 修复
fit和partial_fit在preprocessing.StandardScaler在很少的情况下with_mean=False和with_std=False呼叫时崩溃了fit并给出不一致的结果,mean_无论输入是稀疏矩阵还是密集矩阵。mean_将被设置为None具有稀疏和密集输入。n_samples_seen_也将报告这两种输入类型。 #11235 通过 Guillaume Lemaitre .API Change 弃用
n_values和categorical_features参数和active_features_,feature_indices_和n_values_属性preprocessing.OneHotEncoder.的n_values参数可以替换为新的categories参数,以及带有新的categories_属性使用选择分类特征categorical_features现在使用compose.ColumnTransformer. #10521 通过 Joris Van den Bossche .API Change 弃用
preprocessing.Imputer并将相应的模块移动到impute.SimpleImputer. #9726 通过 Kumar Ashutosh .API Change 的
axis中的参数preprocessing.Imputer中不再存在impute.SimpleImputer.该行为相当于axis=0(沿着列估算)。行插补可以使用FunctionTransformer执行(例如,FunctionTransformer(lambda X: SimpleImputer().fit_transform(X.T).T)). #10829 通过 Guillaume Lemaitre 和 Gilberto Olimpio .API Change 缺失值的NaN标记已在
preprocessing.Imputer和impute.SimpleImputer.missing_values='NaN'现在应该missing_values=np.nan. #11211 通过 Jeremie du Boisberranger .API Change 在
preprocessing.FunctionTransformer,默认的validate将从True到False0.22。 #10655 通过 Guillaume Lemaitre .
sklearn.svm#
Fix 修复了中的一个错误
svm.SVC当争论时kernel是Python 2中的unicode,predict_proba给定密集输入,方法会引发意外的类型错误。 #10412 通过 Jiongyan Zhang .API Change 弃用
random_state参数svm.OneClassSVM因为底层实现不是随机的。 #9497 通过 Albert Thomas .API Change 的默认值
gamma参数svm.SVC,NuSVC,SVR,NuSVR,OneClassSVM将从'auto'到'scale'在0.22版本中,以更好地考虑未缩放的功能。 #8361 通过 Gaurav Dhingra 和 Ting Neo .
sklearn.tree#
Enhancement 虽然是私有的(因此不能保证API的稳定性),
tree._criterion.ClassificationCriterion和tree._criterion.RegressionCriterion现在可以导入和扩展。 #10325 通过 Camil Staps .Fix 修复了中的一个错误
tree.BaseDecisionTree与splitter="best"当X中的值接近无限时,分裂阈值可能会变得无限。 #10536 通过 Jonathan Ohayon .Fix 修复了中的一个错误
tree.MAE以确保在计算树木MAE杂质期间使用样本权重。先前的行为可能会导致选择次优分离,因为杂质计算认为所有样本的重量重要性相同。 #11464 通过 John Stott .
sklearn.utils#
Feature
utils.check_array和utils.check_X_y现在有accept_large_sparse以控制是否应拒绝具有64位索引的scipy.sparse矩阵。 #11327 通过 Karan Dhingra 和 Joel Nothman .Efficiency Fix Avoid copying the data in
utils.check_arraywhen the input data is a memmap (andcopy=False). #10663 by Arthur Mensch and Loïc Estève.API Change
utils.check_array产生FutureWarning指示从0.22版本开始,字节/字符串数组将被解释为小数。 #10229 通过 Ryan Lee
多个模块#
Feature API Change More consistent outlier detection API: Add a
score_samplesmethod insvm.OneClassSVM,ensemble.IsolationForest,neighbors.LocalOutlierFactor,covariance.EllipticEnvelope. It allows to access raw score functions from original papers. A newoffset_parameter allows to linkscore_samplesanddecision_functionmethods. Thecontaminationparameter ofensemble.IsolationForestandneighbors.LocalOutlierFactordecision_functionmethods is used to define thisoffset_such that outliers (resp. inliers) have negative (resp. positive)decision_functionvalues. By default,contaminationis kept unchanged to 0.1 for a deprecation period. In 0.22, it will be set to "auto", thus using method-specific score offsets. Incovariance.EllipticEnvelopedecision_functionmethod, theraw_valuesparameter is deprecated as the shifted Mahalanobis distance will be always returned in 0.22. #9015 by Nicolas Goix.Feature API Change A
behaviourparameter has been introduced inensemble.IsolationForestto ensure backward compatibility. In the old behaviour, thedecision_functionis independent of thecontaminationparameter. A threshold attribute depending on thecontaminationparameter is thus used. In the new behaviour thedecision_functionis dependent on thecontaminationparameter, in such a way that 0 becomes its natural threshold to detect outliers. Setting behaviour to "old" is deprecated and will not be possible in version 0.22. Beside, the behaviour parameter will be removed in 0.24. #11553 by Nicolas Goix.API Change 添加了收敛警告,
svm.LinearSVC和linear_model.LogisticRegression当verbose设置为0。 #10881 通过 Alexandre Sevin .API Change 将警告类型更改为
UserWarning到exceptions.ConvergenceWarning因未能融合linear_model.logistic_regression_path,linear_model.RANSACRegressor,linear_model.ridge_regression,gaussian_process.GaussianProcessRegressor,gaussian_process.GaussianProcessClassifier,decomposition.fastica,cross_decomposition.PLSCanonical,cluster.AffinityPropagation,而且cluster.Birch. #10306 通过 Jonathan Siebert .
杂项#
Major Feature A new configuration parameter,
working_memorywas added to control memory consumption limits in chunked operations, such as the newmetrics.pairwise_distances_chunked. See 限制工作记忆. #10280 by Joel Nothman and Aman Dalmia.Feature 的版本
joblib与Scikit-learn捆绑的现在是0.12。这使用了一个新的默认多处理实现,名为 loky .虽然这可能会带来一些内存和通信负担,但它应该比依赖Python标准库多处理提供更好的跨平台稳定性。 #11741 Joblib开发人员,尤其是 Thomas Moreau 和 Olivier Grisel .Feature 添加了一个使用网站jobib而不是供应商的环境变量 (环境变量 ). joblib的主要API现在在
sklearn.utils. #11166 通过 Gael Varoquaux .Feature 添加几乎完整的PyPy 3支持。已知不支持的功能包括
datasets.load_svmlight_file,feature_extraction.FeatureHasher和feature_extraction.text.HashingVectorizer.要在PyPy上运行,需要Pypy 3-v5.10+、Numpy 1.14.0+和scipy 1.1.0+。 #11010 通过 Ronan Lamy 和 Roman Yurchak .Feature 实用方法
sklearn.show_versions添加是为了打印与调试相关的信息。它包括用户系统、Python可执行文件、主库的版本和BLAS绑定信息。 #11596 通过 Alexandre BoucaudFix 修复了元估计器上设置参数时的错误,涉及包装估计器及其参数。 #9999 通过 Marcus Voss 和 Joel Nothman .
Fix 修复了呼叫的错误
sklearn.base.clone不是线程安全的,可能会导致“从空列表弹出”错误。 #9569 通过 Andreas Müller .API Change 的默认值
n_jobs变更1到None在所有相关功能和类中。n_jobs=None意味unset.它通常会被解释为n_jobs=1,除非当前joblib.Parallel后台上下文另有指定(请参阅 Glossary 欲了解更多信息)。请注意,这种变化会立即发生(即,没有弃用周期)。 #11741 通过 Olivier Grisel .Fix 修复了验证助手中传递DaskDataFrame会导致错误的错误。 #12462 通过 Zachariah Miller
估计器检查的更改#
这些变化主要影响库开发人员。
如果估计器实施,现在适用对变压器的检查 transform ,无论它是否继承自
sklearn.base.TransformerMixin. #10474 通过 Joel Nothman .现在检查分类器之间的一致性 decision_function 和分类预测。 #10500 通过 Narine Kokhlikyan .
允许测试
utils.estimator_checks.check_estimator测试接受成对数据的函数。 #9701 通过 Kyle Johnson允许
utils.estimator_checks.check_estimator检查估计器初始化期间除参数外是否没有私人设置。 #9378 通过 Herilalaina Rakotoarison一套检查
utils.estimator_checks.check_estimator现在包括一个check_set_params测试用于检查set_params相当于传递参数__init__并警告是否遇到参数验证。 #7738 通过 Alvin Chiang添加集群指标的不变性测试。 #8102 通过 Ankita Sinha 和 Guillaume Lemaitre .
添加
check_methods_subset_invariance到check_estimator,它检查估计器方法在应用于数据子集时是否不变。 #10428 通过 Jonathan Ohayon添加测试
utils.estimator_checks.check_estimator检查估计器是否可以处理只读memmap输入数据。 #10663 通过 Arthur Mensch 和 Loïc Estève .check_sample_weights_pandas_series现在使用8个而不是6个样本来适应中的默认集群数量cluster.KMeans. #10933 通过 Johannes Hansen .现在检查估算者是否
sample_weight=None相当于sample_weight=np.ones(...). #11558 通过 Sergul Aydore .
代码和文档贡献者#
感谢自0.19版本以来为项目维护和改进做出贡献的所有人,包括:
211217613, Aarshay Jain, absolutelyNoWarranty, Adam Greenhall, Adam Kleczewski, Adam Richie-Halford, adelr, AdityaDaflapurkar, Adrin Jalali, Aidan Fitzgerald, aishgrt1, Akash Shivram, Alan Liddell, Alan Yee, Albert Thomas, Alexander Lenail, Alexander-N, Alexandre Boucaud, Alexandre Gramfort, Alexandre Sevin, Alex Egg, Alvaro Perez-Diaz, Amanda, Aman Dalmia, Andreas Bjerre-Nielsen, Andreas Mueller, Andrew Peng, Angus Williams, Aniruddha Dave, annaayzenshtat, Anthony Gitter, Antonio Quinonez, Anubhav Marwaha, Arik Pamnani, Arthur Ozga, Artiem K, Arunava, Arya McCarthy, Attractadore, Aurélien Bellet, Aurélien Geron, Ayush Gupta, Balakumaran Manoharan, Bangda Sun, Barry Hart, Bastian Venthur, Ben Lawson, Benn Roth, Breno Freitas, Brent Yi, brett koonce, Caio Oliveira, Camil Staps, cclauss, Chady Kamar, Charlie Brummitt, Charlie Newey, chris, Chris, Chris Catalfo, Chris Foster, Chris Holdgraf, Christian Braune, Christian Hirsch, Christian Hogan, Christopher Jenness, Clement Joudet, cnx, cwitte, Dallas Card, Dan Barkhorn, Daniel, Daniel Ferreira, Daniel Gomez, Daniel Klevebring, Danielle Shwed, Daniel Mohns, Danil Baibak, Darius Morawiec, David Beach, David Burns, David Kirkby, David Nicholson, David Pickup, Derek, Didi Bar-Zev, diegodlh, Dillon Gardner, Dillon Niederhut, dilutedsauce, dlovell, Dmitry Mottl, Dmitry Petrov, Dor Cohen, Douglas Duhaime, Ekaterina Tuzova, Eric Chang, Eric Dean Sanchez, Erich Schubert, Eunji, Fang-Chieh Chou, FarahSaeed, felix, Félix Raimundo, fenx, filipj8, FrankHui, Franz Wompner, Freija Descamps, frsi, Gabriele Calvo, Gael Varoquaux, Gaurav Dhingra, Georgi Peev, Gil Forsyth, Giovanni Giuseppe Costa, gkevinyen5418, goncalo-rodrigues, Gryllos Prokopis, Guillaume Lemaitre, Guillaume "Vermeille" Sanchez, Gustavo De Mari Pereira, hakaa1, Hanmin Qin, Henry Lin, Hong, Honghe, Hossein Pourbozorg, Hristo, Hunan Rostomyan, iampat, Ivan PANICO, Jaewon Chung, Jake VanderPlas, jakirkham, James Bourbeau, James Malcolm, Jamie Cox, Jan Koch, Jan Margeta, Jan Schlüter, janvanrijn, Jason Wolosonovich, JC Liu, Jeb Bearer, jeremiedbb, Jimmy Wan, Jinkun Wang, Jiongyan Zhang, jjabl, jkleint, Joan Massich, Joël Billaud, Joel Nothman, Johannes Hansen, JohnStott, Jonatan Samoocha, Jonathan Ohayon, Jörg Döpfert, Joris Van den Bossche, Jose Perez-Parras Toledano, josephsalmon, jotasi, jschendel, Julian Kuhlmann, Julien Chaumond, julietcl, Justin Shenk, Karl F, Kasper Primdal Lauritzen, Katrin Leinweber, Kirill, ksemb, Kuai Yu, Kumar Ashutosh, Kyeongpil Kang, Kye Taylor, kyledrogo, Leland McInnes, Léo DS, Liam Geron, Liutong Zhou, Lizao Li, lkjcalc, Loic Esteve, louib, Luciano Viola, Lucija Gregov, Luis Osa, Luis Pedro Coelho, Luke M Craig, Luke Persola, Mabel, Mabel Villalba, Maniteja Nandana, MarkIwanchyshyn, Mark Roth, Markus Müller, MarsGuy, Martin Gubri, martin-hahn, martin-kokos, mathurinm, Matthias Feurer, Max Copeland, Mayur Kulkarni, Meghann Agarwal, Melanie Goetz, Michael A. Alcorn, Minghui Liu, Ming Li, Minh Le, Mohamed Ali Jamaoui, Mohamed Maskani, Mohammad Shahebaz, Muayyad Alsadi, Nabarun Pal, Nagarjuna Kumar, Naoya Kanai, Narendran Santhanam, NarineK, Nathaniel Saul, Nathan Suh, Nicholas Nadeau, P.Eng., AVS, Nick Hoh, Nicolas Goix, Nicolas Hug, Nicolau Werneck, nielsenmarkus11, Nihar Sheth, Nikita Titov, Nilesh Kevlani, Nirvan Anjirbag, notmatthancock, nzw, Oleksandr Pavlyk, oliblum90, Oliver Rausch, Olivier Grisel, Oren Milman, Osaid Rehman Nasir, pasbi, Patrick Fernandes, Patrick Olden, Paul Paczuski, Pedro Morales, Peter, Peter St. John, pierreablin, pietruh, Pinaki Nath Chowdhury, Piotr Szymański, Pradeep Reddy Raamana, Pravar D Mahajan, pravarmahajan, QingYing Chen, Raghav RV, Rajendra arora, RAKOTOARISON Herilalaina, Rameshwar Bhaskaran, RankyLau, Rasul Kerimov, Reiichiro Nakano, Rob, Roman Kosobrodov, Roman Yurchak, Ronan Lamy, rragundez, Rüdiger Busche, Ryan, Sachin Kelkar, Sagnik Bhattacharya, Sailesh Choyal, Sam Radhakrishnan, Sam Steingold, Samuel Bell, Samuel O. Ronsin, Saqib Nizam Shamsi, SATISH J, Saurabh Gupta, Scott Gigante, Sebastian Flennerhag, Sebastian Raschka, Sebastien Dubois, Sébastien Lerique, Sebastin Santy, Sergey Feldman, Sergey Melderis, Sergul Aydore, Shahebaz, Shalil Awaley, Shangwu Yao, Sharad Vijalapuram, Sharan Yalburgi, shenhanc78, Shivam Rastogi, Shu Haoran, siftikha, Sinclert Pérez, SolutusImmensus, Somya Anand, srajan paliwal, Sriharsha Hatwar, Sri Krishna, Stefan van der Walt, Stephen McDowell, Steven Brown, syonekura, Taehoon Lee, Takanori Hayashi, tarcusx, Taylor G Smith, theriley106, Thomas, Thomas Fan, Thomas Heavey, Tobias Madsen, tobycheese, Tom Augspurger, Tom Dupré la Tour, Tommy, Trevor Stephens, Trishnendu Ghorai, Tulio Casagrande, twosigmajab, Umar Farouk Umar, Urvang Patel, Utkarsh Upadhyay, Vadim Markovtsev, Varun Agrawal, Vathsala Achar, Vilhelm von Ehrenheim, Vinayak Mehta, Vinit, Vinod Kumar L, Viraj Mavani, Viraj Navkal, Vivek Kumar, Vlad Niculae, vqean3, Vrishank Bhardwaj, vufg, wallygauze, Warut Vijitbenjaronk, wdevazelhes, Wenhao Zhang, Wes Barnett, Will, William de Vazelhes, Will Rosenfeld, Xin Xiong, Yiming (Paul) Li, ymazari, Yufeng, Zach Griffith, Zé Vinícius, Zhenqing Hu, Zhiqing Xiao, Zijie (ZJ) Poh