版本 0.15#

版本 0.15.2#

2014年9月4日

错误修复#

版本 0.15.1#

2014年8月1日

错误修复#

  • 使 cross_validation.cross_val_score 在多输出分类问题上使用 cross_validation.KFold 而不是 cross_validation.StratifiedKFold 。由 Nikolay Mayorov 贡献。

  • 支持 preprocessing.LabelBinarizer 恢复未见过的标签。

0.14.1 默认行为的向后兼容性。由 Hamzeh Alsalhi 提供。

  • 修复了 cluster.KMeans 的停止准则,该准则阻止了早期收敛检测。由 Edward Raff 和 Gael Varoquaux 修复。

  • 修复了 multiclass.OneVsOneClassifier 在每个类别投票级别出现平局时,通过计算正确的每个类别预测分数总和来修正行为。由 Andreas Müller 修复。

  • 使 cross_validation.cross_val_scoregrid_search.GridSearchCV 接受 Python 列表作为输入数据。这对于文本处理管道的交叉验证和模型选择特别有用。由 Andreas Müller 实现。

  • 修复了大多数估计器的数据输入检查,以接受实现 NumPy __array__ 协议的输入数据。对于最近版本的 pandas 中的 pandas.Seriespandas.DataFrame 就是这种情况。由 Gael Varoquaux 修复。

  • 修复了 linear_model.SGDClassifier 在非连续标签数据上使用 class_weight="auto" 时的回归问题。由 Olivier Grisel 修复。

版本 0.15#

2014年7月15日

亮点#

  • 代码各处都有许多速度和内存改进

  • 随机森林(和额外树)的速度和内存改进巨大,并且更好地受益于并行计算。

  • BernoulliRBM 进行增量拟合

  • 添加了 cluster.AgglomerativeClustering 用于具有平均连接、完全连接和沃德策略的层次聚类。

  • 添加了 linear_model.RANSACRegressor 用于鲁棒回归模型。

  • 添加了 manifold.TSNE 用于降维,可用于可视化高维数据。

变更日志#

新功能#

任何类型的基础估计器。有关详细信息和示例,请参阅用户指南中的 Bagging 部分。作者: Gilles Louppe

增强功能#

使用堆栈或优先队列进行树构建。 由 Peter PrettenhoferGilles Louppe 提供。

  • 决策树现在可以拟合 Fortran 和 C 风格的数组,以及无需复制即可处理非连续数组。 如果输入数组的 dtype 不同于 np.float32 ,将创建一个 Fortran 风格的副本,因为 Fortran 风格的内存布局具有速度优势。 由 Peter PrettenhoferGilles Louppe 提供。

  • 通过优化均方误差准则的计算,提高了回归树的速度。 这导致树、森林和梯度提升树模块的速度提升。 由 Arnaud Joly 提供。

  • sklearn.feature_extraction.image 模块中的 img_to_graphgrid_to_graph 函数现在在 return_as=np.ndarray 时返回 np.ndarray 而不是 np.matrix 。 有关兼容性的更多信息,请参阅注释部分。

  • 更改了决策树的内部存储方式,使用结构化数组。 这修复了一些小错误,同时改进了代码并提供了轻微的速度提升。 由 Joel Nothman 提供。

  • 通过利用 joblib 0.8 的新线程后端并在 Cython 代码中释放 GIL,减少了并行拟合和预测随机森林时的内存使用和开销(当 n_jobs != 1 时)。 由 Olivier GriselGilles Louppe 提供。

  • 提高了 sklearn.ensemble.gradient_boosting 模块的速度。 由 Gilles LouppePeter Prettenhofer 提供。

  • sklearn.ensemble.gradient_boosting 模块进行了多项增强: 增加了 warm_start 参数以拟合额外的树, 增加了 max_leaf_nodes 参数以拟合 GBM 风格的树, 增加了 monitor 拟合参数以在训练期间检查估计器, 以及重构了详细代码。 由 Peter Prettenhofer 提供。

  • 通过缓存特征值,提高了 sklearn.ensemble.ExtraTrees 的速度。 由 Arnaud Joly 提供。

  • 更快的基于深度的树构建算法,如决策树,

随机森林、极端随机树或梯度提升树(采用基于深度的生长策略)通过避免在样本子集中尝试对发现的常量特征进行分割。作者: Arnaud Joly

需要一个与其输入大小相同的临时数据结构。

文档改进#

  • 《处理文本数据教程》 现已整合到主文档的教程部分。 包括教程展示的练习和框架。 原始教程由多位作者创建,包括 Olivier Grisel 、Lars Buitinck 和许多其他人。 教程整合到 scikit-learn 文档中 由 Jaques Grobler 完成。

  • 添加了 计算性能 文档。 讨论和示例预测延迟/吞吐量以及影响速度的不同因素。 额外提示用于构建更快的模型并选择速度和预测能力之间的相关折中。 由 Eustache Diemert 完成。

Bug 修复#

  • 修复了 decomposition.MiniBatchDictionaryLearning 中的 bug: partial_fit 未正常工作。

  • 修复了 linear_model.stochastic_gradient 中的 bug: l1_ratio 被用作 (1.0 - l1_ratio)

  • 修复了 multiclass.OneVsOneClassifier 中字符串标签的 bug。

  • 修复了 LassoCVElasticNetCV 中的 bug: 它们不会在 precompute=Trueprecompute="auto"n_samples > n_features 时预计算 Gram 矩阵。 由 Manoj Kumar 完成。

  • 修复了 feature_selection.f_regression 中自由度的不正确估计,当变量未居中时。 由 Virgile Fritsch 完成。

  • 修复了并行处理中 pre_dispatch != "all" (例如在 cross_val_score 中)时的竞争条件。 由 Olivier Grisel 完成。

  • cluster.FeatureAgglomerationcluster.WardAgglomeration 中,当没有给出样本时,引发错误, 而不是返回无意义的聚类。

  • 修复了 gradient_boosting.GradientBoostingRegressorloss='huber' 的 bug: gamma 可能未初始化。

  • 修复了在使用 sample_weight != None 和/或 bootstrap=True 时,随机森林计算的特征重要性。 由 Gilles Louppe 提供。

API 变更总结#

  • sklearn.hmm 已被弃用。计划在 0.17 版本中移除。

  • 在弃用后, covariance.EllipticEnvelop 的使用已被移除。 请改用 covariance.EllipticEnvelope

  • cluster.Ward 已被弃用。请改用 cluster.AgglomerativeClustering

  • cluster.WardClustering 已被弃用。请改用 cluster.AgglomerativeClustering

  • cross_validation.Bootstrap 已被弃用。 推荐使用 cross_validation.KFoldcross_validation.ShuffleSplit

  • 直接支持序列的序列(或列表的列表)多标签格式已被弃用。 要转换为支持的二进制指示矩阵格式,请使用 preprocessing.MultiLabelBinarizer 。 由 Joel Nothman 提供。

  • decomposition.PCA 中添加了 score 方法,遵循概率 PCA 模型,并弃用 ProbabilisticPCA 模型,其 score 实现不正确。现在还利用矩阵求逆引理进行更快的计算。 由 Alexandre Gramfort 提供。

  • decomposition.FactorAnalysis 的 score 方法 现在返回样本的平均对数似然。使用 score_samples 获取每个样本的对数似然。 由 Alexandre Gramfort 提供。

  • 从交叉验证生成器生成布尔掩码(设置 indices=False ) 已被弃用。对掩码的支持将在 0.17 版本中移除。 自 0.10 版本以来,生成器默认生成索引数组。 由 Joel Nothman 提供。

  • 包含字符串的 1 维数组(如在 Pandas 中使用的 dtype=object ) 现在被视为有效的分类目标。这修复了某些分类器从 0.13 版本开始的回归问题。 由 Joel Nothman 提供。

  • 修复 RandomizedPCA 中错误的 explained_variance_ratio_ 属性。 由 Alexandre Gramfort 贡献。

  • linear_model.ElasticNetCVlinear_model.LassoCV 中, 为每个 l1_ratio 而不是 mean_l1_ratio 拟合 alpha。 这改变了 alphas_ 的形状,从 (n_alphas,) 变为 (n_l1_ratio, n_alphas) , 如果提供的 l1_ratio 是一个长度大于一的一维数组对象。 由 Manoj Kumar 贡献。

  • 修复在拟合截距且输入数据为稀疏时,linear_model.ElasticNetCVlinear_model.LassoCV 的问题。自动 alpha 网格计算不正确,且归一化缩放有误。 由 Manoj Kumar 贡献。

  • 修复决策树、随机森林和梯度提升树在每次分割时抽取的最大特征数 ( max_features ) 错误。 之前,抽取特征的数量计数仅在分割中有一个非恒定特征后才开始。此错误修复将影响这些算法在存在恒定特征时的计算和泛化性能。 要恢复之前的泛化性能,应修改 max_features 的值。 由 Arnaud Joly 贡献。

  • 修复 ensemble.ExtraTreesClassifierensemble.ExtraTreesRegressor 在每次分割时抽取的最大特征数 ( max_features ) 错误。之前,仅将分割中的非恒定特征计为抽取。 现在恒定特征也被计为抽取。此外,为了进行有效分割,至少有一个特征必须是非恒定的。 此错误修复将影响额外树在存在恒定特征时的计算和泛化性能。 要恢复之前的泛化性能,应修改 max_features 的值。 由 Arnaud Joly 贡献。

  • 修复当 class_weight=="auto"utils.class_weight.compute_class_weight 的问题。 之前对于非整数 dtype 的输入是无效的。 返回的加权数组是错误的。由 Manoj Kumar 提供。

  • 修复 cross_validation.Bootstrap 以在 n_train + n_test > n 时返回 ValueError 。由 Ronald Phlypo 提供。

贡献者#

按提交次数列出的 0.15 版本贡献者名单。

  • 312 Olivier Grisel

  • 275 Lars Buitinck

  • 221 Gael Varoquaux

  • 148 Arnaud Joly

  • 134 Johannes Schönberger

  • 119 Gilles Louppe

  • 113 Joel Nothman

  • 111 Alexandre Gramfort

  • 95 Jaques Grobler

  • 89 Denis Engemann

  • 83 Peter Prettenhofer

  • 83 Alexander Fabisch

  • 62 Mathieu Blondel

  • 60 Eustache Diemert

  • 60 Nelle Varoquaux

  • 49 Michael Bommarito

  • 45 Manoj-Kumar-S

  • 28 Kyle Kastner

  • 26 Andreas Mueller

  • 22 Noel Dawe

  • 21 Maheshakya Wijewardena

  • 21 Brooke Osborn

  • 21 Hamzeh Alsalhi

  • 21 Jake VanderPlas

  • 21 Philippe Gervais

  • 19 Bala Subrahmanyam Varanasi

  • 12 Ronald Phlypo

  • 10 Mikhail Korobov

  • 8 Thomas Unterthiner

  • 8 Jeffrey Blackburne

  • 8 eltermann

  • 8 bwignall

  • 7 Ankit Agrawal

  • 7 CJ Carey

  • 6 Daniel Nouri

  • 6 Chen Liu

  • 6 Michael Eickenberg

  • 6 ugurthemaster

  • 5 Aaron Schumacher

  • 5 Baptiste Lagarde

  • 5 Rajat Khanduja

  • 5 Robert McGibbon

  • 5 Sergio Pascual

  • 4 Alexis Metaireau

  • 4 Ignacio Rossi

  • 4 Virgile Fritsch

  • 4 Sebastian Säger

  • 4 Ilambharathi Kanniah

  • 4 sdenton4

  • 4 Robert Layton

  • 4 Alyssa

  • 4 Amos Waterland

  • 3 Andrew Tulloch

  • 3 murad

  • 3 Steven Maude

  • 3 Karol Pysniak

  • 3 Jacques Kvam

  • 3 cgohlke

  • 3 cjlin

  • 3 Michael Becker

  • 3 hamzeh

  • 3 Eric Jacobsen

  • 3 john collins

  • 3 kaushik94

  • 3 Erwin Marsi

  • 2 csytracy

  • 2 LK

  • 2 Vlad Niculae

  • 2 Laurent Direr

  • 2 Erik Shilts

  • 2 Raul Garreta

  • 2 Yoshiki Vázquez Baeza

  • 2 Yung Siang Liau

  • 2 abhishek thakur

  • 2 James Yu

  • 2 Rohit Sivaprasad

  • 2 Roland Szabo

  • 2 amormachine

  • 2 Alexis Mignon

  • 2 Oscar Carlsson

  • 2 Nantas Nardelli

  • 2 jess010

  • 2 kowalski87

  • 2 Andrew Clegg

  • 2 Federico Vaggi

  • 2 Simon Frid

  • 2 Félix-Antoine Fortin

  • 1 Ralf Gommers

  • 1 t-aft

  • 1 Ronan Amicel

  • 1 Rupesh Kumar Srivastava

  • 1 Ryan Wang

  • 1 Samuel Charron

  • 1 Samuel St-Jean

  • 1 Fabian Pedregosa

  • 1 Skipper Seabold

  • 1 Stefan Walk

  • 1 Stefan van der Walt

  • 1 Stephan Hoyer

  • 1 Allen Riddell

  • 1 Valentin Haenel

  • 1 Vijay Ramesh

  • 1 Will Myers

  • 1 Yaroslav Halchenko

  • 1 Yoni Ben-Meshulam

  • 1 Yury V. Zaytsev

  • 1 adrinjalali

  • 1 ai8rahim

  • 1 alemagnani

  • 1 alex

  • 1 benjamin wilson

  • 1 chalmerlowe

  • 1 dzikie drożdże

  • 1 jamestwebber

  • 1 matrixorz

  • 1 popo

  • 1 samuela

  • 1 François Boulogne

  • 1 Alexander Measure

  • 1 Ethan White

  • 1 Guilherme Trein

  • 1 Hendrik Heuer

  • 1 IvicaJovic

  • 1 Jan Hendrik Metzen

  • 1 Jean Michel Rouly

  • 1 Eduardo Ariño de la Rubia

  • 1 Jelle Zijlstra

  • 1 Eddy L O Jansson

  • 1 Denis

  • 1 John

  • 1 John Schmidt

  • 1 Jorge Cañardo Alastuey

  • 1 Joseph Perla

  • 1 Joshua Vredevoogd

  • 1 José Ricardo

  • 1 Julien Miotte

  • 1 Kemal Eren

  • 1 Kenta Sato

  • 1 David Cournapeau

  • 1 Kyle Kelley

  • 1 Daniele Medri

  • 1 Laurent Luce

  • 1 Laurent Pierron

  • 1 Luis Pedro Coelho

  • 1 DanielWeitzenfeld

  • 1 Craig Thompson

  • 1 Chyi-Kwei Yau

  • 1 Matthew Brett

  • 1 Matthias Feurer

  • 1 Max Linke

  • 1 Chris Filo Gorgolewski

  • 1 Charles Earl

  • 1 Michael Hanke

  • 1 Michele Orrù

  • 1 Bryan Lunt

  • 1 Brian Kearns

  • 1 Paul Butler

  • 1 Paweł Mandera

  • 1 Peter

  • 1 Andrew Ash

  • 1 Pietro Zambelli

  • 1 staubda