版本0.19#
版本0.19.2#
July, 2018
此版本专门为了支持Python 3.7。
版本0.19.1#
October 23, 2017
这是一个错误修复版本,对0.19.0中发布的功能进行了一些小的文档改进和增强。
请注意,此版本中的TSNE输出可能存在微小差异(由于 #9623 ),在多个样本与某个样本具有相等距离的情况下。
Changelog#
API更改#
撤销了添加的
metrics.ndcg_score
和metrics.dcg_score
该版本已错误合并到0.19.0版本中。 这些实现被破坏且没有记录。return_train_score
它被添加到model_selection.GridSearchCV
,model_selection.RandomizedSearchCV
和model_selection.cross_validate
在0.19.0版中,将在0.21版中将其默认值从True更改为False。 我们发现,在某些情况下,计算训练分数可能会对交叉验证运行时间产生很大影响。 用户应明确设置return_train_score
如果预测或评分功能缓慢,导致对CV运行时间产生有害影响,则为True;如果他们希望使用计算出的分数,则为True。 #9677 通过 Kumar Ashutosh 和 Joel Nothman .correlation_models
和regression_models
遗留的高斯过程的实施已被迟来的废弃。 #9717 通过 Kumar Ashutosh .
Bug修复#
中避免整数溢出
metrics.matthews_corrcoef
. #9693 通过 Sam Steingold .修复了目标函数中的错误
manifold.TSNE
(both精确且具有Barnes-Hut逼近)时n_components >= 3
. #9711 通过 @goncalo-rodrigues .修复回归
model_selection.cross_val_predict
它提出了一个错误,method='predict_proba'
对于一些概率分类器。 #9641 通过 James Bourbeau .修复了一个错误,
datasets.make_classification
修改其输入weights
. #9865 通过 Sachin Kelkar .model_selection.StratifiedShuffleSplit
现在可处理具有超过1000列的多输出多类或多标签数据。 #9922 通过 Charlie Brummitt .修复了嵌套和条件参数设置的错误,例如同时设置管道步骤及其参数。 #9945 通过 Andreas Müller 和 Joel Nothman .
0.19.0中的回归在0.19.1中修复:
修复了随机森林中的并行预测不是线程安全的并且可能(很少)导致任意错误的错误。 #9830 通过 Joel Nothman .
修复回归
model_selection.cross_val_predict
不再被接受的地方X
作为一个列表。 #9600 通过 Rasul Kerimov .固定的处理
model_selection.cross_val_predict
用于二进制分类method='decision_function'
. #9593 通过 Reiichiro Nakano 和核心开发人员。修复回归
pipeline.Pipeline
不再被接受的地方steps
作为一个二元组。 #9604 通过 Joris Van den Bossche .修复错误
n_iter
没有得到适当的反对,离开n_iter
无法暂时使用linear_model.SGDClassifier
,linear_model.SGDRegressor
,linear_model.PassiveAggressiveClassifier
,linear_model.PassiveAggressiveRegressor
和linear_model.Perceptron
. #9558 通过 Andreas Müller .数据集获取器确保在删除临时文件之前关闭它们,这在Windows上导致了错误。 #9847 通过 Joan Massich .
修复了回归
manifold.TSNE
不再支持“欧几里得”和“预计算”以外的指标。 #9623 通过 Oli Blum .
增强功能#
我们的测试套件和
utils.estimator_checks.check_estimator
现在可以在不安装Nose的情况下运行。 #9697 通过 Joan Massich .提高0.19版本的可用性
pipeline.Pipeline
缓存,memory
现在允许joblib.Memory
实例.这利用了新的utils.validation.check_memory
helper. #9584 通过 Kumar Ashutosh使基于新元的估计器中的FutureWarning变得不那么冗长。 #9802 通过 Vrishank Bhardwaj .
代码和文档贡献者#
感谢:
Joel Nothman、Loic Esteve、Andreas Mueller、Kumar Ashutosh、Vrishank Bhardwaj、Hanmin Qin、Rasul Kerimov、James Bourbeau、Nagarjuna Kumar、Nathaniel Saul、Olivier Grisel、Roman Yurchak、Reiichiro Nakano、Sachin Kelkar、Sam Steingold、Yaroslav Halchenko、diegodlh、fount、goncalo-rodrigues、jkleint、oliblum 90、pasbi、Anthony Gitter、Ben Lawson、Charlie Brummitt、Didi Bar-Zev、Gael Varoquaux、Joan Massich、Joris Van den Bossche,尼尔森马克11
版本0.19#
August 12, 2017
亮点#
我们很高兴能够发布一些很棒的新功能,包括 neighbors.LocalOutlierFactor
对于异常检测, preprocessing.QuantileTransformer
用于强大的特征变换, multioutput.ClassifierChain
元估计器简单地考虑多标签问题中类之间的依赖性。我们在现有的估计器中有一些新的算法,例如相乘更新 decomposition.NMF
及多项式 linear_model.LogisticRegression
具有L1损失(使用 solver='saga'
).
交叉验证现在能够返回多个指标评估的结果。新 model_selection.cross_validate
可以返回测试数据以及训练集性能和时间的许多分数,并且我们扩展了 scoring
和 refit
网格/随机搜索的参数 to handle multiple metrics .
您还可以学习得更快。 你比如说 new option to cache transformations 在 pipeline.Pipeline
使管道上的网格搜索(包括缓慢转换)更加高效。 并且您可以更快地预测:如果您确定自己知道自己在做什么,则可以使用 config_context
.
我们还进行了一些重要的修复。 我们已经修复了一个长期存在的实现错误 metrics.average_precision_score
,因此请谨慎使用该函数报告的先前结果。 在一些错误中, manifold.TSNE
实现已修复,特别是在默认的Barnes-Hut逼近中。 semi_supervised.LabelSpreading
和 semi_supervised.LabelPropagation
已经有了实质性的修复。LabelPropagation先前已中断。LabelSpreading现在应该正确地遵守其alpha参数。
更改型号#
以下估计量和函数在与相同的数据和参数进行匹配时,可能会产生与之前版本不同的模型。这种情况通常是由于建模逻辑(错误修复或增强)或随机抽样过程的变化而发生的。
cluster.KMeans
给定稀疏X和初始重心(错误修复)cross_decomposition.PLSRegression
与scale=True
(bug修复)ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
哪里min_impurity_split
已使用(错误修复)梯度提升
loss='quantile'
(bug修复)ensemble.IsolationForest
(bug修复)feature_selection.SelectFdr
(bug修复)linear_model.RANSACRegressor
(bug修复)linear_model.LassoLars
(bug修复)linear_model.LassoLarsIC
(bug修复)manifold.TSNE
(bug修复)neighbors.NearestCentroid
(bug修复)semi_supervised.LabelSpreading
(bug修复)semi_supervised.LabelPropagation
(bug修复)基于树的模型,
min_weight_fraction_leaf
已使用(增强)model_selection.StratifiedKFold
与shuffle=True
(this变化,由于 #7823 当时的发行说明中没有提及)
详细信息见下面的变更日志。
(虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证此列表是完整的。
Changelog#
新功能#
分类器和回归器
添加
multioutput.ClassifierChain
用于多标签分类。通过 Adam Kleczewski .添加求解器
'saga'
它实现了随机平均梯度的改进版本,linear_model.LogisticRegression
和linear_model.Ridge
.它允许使用L1罚分和多项逻辑回归损失,并且在岭和逻辑回归的第一个时期表现略好于“sag”。 #8446 通过 Arthur Mensch .
其他估计数
添加了
neighbors.LocalOutlierFactor
基于最近邻居的异常检测类。 #5279 通过 Nicolas Goix 和 Alexandre Gramfort .添加
preprocessing.QuantileTransformer
阶级和preprocessing.quantile_transform
基于分位数的特征规范化功能。 #8363 通过 Denis Engemann , Guillaume Lemaitre , Olivier Grisel , Raghav RV , Thierry Guillemot ,而且 Gael Varoquaux .新的求解器
'mu'
在中实现多线程更新decomposition.NMF
,允许优化所有β-分歧,包括Frobenius规范、广义Kullback-Leibler分歧和Itakura-Saito分歧。 #5295 通过 Tom Dupre la Tour .
模型选择与评估
model_selection.GridSearchCV
和model_selection.RandomizedSearchCV
现在支持同时评估多个指标。参阅 指定多个指标进行评估 用户指南的部分了解更多信息。 #7388 通过 Raghav RV添加了
model_selection.cross_validate
其允许评估多个度量。该函数返回一个包含交叉验证中更多有用信息的dict,例如训练分数,拟合时间和得分时间。参阅 cross_validate函数和多指标评估 用户指南的部分了解更多信息。 #7388 通过 Raghav RV添加
metrics.mean_squared_log_error
,它计算目标对数变换的均方误差,对于具有指数趋势的目标特别有用。 #7655 通过 Karan Desai .添加
metrics.dcg_score
和metrics.ndcg_score
,计算贴现累积收益(DCG)和标准化贴现累积收益(NDCG)。 #7739 通过 David Gasquez .添加了
model_selection.RepeatedKFold
和model_selection.RepeatedStratifiedKFold
. #8120 通过 Neeraj Gangwar .
杂项
输入数据不包含NaN或inf的验证现在可以通过使用来抑制
config_context
,风险自负。这将节省运行时间,并且对于预测时间可能特别有用。 #7548 通过 Joel Nothman .添加了一个测试以确保文档字符串中的参数列表与函数/类签名匹配。 #9206 通过 Alexandre Gramfort 和 Raghav RV .
增强功能#
树木和合奏
的
min_weight_fraction_leaf
树构造中的约束现在更加高效,如果节点的权重小于2 * 最小值,则采用快速路径将其声明为叶。请注意,构建的树将与之前的版本不同,其中min_weight_fraction_leaf
采用了 #7441 通过 Nelson Liu .ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
现在支持稀疏输入进行预测。 #6101 通过 Ibraim Ganiev .ensemble.VotingClassifier
现在允许使用更改估计器ensemble.VotingClassifier.set_params
.还可以通过将估计器设置为来删除它None
. #7674 通过 Yichuan Liu .tree.export_graphviz
现在显示可配置的小数位数。 #8698 通过 Guillaume Lemaitre .添加
flatten_transform
参数以ensemble.VotingClassifier
改变输出形态transform
方法到2维。 #7794 通过 Ibraim Ganiev 和 Herilalaina Rakotoarison .
线性、核心化和相关模型
linear_model.SGDClassifier
,linear_model.SGDRegressor
,linear_model.PassiveAggressiveClassifier
,linear_model.PassiveAggressiveRegressor
和linear_model.Perceptron
现在暴露max_iter
和tol
参数,以更精确地处理收敛。n_iter
参数已被弃用,并且匹配的估计器暴露了n_iter_
属性,以及收敛前的实际迭代次数。 #5036 通过 Tom Dupre la Tour .添加
average
执行加权平均的参数linear_model.PassiveAggressiveClassifier
. #4939 通过 Andrea Esuli .linear_model.RANSACRegressor
调用时不再抛出错误fit
如果在其第一次迭代中没有找到内点,则该内点将被定位。此外,在新添加的属性中跟踪跳过迭代的原因,n_skips_*
. #7914 通过 Michael Horrell .在
gaussian_process.GaussianProcessRegressor
、方法predict
速度快得多return_std=True
. #8591 通过 Hadrien Bertrand .添加
return_std
到predict
方法linear_model.ARDRegression
和linear_model.BayesianRidge
. #7838 通过 Sergey Feldman .内存使用增强:防止在以下中从float 32转换为float 64:
linear_model.MultiTaskElasticNet
;linear_model.LogisticRegression
当使用Newton-cg求解器时;以及linear_model.Ridge
当使用svd、sparse_cg、sparky或lsqur解算器时。 #8835 , #8061 通过 Joan Massich 和 Nicolas Cordier 和 Thierry Guillemot .
其他预测因素
自定义指标
sklearn.neighbors
二叉树现在有更少的约束:它们必须接受两个1d数组并返回一个浮点数。 #6288 通过 Jake Vanderplas .algorithm='auto
在sklearn.neighbors
估计器现在为所有输入类型和指标选择最合适的算法。 #9145 通过 Herilalaina Rakotoarison 和 Reddy Chinthala .
分解、多维学习和集群
cluster.MiniBatchKMeans
和cluster.KMeans
现在,将数据点分配给最近的集群中心时使用的内存明显减少。 #7721 通过 Jon Crall .decomposition.PCA
,decomposition.IncrementalPCA
和decomposition.TruncatedSVD
现在暴露基础MVD的奇异值。它们存储在属性中singular_values_
,就像在decomposition.IncrementalPCA
. #7685 通过 Tommy Löfstedtdecomposition.NMF
现在更快时beta_loss=0
. #9277 通过 @hongkahjun .方法的内存改进
barnes_hut
在manifold.TSNE
#7089 通过 Thomas Moreau 和 Olivier Grisel .Barnes-Hut的优化调度改进
manifold.TSNE
因此结果更接近参考实现的结果 lvdmaaten/bhtsne 通过 Thomas Moreau 和 Olivier Grisel .内存使用增强:防止在
decomposition.PCA
和decomposition.randomized_svd_low_rank
. #9067 by Raghav RV .
预处理和特征选择
添加
norm_order
参数以feature_selection.SelectFromModel
为了能够选择范数阶,coef_
超过1D。 #6181 通过 Antoine Wendlinger .增加了使用稀疏矩阵的能力
feature_selection.f_regression
与center=True
. #8065 通过 Daniel LeJeune .中的n-gram创建性能略有提高
sklearn.feature_extraction.text
通过循环和特殊外壳一元字母的绑定方法。 #7567 通过 Jaye Doepke放宽对数据的假设
kernel_approximation.SkewedChi2Sampler
.由于Skewed-Chi 2核是在开放间隔上定义的 \((-skewedness; +\infty)^d\) ,转换函数不应检查是否X < 0
但是否X < -self.skewedness
. #7573 通过 Romain Brault .使默认内核参数依赖于内核
kernel_approximation.Nystroem
. #5229 通过 Saurabh Bansod 和 Andreas Müller .
模型评估和元估计量
pipeline.Pipeline
现在能够通过使用memory
构造函数参数。 #7990 通过 Guillaume Lemaitre .pipeline.Pipeline
现在可以作为其属性访问步骤named_steps
属性 #8586 通过 Herilalaina Rakotoarison .添加
sample_weight
参数以pipeline.Pipeline.score
. #7723 通过 Mikhail Korobov .增加了设置的能力
n_jobs
参数以pipeline.make_union
.一TypeError
将为任何其他夸格筹集资金。 #8028 通过 Alexander Booth .model_selection.GridSearchCV
,model_selection.RandomizedSearchCV
和model_selection.cross_val_score
现在允许具有以前禁止的可调用核的估计器。 #8005 通过 Andreas Müller .model_selection.cross_val_predict
现在返回参数所有值的正确形状的输出method
. #7863 通过 Aman Dalmia .添加
shuffle
和random_state
在根据训练规模获取训练数据之前对训练数据进行洗牌的参数model_selection.learning_curve
. #7506 通过 Narine Kokhlikyan .model_selection.StratifiedShuffleSplit
现在可以处理多输出多类(或多标签)数据。 #9044 通过 Vlad Niculae .加快改进速度,
model_selection.StratifiedShuffleSplit
. #5991 通过 Arthur Mensch 和 Joel Nothman .添加
shuffle
参数以model_selection.train_test_split
. #8845 通过 themrmaxmultioutput.MultiOutputRegressor
和multioutput.MultiOutputClassifier
现在支持在线学习使用partial_fit
. :issue:8053
by Peng Yu .添加
max_train_size
参数以model_selection.TimeSeriesSplit
#8282 通过 Aman Dalmia .现在可以通过以下方式获得更多集群指标
metrics.get_scorer
和scoring
参数 #8117 通过 Raghav RV .得分手基于
metrics.explained_variance_score
完美的享受放松 #9259 通过 Hanmin Qin .
Metrics
metrics.matthews_corrcoef
现在支持多类分类。 #8094 通过 Jon Crall .添加
sample_weight
参数以metrics.cohen_kappa_score
. #8335 通过 Victor Poughon .
杂项
utils.estimator_checks.check_estimator
现在尝试确保变换、预测等方法不会在估计器上设置属性。 #7533 通过 Ekaterina Krivich .添加了类型检查
accept_sparse
参数sklearn.utils.validation
方法.该参数现在仅接受布尔值、字符串或字符串列表/字节组。accept_sparse=None
已被废弃,应替换为accept_sparse=False
. #7880 通过 Josh Karnofsky .通过将一定范围的字节传递到,可以加载svmlight格式文件的一大块
datasets.load_svmlight_file
. #935 通过 Olivier Grisel .dummy.DummyClassifier
和dummy.DummyRegressor
现在接受非有限功能。 #8931 通过 @Attractadore .
Bug修复#
树木和合奏
修复了一个错误,
ensemble.IsolationForest
使用了错误的平均路径长度公式 #8549 通过 Peter Wang .Fixed a bug where
ensemble.AdaBoostClassifier
throwsZeroDivisionError
while fitting data with single class labels. #7501 by Dominik Krzeminski.修复了中的一个错误
ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
其中浮动与0.0
使用==
导致了除零错误。 #7970 通过 He Chen .修复一个错误,
ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
无视min_impurity_split
参数. #8006 通过 Sebastian Pölsterl .固定
oob_score
在ensemble.BaggingClassifier
. #8936 通过 Michael Lewis修复了随机森林估计器预测中过度使用内存的问题。 #8672 通过 Mike Benfield .
修复了一个错误,
sample_weight
在Python 2中,一个列表打破了随机森林 #8068 通过 @xor .修复了一个错误,
ensemble.IsolationForest
时失败max_features
小于1. #5732 通过 Ishank Gulati .修复了使用梯度增强的错误
loss='quantile'
负值的计算负误差ytrue - ypred
导致通话时价值观错误__call__
. #8087 通过 Alexis MignonFix a bug where
ensemble.VotingClassifier
raises an error when a numpy array is passed in for weights. #7983 by Vincent Pham.修复了一个错误,
tree.export_graphviz
当features_names的长度与决策树中的n_features不匹配时,引发错误。 #8512 通过 Li Li .
线性、核心化和相关模型
修复了一个错误,
linear_model.RANSACRegressor.fit
可以运行到max_iter
如果它早期发现了一个大的内部群体。 #8251 通过 @aivision2020 .修复了一个错误,
naive_bayes.MultinomialNB
和naive_bayes.BernoulliNB
时失败alpha=0
. #5814 通过 Yichuan Liu 和 Herilalaina Rakotoarison .修复了一个错误,
linear_model.LassoLars
不会给出与R(lars库)中可用的LassoLars实现相同的结果。 #7849 通过 Jair Montoya Martinez .修复了中的一个错误
linear_model.RandomizedLasso
,linear_model.Lars
,linear_model.LassoLars
,linear_model.LarsCV
andlinear_model.LassoLarsCV
, where the parameterprecompute
was not used consistently across classes, and some values proposed in the docstring could raise errors. #5359 by Tom Dupre la Tour .修复之间不一致的结果
linear_model.RidgeCV
和linear_model.Ridge
当使用normalize=True
. #9302 通过 Alexandre Gramfort .修复一个错误,
linear_model.LassoLars.fit
有时连续coef_
作为列表,而不是ndray。 #8160 通过 CJ Carey .修复
linear_model.BayesianRidge.fit
返回山脊参数alpha_
和lambda_
与计算系数一致coef_
和intercept_
. #8224 通过 Peter Gedeck .修复了中的一个错误
svm.OneClassSVM
其中它返回浮点数而不是integer类。 #8676 通过 Vathsala Achar .修复AIC/BIC标准计算
linear_model.LassoLarsIC
. #9022 通过 Alexandre Gramfort 和 Mehmet Basbug .修复了LibLinear实现中的内存泄漏。 #9024 通过 Sergei Lebedev
修复分层简历分配器不起作用的错误
linear_model.LassoCV
. #8973 通过 Paulo Haddad .修复了中的一个错误
gaussian_process.GaussianProcessRegressor
当未经匹配预测的标准差和协方差默认会失败并产生毫无意义的误差时。 #6573 通过 Quazi Marufur Rahman 和 Manoj Kumar .
其他预测因素
修复
semi_supervised.BaseLabelPropagation
to correctly implementLabelPropagation
andLabelSpreading
as done in the referenced papers. #9239 by Andre Ambrosio Boechat, Utkarsh Upadhyay, and Joel Nothman .
分解、多维学习和集群
Fixed the implementation of
manifold.TSNE
:early_exaggeration
参数没有任何影响,现在用于前250次优化迭代。修复了
AssertionError: Tree consistency failed
报告的异常 #8992 .改进学习时间表以匹配参考实现中的学习时间表 lvdmaaten/bhtsne .通过 Thomas Moreau 和 Olivier Grisel .
修复中的错误
decomposition.LatentDirichletAllocation
其中perplexity
方法返回不正确的结果,因为transform
方法返回自0.18版本起的规范化文档主题分布。 #7954 通过 Gary Foreman .修复n_jobs > 1的输出形状和错误
decomposition.SparseCoder
变换和decomposition.sparse_encode
用于一维数据和一个组件。这也影响了decomposition.DictionaryLearning
. #8086 通过 Andreas Müller .Fixed the implementation of
explained_variance_
indecomposition.PCA
,decomposition.RandomizedPCA
anddecomposition.IncrementalPCA
. #9105 by Hanmin Qin.Fixed the implementation of
noise_variance_
indecomposition.PCA
. #9108 by Hanmin Qin.修复了一个错误,
cluster.DBSCAN
当输入是初始行全为零的预先计算的稀疏矩阵时,给出不正确的结果。 #8306 通过 Akshay Gupta修复有关贴合的错误
cluster.KMeans
具有稀疏阵列X和初始重心,其中X的平均值不必要地从重心中减去。 #7872 通过 Josh Karnofsky .修复中的输入验证
covariance.EllipticEnvelope
. #8086 通过 Andreas Müller .修复了中的一个错误
covariance.MinCovDet
其中输入产生奇异协方差矩阵的数据将导致助手方法_c_step
抛出异常。 #3367 通过 Jeremy Steward修复了中的一个错误
manifold.TSNE
影响梯度下降的收敛。 #8768 通过 David DeTomaso .修复了中的一个错误
manifold.TSNE
它存储了不正确的kl_divergence_
. #6507 通过 Sebastian Saeger .修复了不当缩放
cross_decomposition.PLSRegression
与scale=True
. #7819 通过 jayzed82 .cluster.SpectralCoclustering
和cluster.SpectralBiclustering
fit
方法通过接受符合APIy
并返回对象。 #6126 , #7814 通过 Laurent Direr 和 Maniteja Nandana .修复错误
sklearn.mixture
sample
方法没有返回要求的那么多样本。 #7702 通过 Levi John Wolf .修复了中的收缩实现
neighbors.NearestCentroid
. #9219 通过 Hanmin Qin .
预处理和特征选择
For sparse matrices,
preprocessing.normalize
withreturn_norm=True
will now raise aNotImplementedError
with 'l1' or 'l2' norm and with norm 'max' the norms returned will be the same as for dense matrices. #7771 by Ang Lu.修复一个错误,
feature_selection.SelectFdr
没有完全实施Benjamini-Hochberg程序。它以前选择的功能可能比应该选择的功能少。 #7490 通过 Peng Meng .修复了一个错误,
linear_model.RandomizedLasso
和linear_model.RandomizedLogisticRegression
为稀疏输入中断。 #8259 通过 Aman Dalmia .修复一个错误,
feature_extraction.FeatureHasher
强制对散列特征应用稀疏随机投影,防止使用feature_extraction.text.HashingVectorizer
与feature_extraction.text.TfidfTransformer
. #7565 通过 Roman Yurchak .修复一个错误,
feature_selection.mutual_info_regression
没有正确使用n_neighbors
. #8181 通过 Guillaume Lemaitre .
模型评估和元估计量
修复了一个错误,
model_selection.BaseSearchCV.inverse_transform
返回self.best_estimator_.transform()
而不是self.best_estimator_.inverse_transform()
. #8344 通过 Akshay Gupta 和 Rasmus Eriksson .添加
classes_
属性来model_selection.GridSearchCV
,model_selection.RandomizedSearchCV
,grid_search.GridSearchCV
,而且grid_search.RandomizedSearchCV
匹配classes_
属性best_estimator_
. #7661 和 #8295 通过 Alyssa Batula , Dylan Werner-Meier ,而且 Stephen Hoover .修复了一个错误,
model_selection.validation_curve
对每个参数值重复使用相同的估计器。 #7365 通过 Aleksandr Sandrovskii .model_selection.permutation_test_score
现在适用于熊猫类型。 #5697 通过 Stijn Tonk .中输入验证的几个修复
multiclass.OutputCodeClassifier
#8086 通过 Andreas Müller .multiclass.OneVsOneClassifier
的partial_fit
现在确保所有课程都预先提供。 #6250 通过 Asish Panda .修复
multioutput.MultiOutputClassifier.predict_proba
返回2D数组列表,而不是3D数组。如果不同目标列具有不同数量的类,ValueError
会在尝试堆叠具有不同维度的矩阵时提出。 #8093 通过 Peter Bull .交叉验证现在适用于具有只读索引的Pandas数据库。 #9507 通过 Loic Esteve .
Metrics
metrics.average_precision_score
根据 Wikipedia entry . (#7356 ).通过 Nick Dingwall 和 Gael Varoquaux .修复中的错误
metrics.classification._check_targets
which would return'binary'
ify_true
andy_pred
were both'binary'
but the union ofy_true
andy_pred
was'multiclass'
. #8377 by Loic Esteve .修复了中的一个integer溢出错误
metrics.confusion_matrix
并且因此metrics.cohen_kappa_score
. #8354 , #7929 通过 Joel Nothman 和 Jon Crall .固定传球
gamma
参数对chi2
内核metrics.pairwise.pairwise_kernels
#5211 通过 Nick Rhinehart , Saurabh Bansod 和 Andreas Müller .
杂项
修复了一个错误时
datasets.make_classification
生成30多个功能时失败。 #8159 通过 Herilalaina Rakotoarison .修复了一个错误,
datasets.make_moons
当n_samples
很奇怪。 #8198 通过 Josh Levy .一些
fetch_
功能sklearn.datasets
忽视了download_if_missing
关键字 #7944 通过 Ralf Gommers .修复估计器以接受a
sample_weight
值类型为pandas.Series
在他们fit
功能 #7825 通过 Kathleen Chen .修复以下情况下的错误:
numpy.cumsum
数字上可能不稳定,如果发现不稳定,就会出现异常。 #7376 和 #7331 通过 Joel Nothman 和 @yangarbiter .修复一个错误,
base.BaseEstimator.__getstate__
当在多重继承上下文中使用时,会阻碍子类的pickle自定义。 #8316 通过 Holger Peters .将Sphinx-Gallery从0.1.4更新到0.1.7,以解决使用Sphinx>1.5构建的文档中的链接 #8010 , #7986 通过 Oscar Najera
添加
data_home
参数以sklearn.datasets.fetch_kddcup99
. #9289 通过 Loic Esteve .使用Python 3版本的makedirs修复数据集加载器,使其也可以在Python 2中工作。 #9284 通过 Sebastin Santy .
由于警报,几个小问题得到了修复 lgtm.com . #9278 通过 Jean Helie ,除其他外。
API变更摘要#
树木和合奏
梯度提升基本模型不再是估计器。通过 Andreas Müller .
所有基于树的估计器现在都接受
min_impurity_decrease
参数代替min_impurity_split
,现在已被废弃。的min_impurity_decrease
至少有助于停止分裂因分裂而加权杂质减少的节点min_impurity_decrease
. #8449 通过 Raghav RV .
线性、核心化和相关模型
n_iter
参数在中被弃用linear_model.SGDClassifier
,linear_model.SGDRegressor
,linear_model.PassiveAggressiveClassifier
,linear_model.PassiveAggressiveRegressor
和linear_model.Perceptron
.通过 Tom Dupre la Tour .
其他预测因素
neighbors.LSHForest
已弃用,由于性能不佳,将在0.21中删除。 #9078 通过 Laurent Direr .neighbors.NearestCentroid
不再声称支持metric='precomputed'
这现在引发了一个错误。 #8515 通过 Sergul Aydore .的
alpha
参数semi_supervised.LabelPropagation
现在没有效果,建议在0.21中删除。 #9239 通过 Andre Ambrosio Boechat , Utkarsh Upadhyay ,而且 Joel Nothman .
分解、多维学习和集群
否决该
doc_topic_distr
论点perplexity
法在decomposition.LatentDirichletAllocation
因为用户不再可以访问困惑度计算所需的非规范化文档主题分布。 #7954 通过 Gary Foreman .的
n_topics
参数decomposition.LatentDirichletAllocation
已重命名为n_components
并将在0.21版本中删除。 #8922 通过 @Attractadore .decomposition.SparsePCA.transform
的ridge_alpha
参数优先考虑类参数。 #8137 通过 Naoya Kanai .cluster.DBSCAN
现在手上有一metric_params
参数. #8139 通过 Naoya Kanai .
预处理和特征选择
feature_selection.SelectFromModel
现在手上有一partial_fit
仅在基础估计器这样做的情况下才使用方法。通过 Andreas Müller .feature_selection.SelectFromModel
现在验证了threshold
参数并设置threshold_
在调用期间属性fit
,并且不再在通话期间transform
.通过 Andreas Müller .的
non_negative
参数feature_extraction.FeatureHasher
已被废弃,并被一个更有原则的替代方案取代,alternate_sign
. #7565 通过 Roman Yurchak .linear_model.RandomizedLogisticRegression
, andlinear_model.RandomizedLasso
have been deprecated and will be removed in version 0.21. #8995 by Ramana.S.
模型评估和元估计量
否决该
fit_params
构造函数输入到model_selection.GridSearchCV
和model_selection.RandomizedSearchCV
支持将关键字参数传递给fit
这些类的方法。模型训练所需的数据相关参数应作为关键字参数传递给fit
,并且符合此约定将允许超参数选择类与以下工具一起使用model_selection.cross_val_predict
. #2879 通过 Stephen Hoover .在0.21版本中,使用
test_size
和train_size
参数将会更改,例如指定train_size
就能导致test_size
成为其余部分。 #7459 通过 Nelson Liu .multiclass.OneVsRestClassifier
现在有partial_fit
,decision_function
和predict_proba
仅当基础估计器这样做时才使用方法。 #7812 通过 Andreas Müller 和 Mikhail Korobov .multiclass.OneVsRestClassifier
现在手上有一partial_fit
仅在基础估计器这样做的情况下才使用方法。 通过 Andreas Müller .的
decision_function
二进制分类的输出形状multiclass.OneVsRestClassifier
和multiclass.OneVsOneClassifier
现在(n_samples,)
以符合scikit-learn惯例。 #9100 通过 Andreas Müller .的
multioutput.MultiOutputClassifier.predict_proba
用于返回3D数组的函数 (n_samples
,n_classes
,n_outputs
).如果不同目标列具有不同数量的类,ValueError
会在尝试堆叠具有不同维度的矩阵时提出。该函数现在返回数组列表,其中列表的长度为n_outputs
,并且每个数组都是 (n_samples
,n_classes
)对于该特定的输出。 #8093 通过 Peter Bull .替换attribute
named_steps
dict
到utils.Bunch
在pipeline.Pipeline
以启用交互式环境中的选项卡填写。在案例中冲突价值named_steps
和dict
属性,dict
行为将被优先考虑。 #8481 通过 Herilalaina Rakotoarison .
杂项
否决该
y
参数transform
和inverse_transform
.方法不应该接受y
参数,因为它在预测时使用。 #8174 通过 Tahar Zanouda , Alexandre Gramfort 和 Raghav RV .SciPy >= 0.13.3和NumPy >= 1.8.2现在是scikit-learn的最低支持版本。中的以下回传函数
sklearn.utils
已被相应删除或弃用。 #8854 和 #8874 通过 Naoya Kanai的
store_covariances
和covariances_
参数discriminant_analysis.QuadraticDiscriminantAnalysis
已更名为store_covariance
和covariance_
的相应参数名保持一致,discriminant_analysis.LinearDiscriminantAnalysis
.它们将在0.21版本中被删除。 #7998 通过 Jiacheng在0.19中删除:
utils.fixes.argpartition
utils.fixes.array_equal
utils.fixes.astype
utils.fixes.bincount
utils.fixes.expit
utils.fixes.frombuffer_empty
utils.fixes.in1d
utils.fixes.norm
utils.fixes.rankdata
utils.fixes.safe_copy
0.19中废弃,0.21中删除:
utils.arpack.eigs
utils.arpack.eigsh
utils.arpack.svds
utils.extmath.fast_dot
utils.extmath.logsumexp
utils.extmath.norm
utils.extmath.pinvh
utils.graph.graph_laplacian
utils.random.choice
utils.sparsetools.connected_components
utils.stats.rankdata
两种方法的估计者
decision_function
和predict_proba
现在要求它们之间具有单调关系。述的方法check_decision_proba_consistency
号已加入 utils.estimator_checks 以检查它们的一致性。 #7578 通过 Shubham Bhardwaj所有签到
utils.estimator_checks
,特别是utils.estimator_checks.check_estimator
现在接受估计器实例。大多数其他检查不再接受估计器类。 #9019 通过 Andreas Müller .确保估计者的属性以结尾
_
不在构造函数中设置,而仅在fit
法最值得注意的是,系综估计量(源自ensemble.BaseEnsemble
) now only haveself.estimators_
available afterfit
. #7464 by Lars Buitinck 和 Loic Esteve .
代码和文档贡献者#
感谢自0.18版本以来为项目的维护和改进做出贡献的所有人,包括:
Joel Nothman, Loic Esteve, Andreas Mueller, Guillaume Lemaitre, Olivier Grisel, Hanmin Qin, Raghav RV, Alexandre Gramfort, themrmax, Aman Dalmia, Gael Varoquaux, Naoya Kanai, Tom Dupré la Tour, Rishikesh, Nelson Liu, Taehoon Lee, Nelle Varoquaux, Aashil, Mikhail Korobov, Sebastin Santy, Joan Massich, Roman Yurchak, RAKOTOARISON Herilalaina, Thierry Guillemot, Alexandre Abadie, Carol Willing, Balakumaran Manoharan, Josh Karnofsky, Vlad Niculae, Utkarsh Upadhyay, Dmitry Petrov, Minghui Liu, Srivatsan, Vincent Pham, Albert Thomas, Jake VanderPlas, Attractadore, JC Liu, alexandercbooth, chkoar, Óscar Nájera, Aarshay Jain, Kyle Gilliam, Ramana Subramanyam, CJ Carey, Clement Joudet, David Robles, He Chen, Joris Van den Bossche, Karan Desai, Katie Luangkote, Leland McInnes, Maniteja Nandana, Michele Lacchia, Sergei Lebedev, Shubham Bhardwaj, akshay0724, omtcyfz, rickiepark, waterponey, Vathsala Achar, jbDelafosse, Ralf Gommers, Ekaterina Krivich, Vivek Kumar, Ishank Gulati, Dave Elliott, ldirer, Reiichiro Nakano, Levi John Wolf, Mathieu Blondel, Sid Kapur, Dougal J. Sutherland, midinas, mikebenfield, Sourav Singh, Aseem Bansal, Ibraim Ganiev, Stephen Hoover, AishwaryaRK, Steven C. Howell, Gary Foreman, Neeraj Gangwar, Tahar, Jon Crall, dokato, Kathy Chen, ferria, Thomas Moreau, Charlie Brummitt, Nicolas Goix, Adam Kleczewski, Sam Shleifer, Nikita Singh, Basil Beirouti, Giorgio Patrini, Manoj Kumar, Rafael Possas, James Bourbeau, James A. Bednar, Janine Harper, Jaye, Jean Helie, Jeremy Steward, Artsiom, John Wei, Jonathan LIgo, Jonathan Rahn, seanpwilliams, Arthur Mensch, Josh Levy, Julian Kuhlmann, Julien Aubert, Jörn Hees, Kai, shivamgargsya, Kat Hempstalk, Kaushik Lakshmikanth, Kennedy, Kenneth Lyons, Kenneth Myers, Kevin Yap, Kirill Bobyrev, Konstantin Podshumok, Arthur Imbert, Lee Murray, toastedcornflakes, Lera, Li Li, Arthur Douillard, Mainak Jas, tobycheese, Manraj Singh, Manvendra Singh, Marc Meketon, MarcoFalke, Matthew Brett, Matthias Gilch, Mehul Ahuja, Melanie Goetz, Meng, Peng, Michael Dezube, Michal Baumgartner, vibrantabhi19, Artem Golubin, Milen Paskov, Antonin Carette, Morikko, MrMjauh, NALEPA Emmanuel, Namiya, Antoine Wendlinger, Narine Kokhlikyan, NarineK, Nate Guerin, Angus Williams, Ang Lu, Nicole Vavrova, Nitish Pandey, Okhlopkov Daniil Olegovich, Andy Craze, Om Prakash, Parminder Singh, Patrick Carlson, Patrick Pei, Paul Ganssle, Paulo Haddad, Paweł Lorek, Peng Yu, Pete Bachant, Peter Bull, Peter Csizsek, Peter Wang, Pieter Arthur de Jong, Ping-Yao, Chang, Preston Parry, Puneet Mathur, Quentin Hibon, Andrew Smith, Andrew Jackson, 1kastner, Rameshwar Bhaskaran, Rebecca Bilbro, Remi Rampin, Andrea Esuli, Rob Hall, Robert Bradshaw, Romain Brault, Aman Pratik, Ruifeng Zheng, Russell Smith, Sachin Agarwal, Sailesh Choyal, Samson Tan, Samuël Weber, Sarah Brown, Sebastian Pölsterl, Sebastian Raschka, Sebastian Saeger, Alyssa Batula, Abhyuday Pratap Singh, Sergey Feldman, Sergul Aydore, Sharan Yalburgi, willduan, Siddharth Gupta, Sri Krishna, Almer, Stijn Tonk, Allen Riddell, Theofilos Papapanagiotou, Alison, Alexis Mignon, Tommy Boucher, Tommy Löfstedt, Toshihiro Kamishima, Tyler Folkman, Tyler Lanigan, Alexander Junge, Varun Shenoy, Victor Poughon, Vilhelm von Ehrenheim, Aleksandr Sandrovskii, Alan Yee, Vlasios Vasileiou, Warut Vijitbenjaronk, Yang Zhang, Yaroslav Halchenko, Yichuan Liu, Yuichi Fujikawa, affanv14, aivision2020, xor, andreh7, brady salz, campustrampus, Agamemnon Krasoulis, ditenberg, elena-sharova, filipj8, fukatani, gedeck, guiniol, guoci, hakaa1, hongkahjun, i-am-xhy, jakirkham, jaroslaw-weber, jayzed82, jeroko, jmontoyam, jonathan.striebel, josephsalmon, jschendel, leereeves, martin-hahn, mathurinm, mehak-sachdeva, mlewis1729, mlliou112, mthorrell, ndingwall, nuffe, yangarbiter, plagree, pldtc325, Breno Freitas, Brett Olsen, Brian A. Alfano, Brian Burns, polmauri, Brandon Carter, Charlton Austin, Chayant T15h, Chinmaya Pancholi, Christian Danielsen, Chung Yen, Chyi-Kwei Yau, pravarmahajan, DOHMATOB Elvis, Daniel LeJeune, Daniel Hnyk, Darius Morawiec, David DeTomaso, David Gasquez, David Haberthür, David Heryanto, David Kirkby, David Nicholson, rashchedrin, Deborah Gertrude Digges, Denis Engemann, Devansh D, Dickson, Bob Baxley, Don86, E. Lynch-Klarup, Ed Rogers, Elizabeth Ferriss, Ellen-Co2, Fabian Egli, Fang-Chieh Chou, Bing Tian Dai, Greg Stupp, Grzegorz Szpak, Bertrand Thirion, Hadrien Bertrand, Harizo Rajaona, zxcvbnius, Henry Lin, Holger Peters, Icyblade Dai, Igor Andriushchenko, Ilya, Isaac Laughlin, Iván Vallés, Aurélien Bellet, JPFrancoia, Jacob Schreiber, Asish Mahapatra