版本 0.16#

版本 0.16.1#

2015年4月14日

更新日志#

错误修复#

版本 0.16#

2015年3月26日

亮点#

  • 速度提升(特别是在 cluster.DBSCAN 中),减少了内存需求,修复了错误,并改进了默认设置。

  • 多项逻辑回归和 linear_model.LogisticRegressionCV 中的路径算法。

  • 通过 decomposition.IncrementalPCA 进行核心外学习的主成分分析。

  • 使用 calibration.CalibratedClassifierCV 对分类器进行概率校准。

  • 用于大规模数据集的 cluster.Birch 聚类方法。

  • neighbors.LSHForest 中使用局部敏感哈希森林进行可扩展的近似最近邻搜索。

  • 改进了错误消息,并在使用格式错误的数据时进行了更好的验证。

  • 与 pandas 数据框更稳健的集成。

更新日志#

新功能#

增强功能#

multiclass.OneVsRestClassifier (由 Hamzeh Alsalhi 贡献,感谢 Rohit Sivaprasad), 以及评估指标 (由

Joel Nothman 贡献)。

文档改进#

错误修复#

  • Metaestimators 现在支持对 decision_functionpredict_proba 和其他方法的存在进行鸭子类型检查。这修复了 grid_search.GridSearchCVgrid_search.RandomizedSearchCVpipeline.Pipelinefeature_selection.RFEfeature_selection.RFECV 在嵌套时的行为。由 Joel Nothman 提供。

  • grid_search.GridSearchCV 作为基础估计器给出或基础估计器没有 predict 方法时,网格搜索和交叉验证方法的 scoring 属性不再被忽略。

  • 函数 hierarchical.ward_tree 现在对于结构化和非结构化版本返回的子节点顺序一致。由 Matteo Visconti di Oleggio Castello 提供。

  • feature_selection.RFECV 现在正确处理了当 step 不等于 1 的情况。由 Nikolay Mayorov 提供。

  • decomposition.PCA 现在在其 inverse_transform 中撤销白化处理。同时,其 components_ 现在始终具有单位长度。由 Michael Eickenberg 提供。

  • 修复了调用 datasets.download_20newsgroups 时数据集下载不完整的问题。由 Manoj Kumar 提供。

  • 对高斯过程子包进行了各种修复,由 Vincent Dubourg 和 Jan Hendrik Metzen 提供。

  • 调用 partial_fit 时,如果 class_weight=='auto' ,会抛出适当的错误消息并建议解决方法。由 Danny Sullivan 提供。

  • RBFSamplergamma=g 时,之前近似于 rbf_kernel <metrics.pairwise.rbf_kernel>gamma=g/2. ;现在 gamma 的定义一致了,如果你使用固定值,这可能会显著改变你的结果(如果你在 gamma 上进行了交叉验证,可能影响不大)。由 Dougal Sutherland 提供。

  • Pipeline 对象将 classes_ 属性委托给底层估计器。这允许,例如,对 Pipeline 对象进行 bagging。 By Arnaud Joly

  • neighbors.NearestCentroid 现在在度量设置为 manhattan 时使用中位数作为质心。之前使用的是均值。 By Manoj Kumar

  • 通过裁剪大梯度和确保权重衰减重新缩放始终为正(对于大的 l2 正则化和大的学习率值),修复了 linear_model.SGDClassifierlinear_model.SGDRegressor 中的数值稳定性问题。 By Olivier Grisel

  • compute_full_tree 设置为 “auto” 时,在 n_clusters 较高时构建完整树,在 n_clusters 较低时提前停止,而 cluster.AgglomerativeClustering (及其相关类)的行为应该是相反的。 这一问题已由 Manoj Kumar 修复。

  • 修复了 linear_model.enet_pathlinear_model.lasso_path 中数据的惰性中心化问题。之前数据是围绕1进行中心化的,现在改为围绕原点进行中心化。 By Manoj Kumar

  • 修复了在使用连通性约束时,cluster.AgglomerativeClustering 处理预计算亲和矩阵的问题。 By Cathy Deng

  • 修正了 sklearn.naive_bayes.MultinomialNBsklearn.naive_bayes.BernoulliNBpartial_fit 处理 class_prior 的问题。 By Trevor Stephens

  • 修复了在多标签设置中使用未排序的 labels 时,metrics.precision_recall_fscore_support 中的崩溃问题。 By Andreas Müller

  • sklearn.neighbors.NearestNeighbors 及其相关方法 radius_neighborskneighborskneighbors_graphradius_neighbors_graph 中,当查询数据与拟合数据不同时,避免跳过第一个最近邻。 By Manoj Kumar

  • 修复了 mixture.GMM 中使用 tied 协方差时的对数密度计算问题。 By Will Dawson

  • 修复了 feature_selection.SelectFdr 中的缩放错误,其中缺少了一个因子 n_features 。 By Andrew Tulloch

  • 修复了在使用距离加权和存在相同数据点时,neighbors.KNeighborsRegressor 及相关类中的零除问题。 由 Garret-R 贡献。

  • 修复了GMM中非正定协方差矩阵的舍入误差。 由 Alexis Mignon 贡献。

  • 修复了:class:naive_bayes.BernoulliNB 中条件概率计算的错误。 由 Hanna Wallach 贡献。

  • 使:class:neighbors.NearestNeighborsradius_neighbors 方法在 algorithm='brute' 时返回边界上的样本。 由 Yan Yi 贡献。

  • 翻转:class:svm.SVCdual_coef_ 符号,以使其与文档和 decision_function 保持一致。 由 Artem Sobolev 贡献。

  • 修复了:class:isotonic.IsotonicRegression 中处理平局的问题。 我们现在使用目标的加权平均值(次要方法)。 由 Andreas MüllerMichael Bommarito 贡献。

API变更总结#

  • GridSearchCVcross_val_score 以及其他元估计器不再将pandas DataFrame转换为数组,允许在自定义估计器中进行DataFrame特定的操作。

  • multiclass.fit_ovr , multiclass.predict_ovr , predict_proba_ovr , multiclass.fit_ovo , multiclass.predict_ovo , multiclass.fit_ecocmulticlass.predict_ecoc 已被弃用。请改用底层估计器。

  • 最近邻估计器过去接受任意关键字参数并将其传递给距离度量。这在scikit-learn 0.18中将不再支持;请改用 metric_params 参数。

  • n_jobs 参数已从fit方法移至LinearRegression类的构造函数中。

  • multiclass.OneVsRestClassifierpredict_proba 方法现在在多类情况下为每个样本返回两个概率;这与其它估计器和方法的文档一致。

  • 但之前的版本意外地只返回了正概率。由 Will Lamond 和 Lars Buitinck 修复。

  • linear_model.ElasticNetlinear_model.Lasso 中的 precompute 默认值改为 False。设置 precompute 为 “auto” 在 n_samples > n_features 时发现较慢,因为计算 Gram 矩阵的计算成本很高,超过了仅为一个 alpha 拟合 Gram 的益处。现在 precompute="auto" 已被弃用,将在 0.18 版本中移除。由 Manoj Kumar 提供。

  • linear_model.enet_pathlinear_model.enet_path 中公开 positive 选项,该选项约束系数为正。由 Manoj Kumar 提供。

  • 用户现在应在执行多类或多标签(即非二元)分类时,向 sklearn.metrics.f1_scoresklearn.metrics.fbeta_scoresklearn.metrics.recall_scoresklearn.metrics.precision_score 提供显式的 average 参数。由 Joel Nothman 提供。

  • 交叉验证的 scoring 参数现在接受 'f1_micro''f1_macro''f1_weighted''f1' 现在仅用于二元分类。类似的更改适用于 'precision''recall' 。由 Joel Nothman 提供。

  • linear_model.enet_pathlinear_model.lasso_path 中移除了 fit_interceptnormalizereturn_models 参数。它们自 0.14 版本起已被弃用。

  • 从现在开始,所有估计器在调用任何 predict 类方法之前,如果模型未拟合,将统一引发 NotFittedError 。由 Raghav RV 提供。

  • 对输入数据验证进行了重构,以实现更一致的输入验证。 check_arrays 函数被 check_arraycheck_X_y 取代。由 Andreas Müller 提供。

  • 允许在 neighbors.NearestNeighbors 的方法 radius_neighborskneighborskneighbors_graphradius_neighbors_graph 中使用 X=None

sklearn.neighbors.NearestNeighbors 及其相关类。如果设置为 None,则对于每个样本,这会避免将样本本身设置为第一个最近邻。由 Manoj Kumar 提供。

代码贡献者#

A. Flaxman, Aaron Schumacher, Aaron Staple, abhishek thakur, Akshay, akshayah3, Aldrian Obaja, Alexander Fabisch, Alexandre Gramfort, Alexis Mignon, Anders Aagaard, Andreas Mueller, Andreas van Cranenburgh, Andrew Tulloch, Andrew Walker, Antony Lee, Arnaud Joly, banilo, Barmaley.exe, Ben Davies, Benedikt Koehler, bhsu, Boris Feld, Borja Ayerdi, Boyuan Deng, Brent Pedersen, Brian Wignall, Brooke Osborn, Calvin Giles, Cathy Deng, Celeo, cgohlke, chebee7i, Christian Stade-Schuldt, Christof Angermueller, Chyi-Kwei Yau, CJ Carey, Clemens Brunner, Daiki Aminaka, Dan Blanchard, danfrankj, Danny Sullivan, David Fletcher、Dmitrijs Milajevs、Dougal J. Sutherland、Erich Schubert、Fabian Pedregosa、Florian Wilhelm、floydsoft、Félix-Antoine Fortin、Gael Varoquaux、Garrett-R、Gilles Louppe、gpassino、gwulfs、Hampus Bengtsson、Hamzeh Alsalhi、Hanna Wallach、Harry Mavroforakis、Hasil Sharma、Helder、Herve Bredin、Hsiang-Fu Yu、Hugues SALAMIN、Ian Gilmore、Ilambharathi Kanniah、Imran Haque、isms、Jake VanderPlas、Jan Dlabal、Jan Hendrik Metzen、Jatin Shah、Javier López Peña、jdcaballero、Jean Kossaifi、Jeff Hammerbacher、Joel Nothman、Jonathan Helmus、Joseph、Kaicheng Zhang、Kevin Markham、Kyle Beauchamp、Kyle Kastner、Lagacherie Matthieu、Lars Buitinck、Laurent Direr、leepei、Loic Esteve、Luis Pedro Coelho、Lukas Michelbacher、maheshakya、Manoj Kumar、Manuel、Mario Michael Krell、Martin、Martin Billinger、Martin Ku、Mateusz Susik、Mathieu Blondel、Matt Pico、Matt Terry、Matteo Visconti dOC、Matti Lyra、Max Linke、Mehdi Cherti、Michael Bommarito、Michael Eickenberg、Michal Romaniuk、MLG、mr.Shu、Nelle Varoquaux、Nicola Montecchio、Nicolas、Nikolay Mayorov、Noel Dawe、Okal Billy、Olivier Grisel、Óscar Nájera、Paolo Puggioni、Peter Prettenhofer、Pratap Vardhan、pvnguyen、queqichao、Rafael Carrascosa、Raghav R V、Rahiel Kasim、Randall Mason、Rob Zinkov、Robert Bradshaw、Saket Choudhary、Sam Nicholls、Samuel Charron、Saurabh Jha、sethdandridge、sinhrks、snuderl、Stefan Otte、Stefan van der Walt、Steve Tjoa、swu、Sylvain Zimmer、tejesh95、terrycojones、Thomas Delteil、Thomas Unterthiner、Tomas Kazmar、trevorstephens、tttthomasssss、Tzu-Ming Kuo、ugurcaliskan、ugurthemaster、Vinayak Mehta、Vincent Dubourg、Vjacheslav Murashkin、Vlad Niculae、wadawson、Wei Xue、Will Lamond、Wu Jiang、x0l、Xinfan Meng、Yan Yi、Yu-Chin