版本 0.16#
版本 0.16.1#
2015年4月14日
更新日志#
错误修复#
允许在
covariance.LedoitWolf
中输入大于block_size
的数据,由 Andreas Müller 提供。修复了
isotonic.IsotonicRegression
去重中的一个错误,该错误导致calibration.CalibratedClassifierCV
中的结果不稳定,由 Jan Hendrik Metzen 提供。修复了 func:
preprocessing.label_binarize
中标签排序的问题,由 Michael Heilman 提供。修复了
cross_decomposition.CCA
和cross_decomposition.PLSCanonical
中的几个稳定性和收敛性问题,由 Andreas Müller 提供。修复了
cluster.KMeans
在precompute_distances=False
时对 fortran 顺序数据的错误。修复了
ensemble.RandomForestClassifier
的predict
和predict_proba
中的速度回归问题,由 Andreas Müller 提供。修复了
utils.shuffle
将列表和数据框转换为数组的回归问题,由 Olivier Grisel 提供。
版本 0.16#
2015年3月26日
亮点#
速度提升(特别是在
cluster.DBSCAN
中),减少了内存需求,修复了错误,并改进了默认设置。多项逻辑回归和
linear_model.LogisticRegressionCV
中的路径算法。通过
decomposition.IncrementalPCA
进行核心外学习的主成分分析。使用
calibration.CalibratedClassifierCV
对分类器进行概率校准。用于大规模数据集的
cluster.Birch
聚类方法。在
neighbors.LSHForest
中使用局部敏感哈希森林进行可扩展的近似最近邻搜索。改进了错误消息,并在使用格式错误的数据时进行了更好的验证。
与 pandas 数据框更稳健的集成。
更新日志#
新功能#
新的
neighbors.LSHForest
实现了局部敏感哈希,用于近似最近邻搜索。作者:Maheshakya Wijewardena 。添加了
svm.LinearSVR
。该类使用 liblinear 实现的支持向量回归,对于大样本量比使用线性核的svm.SVR
快得多。作者: Fabian Pedregosa 和 Qiang Luo。为
GaussianNB
增加了增量拟合功能。为
dummy.DummyClassifier
和dummy.DummyRegressor
添加了sample_weight
支持。作者: Arnaud Joly 。添加了
metrics.label_ranking_average_precision_score
指标。作者: Arnaud Joly 。添加了
metrics.coverage_error
指标。作者: Arnaud Joly 。添加了
linear_model.LogisticRegressionCV
。作者: Manoj Kumar 、 Fabian Pedregosa 、 Gael Varoquaux 和 Alexandre Gramfort 。为构造函数添加了
warm_start
参数,使得任何训练好的森林模型可以增量地增加额外的树。作者:Laurent Direr 。为
ensemble.GradientBoostingClassifier
和ensemble.GradientBoostingRegressor
添加了sample_weight
支持。作者: Peter Prettenhofer 。添加了
decomposition.IncrementalPCA
,这是一种支持使用partial_fit
方法进行外存学习的 PCA 算法实现。作者: Kyle Kastner 。为
SGDClassifier
和SGDRegressor
实现了平均 SGD。作者:Danny Sullivan 。添加了
cross_val_predict
函数,该函数计算交叉验证的估计值。作者: Luis Pedro Coelho 。添加了
linear_model.TheilSenRegressor
,一种稳健的广义中位数估计器。作者:Florian Wilhelm 。添加了
metrics.median_absolute_error
,一种稳健的指标。作者: Gael Varoquaux 和 Florian Wilhelm 。添加了
cluster.Birch
,一种在线聚类算法。由 Manoj Kumar 、 Alexandre Gramfort 和 Joel Nothman 贡献。在
discriminant_analysis.LinearDiscriminantAnalysis
中添加了收缩支持,使用两个新的求解器。由 Clemens Brunner 和 Martin Billinger 贡献。添加了
kernel_ridge.KernelRidge
,实现了核岭回归。由 Mathieu Blondel 和 Jan Hendrik Metzen 贡献。linear_model.Ridge
中的所有求解器现在都支持sample_weight
。由 Mathieu Blondel 贡献。添加了
cross_validation.PredefinedSplit
交叉验证,用于固定用户提供的交叉验证折。由 Thomas Unterthiner 贡献。添加了
calibration.CalibratedClassifierCV
,一种用于校准分类器预测概率的方法。由 Alexandre Gramfort 、 Jan Hendrik Metzen 、 Mathieu Blondel 和 Balazs Kegl 贡献。
增强功能#
在
hierarchical.ward_tree
中添加了return_distance
选项,以返回结构化和非结构化版本的算法中节点之间的距离。由 Matteo Visconti di Oleggio Castello 贡献。同样选项也添加到了hierarchical.linkage_tree
中。由 Manoj Kumar 贡献。在评分器对象中添加了对样本权重的支持。支持样本权重的指标将自动受益于此。由 Noel Dawe 和 Vlad Niculae 贡献。
在
linear_model.LogisticRegression
中添加了newton-cg
和lbfgs
求解器支持。由 Manoj Kumar 贡献。在
linear_model.Lasso
、linear_model.ElasticNet
及相关算法中添加了selection="random"
参数,以实现随机坐标下降。由 Manoj Kumar 贡献。在
metrics.jaccard_similarity_score
和metrics.log_loss
中添加了sample_weight
参数。由 Jatin Shah 贡献。
multiclass.OneVsRestClassifier
(由 Hamzeh Alsalhi 贡献,感谢
Rohit Sivaprasad), 以及评估指标 (由
Joel Nothman 贡献)。
在
metrics.jaccard_similarity_score
中添加sample_weight
参数。 由Jatin Shah
贡献。在
metrics.hinge_loss
中添加对多类别的支持。添加了labels=None
作为可选参数。由Saurabh Jha
贡献。在
metrics.hinge_loss
中添加sample_weight
参数。 由Saurabh Jha
贡献。在
linear_model.LogisticRegression
中添加multi_class="multinomial"
选项, 实现一个最小化交叉熵或多项损失的逻辑回归求解器,而不是默认的 One-vs-Rest 设置。 支持lbfgs
和newton-cg
求解器。由 Lars Buitinck 和 Manoj Kumar 贡献。 求解器选项newton-cg
由 Simon Wu 贡献。DictVectorizer
现在可以在单次传递中对可迭代对象执行fit_transform
, 当给出选项sort=False
时。由 Dan Blanchard 贡献。model_selection.GridSearchCV
和model_selection.RandomizedSearchCV
现在可以配置为与可能失败并在单个折叠中引发错误的估计器一起工作。 此选项由error_score
参数控制。这不会影响在重新拟合时引发的错误。 由 Michal Romaniuk 贡献。在
metrics.classification_report
中添加digits
参数,以允许报告显示不同精度的浮点数。 由 Ian Gilmore 贡献。在
dummy.DummyRegressor
中添加分位数预测策略。 由 Aaron Staple 贡献。在
preprocessing.OneHotEncoder
中添加handle_unknown
选项, 以在转换过程中更优雅地处理未知的分类特征。 由 Manoj Kumar 贡献。增加了对决策树及其集成模型的稀疏输入数据的支持。 由 Fares Hedyati 和 Arnaud Joly 贡献。
通过减少操作次数优化了
cluster.AffinityPropagation
。 大型临时数据结构的内存分配。作者: Antony Lee 。随机森林中特征重要性的并行计算。作者: Olivier Grisel 和 Arnaud Joly 。
在构造函数中接受
max_iter
属性的估计器添加了n_iter_
属性。作者: Manoj Kumar 。为
multiclass.OneVsOneClassifier
添加了决策函数。作者: Raghav RV 和 Kyle Beauchamp 。neighbors.kneighbors_graph
和radius_neighbors_graph
支持非欧几里得度量。作者: Manoj Kumar 。cluster.AgglomerativeClustering
及其系列中的参数connectivity
现在接受返回连接矩阵的可调用对象。作者: Manoj Kumar 。为
metrics.pairwise.paired_distances
添加了稀疏支持。作者: Joel Nothman 。cluster.DBSCAN
现在支持稀疏输入和样本权重,并已优化:内部循环已用 Cython 重写,半径邻居查询现在以批处理方式计算。作者: Joel Nothman 和 Lars Buitinck 。为
ensemble.RandomForestClassifier
、tree.DecisionTreeClassifier
、ensemble.ExtraTreesClassifier
和tree.ExtraTreeClassifier
添加了class_weight
参数,以根据类别频率自动加权样本。作者: Trevor Stephens 。grid_search.RandomizedSearchCV
现在在所有参数都以列表形式给出时进行无放回抽样。作者: Andreas Müller 。现在支持对 scipy 度量和自定义可调用对象进行
metrics.pairwise_distances
的并行计算。作者: Joel Nothman 。允许在
pipeline.Pipeline
中对所有聚类算法进行拟合和评分。作者: Andreas Müller 。通过 Andreas Müller 使
cluster.MeanShift
的种子更加健壮并改进了错误消息。使
mixture.GMM
、mixture.DPGMM
和mixture.VBGMM
的停止准则对初始条件不那么敏感。作者: Andreas Müller 。 通过阈值化平均对数似然变化而不是所有样本的总和来计算样本数量。作者: Hervé Bredin 。manifold.spectral_embedding
的结果通过翻转特征向量的符号变得确定性。作者:Hasil Sharma 。preprocessing.PolynomialFeatures
在性能和内存使用方面有了显著改进。作者: Eric Martin 。preprocessing.StandardScaler
和preprocessing.scale
的数值稳定性得到了改进。作者: Nicolas Goix 。在稀疏输入上拟合的
svm.SVC
现在实现了decision_function
。作者: Rob Zinkov 和 Andreas Müller 。cross_validation.train_test_split
现在保留输入类型,而不是转换为 numpy 数组。
文档改进#
增加了使用
pipeline.FeatureUnion
处理异构输入的示例。作者:Matt Terry 。评分器的文档得到了改进,突出了损失函数的处理。作者:Matt Pico 。
现在注意到 liblinear 输出与 scikit-learn 包装器之间的差异。作者: Manoj Kumar 。
改进了文档生成:引用类或函数的示例现在在类/函数的 API 参考页面上以图库形式展示。作者: Joel Nothman 。
更明确的样本生成器和数据转换文档。作者: Joel Nothman 。
sklearn.neighbors.BallTree
和sklearn.neighbors.KDTree
曾指向声明它们是 BinaryTree 别名的空页面。现已修复,显示正确的类文档。作者: Manoj Kumar 。增加了使用
metrics.silhouette_samples
和metrics.silhouette_score
进行 KMeans 聚类分析的轮廓图。参见 使用轮廓分析选择KMeans聚类的簇数 。
错误修复#
Metaestimators 现在支持对
decision_function
、predict_proba
和其他方法的存在进行鸭子类型检查。这修复了grid_search.GridSearchCV
、grid_search.RandomizedSearchCV
、pipeline.Pipeline
、feature_selection.RFE
、feature_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 提供。RBFSampler
在gamma=g
时,之前近似于rbf_kernel <metrics.pairwise.rbf_kernel>
的gamma=g/2.
;现在gamma
的定义一致了,如果你使用固定值,这可能会显著改变你的结果(如果你在gamma
上进行了交叉验证,可能影响不大)。由 Dougal Sutherland 提供。Pipeline 对象将
classes_
属性委托给底层估计器。这允许,例如,对 Pipeline 对象进行 bagging。 By Arnaud Jolyneighbors.NearestCentroid
现在在度量设置为manhattan
时使用中位数作为质心。之前使用的是均值。 By Manoj Kumar通过裁剪大梯度和确保权重衰减重新缩放始终为正(对于大的 l2 正则化和大的学习率值),修复了
linear_model.SGDClassifier
和linear_model.SGDRegressor
中的数值稳定性问题。 By Olivier Grisel当
compute_full_tree
设置为 “auto” 时,在 n_clusters 较高时构建完整树,在 n_clusters 较低时提前停止,而cluster.AgglomerativeClustering
(及其相关类)的行为应该是相反的。 这一问题已由 Manoj Kumar 修复。修复了
linear_model.enet_path
和linear_model.lasso_path
中数据的惰性中心化问题。之前数据是围绕1进行中心化的,现在改为围绕原点进行中心化。 By Manoj Kumar修复了在使用连通性约束时,
cluster.AgglomerativeClustering
处理预计算亲和矩阵的问题。 By Cathy Deng修正了
sklearn.naive_bayes.MultinomialNB
和sklearn.naive_bayes.BernoulliNB
中partial_fit
处理class_prior
的问题。 By Trevor Stephens修复了在多标签设置中使用未排序的
labels
时,metrics.precision_recall_fscore_support
中的崩溃问题。 By Andreas Müller在
sklearn.neighbors.NearestNeighbors
及其相关方法radius_neighbors
、kneighbors
、kneighbors_graph
和radius_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.NearestNeighbors
的radius_neighbors
方法在algorithm='brute'
时返回边界上的样本。 由 Yan Yi 贡献。翻转:class:
svm.SVC
的dual_coef_
符号,以使其与文档和decision_function
保持一致。 由 Artem Sobolev 贡献。修复了:class:
isotonic.IsotonicRegression
中处理平局的问题。 我们现在使用目标的加权平均值(次要方法)。 由 Andreas Müller 和 Michael Bommarito 贡献。
API变更总结#
GridSearchCV
和cross_val_score
以及其他元估计器不再将pandas DataFrame转换为数组,允许在自定义估计器中进行DataFrame特定的操作。multiclass.fit_ovr
,multiclass.predict_ovr
,predict_proba_ovr
,multiclass.fit_ovo
,multiclass.predict_ovo
,multiclass.fit_ecoc
和multiclass.predict_ecoc
已被弃用。请改用底层估计器。最近邻估计器过去接受任意关键字参数并将其传递给距离度量。这在scikit-learn 0.18中将不再支持;请改用
metric_params
参数。n_jobs
参数已从fit方法移至LinearRegression类的构造函数中。multiclass.OneVsRestClassifier
的predict_proba
方法现在在多类情况下为每个样本返回两个概率;这与其它估计器和方法的文档一致。但之前的版本意外地只返回了正概率。由 Will Lamond 和 Lars Buitinck 修复。
将
linear_model.ElasticNet
和linear_model.Lasso
中的precompute
默认值改为 False。设置precompute
为 “auto” 在n_samples > n_features
时发现较慢,因为计算 Gram 矩阵的计算成本很高,超过了仅为一个 alpha 拟合 Gram 的益处。现在precompute="auto"
已被弃用,将在 0.18 版本中移除。由 Manoj Kumar 提供。在
linear_model.enet_path
和linear_model.enet_path
中公开positive
选项,该选项约束系数为正。由 Manoj Kumar 提供。用户现在应在执行多类或多标签(即非二元)分类时,向
sklearn.metrics.f1_score
、sklearn.metrics.fbeta_score
、sklearn.metrics.recall_score
和sklearn.metrics.precision_score
提供显式的average
参数。由 Joel Nothman 提供。交叉验证的
scoring
参数现在接受'f1_micro'
、'f1_macro'
或'f1_weighted'
。'f1'
现在仅用于二元分类。类似的更改适用于'precision'
和'recall'
。由 Joel Nothman 提供。在
linear_model.enet_path
和linear_model.lasso_path
中移除了fit_intercept
、normalize
和return_models
参数。它们自 0.14 版本起已被弃用。从现在开始,所有估计器在调用任何
predict
类方法之前,如果模型未拟合,将统一引发NotFittedError
。由 Raghav RV 提供。对输入数据验证进行了重构,以实现更一致的输入验证。
check_arrays
函数被check_array
和check_X_y
取代。由 Andreas Müller 提供。允许在
neighbors.NearestNeighbors
的方法radius_neighbors
、kneighbors
、kneighbors_graph
和radius_neighbors_graph
中使用X=None
。
sklearn.neighbors.NearestNeighbors
及其相关类。如果设置为 None,则对于每个样本,这会避免将样本本身设置为第一个最近邻。由 Manoj Kumar 提供。
在
neighbors.kneighbors_graph
和neighbors.radius_neighbors_graph
中添加参数include_self
,用户必须显式设置。如果设置为 True,则将样本本身视为第一个最近邻。thresh
参数已弃用,取而代之的是GMM
、DPGMM
和VBGMM
中的新tol
参数。详情请参见Enhancements
部分。由 Hervé Bredin 提供。估计器在可能的情况下会将 dtype 为 object 的输入视为数值。由 Andreas Müller 提供。
估计器在拟合空数据(对于 2D 输入,样本数少于 1 或特征数少于 1)时会一致地引发
ValueError
。由 Olivier Grisel 提供。linear_model.SGDClassifier
、linear_model.SGDRegressor
、linear_model.Perceptron
、linear_model.PassiveAggressiveClassifier
和linear_model.PassiveAggressiveRegressor
的shuffle
选项现在默认为True
。cluster.DBSCAN
现在使用确定性初始化。random_state
参数已弃用。由 Erich Schubert 提供。
代码贡献者#
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