版本 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 贡献。修复
cluster.KMeans在 Fortran 顺序数据上precompute_distances=False时的错误。修复
ensemble.RandomForestClassifier的predict和predict_proba中的速度退化问题,由 Andreas Müller 贡献。修复
utils.shuffle将列表和数据帧转换为数组的回归问题,由 Olivier Grisel 贡献。
版本 0.16#
2015年3月26日
亮点#
速度改进(尤其是在
cluster.DBSCAN中),内存需求减少,错误修复和更好的默认设置。多项逻辑回归和
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 贡献。添加了对评分对象中样本权重的支持。支持样本权重的指标将自动受益于此。由 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"选项,用于实现最小化交叉熵或多项式损失而不是默认 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 贡献。metrics.pairwise_distances的并行计算现在支持 scipy 指标和自定义可调用对象。由 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 贡献。评分器文档得到改进,重点介绍了损失函数的处理。由 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和其他方法的存在的鸭子类型(ducktyping)。这修复了嵌套时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 贡献。当 metric 设置为
manhattan时,neighbors.NearestCentroid现在使用中位数作为质心。以前它使用的是均值。由 Manoj Kumar 贡献。通过剪辑大梯度并确保权重衰减重新缩放始终为正(对于大的 l2 正则化和大的学习率值),修复了
linear_model.SGDClassifier和linear_model.SGDRegressor中的数值稳定性问题。由 Olivier Grisel 贡献。在
cluster.AgglomerativeClustering(及其相关函数)中,当compute_full_tree设置为 “auto” 时,如果 n_clusters 高,则会构建完整的树,如果 n_clusters 低,则会提前停止,而行为应该相反。这已修复。由 Manoj Kumar 贡献。修复
linear_model.enet_path和linear_model.lasso_path中数据的惰性中心化。它以前是以 1 为中心。现已更改为以原点为中心。由 Manoj Kumar 贡献。修复在使用连接约束时
cluster.AgglomerativeClustering中预先计算的亲和矩阵的处理。由 Cathy Deng 贡献。修正了
sklearn.naive_bayes.MultinomialNB和sklearn.naive_bayes.BernoulliNB中class_prior的partial_fit处理。由 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中 tied 协方差的对数密度计算。由 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 class.
- fit 方法的
multiclass.OneVsRestClassifier的predict_proba方法现在在多分类情况下为每个样本返回两个概率;这与其他估计器和方法文档一致,但以前的版本意外地只返回了正概率。由 Will Lamond 和 Lars Buitinck 修复。linear_model.ElasticNet和linear_model.Lasso中 precompute 的默认值更改为 False。当 n_samples > n_features 时,设置 precompute 为 “auto” 被发现较慢,因为 Gram 矩阵的计算成本很高,超过了仅拟合 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,则样本本身被视为第一个最近邻居。thresh参数已弃用,取而代之的是GMM、DPGMM和VBGMM中的新tol参数。有关详细信息,请参阅Enhancements部分。由 Hervé Bredin 贡献。估计器将尽可能将 dtype 为 object 的输入视为数字。由 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