版本 0.16#
版本 0.16.1#
2015年4月14日
更新日志#
错误修复#
允许
covariance.LedoitWolf
中输入数据大于block_size
,由 Andreas Müller 完成。修复了
isotonic.IsotonicRegression
重复数据删除中的一个错误,该错误导致calibration.CalibratedClassifierCV
的结果不稳定,由 Jan Hendrik Metzen 完成。修复了
preprocessing.label_binarize
中标签排序的错误,由 Michael Heilman 完成。修复了
cross_decomposition.CCA
和cross_decomposition.PLSCanonical
中的几个稳定性和收敛问题,由 Andreas Müller 完成。修复了在 Fortran 顺序数据上使用
precompute_distances=False
时,cluster.KMeans
中的一个错误。修复了
ensemble.RandomForestClassifier
的predict
和predict_proba
中的一个速度退化问题,由 Andreas Müller 完成。修复了
utils.shuffle
将列表和数据框转换为数组的退化问题,由 Olivier Grisel 完成。
版本 0.16#
2015年3月26日
亮点#
速度提升(特别是在
cluster.DBSCAN
中),内存需求降低,错误修复和更好的默认设置。多项式 Logistic 回归和
linear_model.LogisticRegressionCV
中的路径算法。通过
decomposition.IncrementalPCA
进行核外 PCA 学习。使用
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 完成。添加了对 scorer 对象中样本权重的支持。支持样本权重的度量将自动从中受益。由 Noel Dawe 和 Vlad Niculae 完成。
在
linear_model.LogisticRegression
中添加了newton-cg
和lbfgs
求解器支持。由 Manoj Kumar 完成。添加了
selection="random"
参数,以实现linear_model.Lasso
、linear_model.ElasticNet
及相关模型的随机坐标下降。由 Manoj Kumar 完成。为
metrics.jaccard_similarity_score
和metrics.log_loss
添加了sample_weight
参数。由 Jatin Shah 完成。支持
preprocessing.LabelBinarizer
和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"
选项,以实现一个 Logistic 回归求解器,该求解器最小化交叉熵或多项式损失,而不是默认的 One-vs-Rest 设置。支持lbfgs
和newton-cg
求解器。由 Lars Buitinck 和 Manoj Kumar 完成。求解器选项newton-cg
由 Simon Wu 完成。当给定选项
sort=False
时,DictVectorizer
现在可以在一次遍历中对可迭代对象执行fit_transform
。由 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
的停止准则对样本数量的依赖性降低。由 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 完成。改进了关于 scorer 的文档,以突出损失函数的处理方式。由 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 聚类上的轮廓分析选择簇的数量
错误修复#
元估计器现在支持对
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 完成。以前,使用
gamma=g
的RBFSampler
近似rbf_kernel
时,使用的是gamma=g/2.
;现在gamma
的定义一致,这可能会显著改变您使用固定值时的结果。(如果您通过交叉验证选择gamma
,则影响可能不大。)由 Dougal Sutherland 完成。Pipeline 对象将
classes_
属性委托给底层估计器。这使得例如对 pipeline 对象进行 bagging 成为可能。由 Arnaud Joly 完成。当度量设置为
manhattan
时,neighbors.NearestCentroid
现在使用中位数作为质心。以前它使用的是均值。由 Manoj Kumar 完成。通过裁剪大梯度并确保权重衰减重新缩放始终为正(对于大的 L2 正则化和大的学习率值),修复了
linear_model.SGDClassifier
和linear_model.SGDRegressor
中的数值稳定性问题。由 Olivier Grisel 完成。当
compute_full_tree
设置为“auto”时,如果 n_clusters 很高,则构建完整的树;如果 n_clusters 较低,则提前停止,而在cluster.AgglomerativeClustering
(及其同类)中,行为应该相反。此问题已修复。由 Manoj Kumar 完成。修复了
linear_model.enet_path
和linear_model.lasso_path
中数据惰性居中处理的错误。它以前以一为中心,现在已更改为以原点为中心。由 Manoj Kumar 完成。修复了在
cluster.AgglomerativeClustering
中使用连通性约束时预计算亲和矩阵的处理。由 Cathy Deng 完成。修正了
sklearn.naive_bayes.MultinomialNB
和sklearn.naive_bayes.BernoulliNB
的partial_fit
对class_prior
的正确处理。由 Trevor Stephens 完成。修复了在多标签设置中使用未排序
labels
时metrics.precision_recall_fscore_support
中发生的崩溃。由 Andreas Müller 完成。避免在
sklearn.neighbors.NearestNeighbors
及其家族的radius_neighbors
、kneighbors
、kneighbors_graph
和radius_neighbors_graph
方法中跳过第一个最近邻居,当查询数据与拟合数据不同时。由 Manoj Kumar 完成。修复了
mixture.GMM
中协方差绑定的对数密度计算。由 Will Dawson 完成。修复了
feature_selection.SelectFdr
中的缩放错误,其中缺少一个因子n_features
。由 Andrew Tulloch 完成。修复了
neighbors.KNeighborsRegressor
和相关类在使用距离加权且存在相同数据点时发生的零除错误。由 Garret-R 完成。修复了 GMM 中非正定协方差矩阵的舍入误差。由 Alexis Mignon 完成。
修复了
naive_bayes.BernoulliNB
中条件概率计算的错误。由 Hanna Wallach 完成。使
neighbors.NearestNeighbors
的radius_neighbors
方法对于algorithm='brute'
返回落在边界上的样本。由 Yan Yi 完成。翻转
svm.SVC
的dual_coef_
符号,使其与文档和decision_function
一致。由 Artem Sobolev 完成。修复了
isotonic.IsotonicRegression
中平局处理的错误。现在我们使用目标值的加权平均(次要方法)。由 Andreas Müller 和 Michael Bommarito 完成。
API 更改摘要#
GridSearchCV
、cross_val_score
和其他元估计器不再将 pandas DataFrames 转换为数组,从而允许在自定义估计器中进行 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
参数。- fit 方法的
n_jobs
参数已移至 LinearRegression 类的构造函数。 LinearRegression 类。
- fit 方法的
multiclass.OneVsRestClassifier
的predict_proba
方法现在在多分类情况下为每个样本返回两个概率;这与其他估计器和该方法的文档一致,但早期版本意外地只返回了正概率。由 Will Lamond 和 Lars Buitinck 修复。linear_model.ElasticNet
和linear_model.Lasso
中precompute
的默认值更改为 False。当 n_samples > n_features 时,发现将 precompute 设置为“auto”会更慢,因为 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 完成。允许
sklearn.neighbors.NearestNeighbors
及其家族的radius_neighbors
、kneighbors
、kneighbors_graph
和radius_neighbors_graph
方法中X=None
。如果设置为 None,则对于每个样本,这将避免将样本本身设置为第一个最近邻居。由 Manoj Kumar 完成。在
neighbors.kneighbors_graph
和neighbors.radius_neighbors_graph
中添加了参数include_self
,该参数必须由用户显式设置。如果设置为 True,则样本本身被视为第一个最近邻居。GMM
、DPGMM
和VBGMM
中的thresh
参数已弃用,取而代之的是新的tol
参数。详情请参阅增强功能
部分。由 Hervé Bredin 完成。估计器在可能的情况下,会将 dtype 为对象的输入视为数字。由 Andreas Müller 完成。
估计器在拟合空数据(小于 1 个样本或 2D 输入小于 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