版本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_memoryhelper. #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:8053by 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.AdaBoostClassifierthrowsZeroDivisionErrorwhile 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.VotingClassifierraises 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.LarsCVandlinear_model.LassoLarsCV, where the parameterprecomputewas 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.BaseLabelPropagationto correctly implementLabelPropagationandLabelSpreadingas 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.RandomizedPCAanddecomposition.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.SpectralBiclusteringfit方法通过接受符合APIy并返回对象。 #6126 , #7814 通过 Laurent Direr 和 Maniteja Nandana .修复错误
sklearn.mixturesample方法没有返回要求的那么多样本。 #7702 通过 Levi John Wolf .修复了中的收缩实现
neighbors.NearestCentroid. #9219 通过 Hanmin Qin .
预处理和特征选择
For sparse matrices,
preprocessing.normalizewithreturn_norm=Truewill now raise aNotImplementedErrorwith '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_targetswhich would return'binary'ify_trueandy_predwere both'binary'but the union ofy_trueandy_predwas'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.RandomizedLassohave 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_stepsdict到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.argpartitionutils.fixes.array_equalutils.fixes.astypeutils.fixes.bincountutils.fixes.expitutils.fixes.frombuffer_emptyutils.fixes.in1dutils.fixes.normutils.fixes.rankdatautils.fixes.safe_copy
0.19中废弃,0.21中删除:
utils.arpack.eigsutils.arpack.eigshutils.arpack.svdsutils.extmath.fast_dotutils.extmath.logsumexputils.extmath.normutils.extmath.pinvhutils.graph.graph_laplacianutils.random.choiceutils.sparsetools.connected_componentsutils.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