版本 0.15#
版本 0.15.2#
2014 年 9 月 4 日
错误修复#
修复了对 Minkowski 距离的
p参数的处理,该参数在最近邻模型中以前被忽略。由 Nikolay Mayorov 贡献。修复了在 32 位 Python 上使用提前停止功能时,
linear_model.LassoLars中重复的 alpha 值。由 Olivier Grisel 和 Fabian Pedregosa 贡献。修复了当 scikit-learn 使用 MSVC 而 NumPy 使用 MinGW 构建时,在 Windows 下的构建问题。由 Olivier Grisel 和 Federico Vaggi 贡献。
修复了坐标下降求解器中的数组索引溢出错误。由 Gael Varoquaux 贡献。
更好地处理 numpy 1.9 弃用警告。由 Gael Varoquaux 贡献。
删除了
cluster.KMeans中不必要的数据复制。由 Gael Varoquaux 贡献。显式关闭打开的文件以避免在 Python 3 下出现
ResourceWarnings。由 Calvin Giles 贡献。discriminant_analysis.LinearDiscriminantAnalysis的transform方法现在将输入投影到最具判别性的方向上。由 Martin Billinger 贡献。修复了
_tree.safe_realloc中潜在的溢出问题,由 Lars Buitinck 贡献。优化了
isotonic.IsotonicRegression的性能。由 Robert Bradshaw 贡献。nose不再是导入sklearn的运行时依赖项,仅用于运行测试。由 Joel Nothman 贡献。由 Joel Nothman、Lars Buitinck Matt Pico 和其他人贡献了许多文档和网站修复。
版本 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_score和grid_search.GridSearchCV接受 Python 列表作为输入数据。这对于文本处理管道的交叉验证和模型选择特别有用。由 Andreas Müller 贡献。修复了大多数估计器的输入数据检查,以接受实现 NumPy
__array__协议的输入数据。对于最近版本的 pandas,pandas.Series和pandas.DataFrame就是这种情况。由 Gael Varoquaux 贡献。修复了
linear_model.SGDClassifier中class_weight="auto"在具有非连续标签的数据上的回归问题。由 Olivier Grisel 贡献。
版本 0.15#
2014 年 7 月 15 日
亮点#
代码库的各个方面的速度和内存改进
随机森林(和 extra trees)的巨大速度和内存改进,也更好地受益于并行计算。
BernoulliRBM的增量拟合添加了
cluster.AgglomerativeClustering,用于具有平均链接、完整链接和 ward 策略的层次凝聚聚类。添加了
linear_model.RANSACRegressor,用于鲁棒回归模型。添加了使用
manifold.TSNE进行的降维,可用于可视化高维数据。
更新日志#
新功能#
添加了元估计器
ensemble.BaggingClassifier和ensemble.BaggingRegressor,用于集成任何类型的基本估计器。有关详细信息和示例,请参阅用户指南的 Bagging 部分。由 Gilles Louppe 贡献。新的无监督特征选择算法
feature_selection.VarianceThreshold,由 Lars Buitinck 贡献。添加了元估计器
linear_model.RANSACRegressor,用于回归模型的鲁棒拟合。由 Johannes Schönberger 贡献。添加了
cluster.AgglomerativeClustering,用于具有平均链接、完整链接和 ward 策略的层次凝聚聚类,由 Nelle Varoquaux 和 Gael Varoquaux 贡献。添加了速记构造函数
pipeline.make_pipeline和pipeline.make_union,由 Lars Buitinck 贡献。cross_validation.StratifiedKFold的 shuffle 选项。由 Jeffrey Blackburne 贡献。Imran Haque 贡献的高斯朴素贝叶斯的增量学习(
partial_fit)。添加了
BernoulliRBM的partial_fit。由 Danny Sullivan 贡献。添加了
learning_curve实用程序,用于绘制与训练大小相关的性能图。请参阅 绘制学习曲线并检查模型的缩放性。由 Alexander Fabisch 贡献。在
LassoCV和ElasticNetCV中添加了 positive 选项。由 Brian Wignall 和 Alexandre Gramfort 贡献。添加了
linear_model.MultiTaskElasticNetCV和linear_model.MultiTaskLassoCV。由 Manoj Kumar 贡献。添加了
manifold.TSNE。由 Alexander Fabisch 贡献。
增强功能#
为元估计器
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor添加了稀疏输入支持。由 Hamzeh Alsalhi 贡献。决策树的内存改进,由 Arnaud Joly 贡献。
决策树现在可以通过使用
max_leaf_nodes作为停止准则以最佳优先方式构建。重构了树代码以使用堆栈或优先级队列进行树构建。由 Peter Prettenhofer 和 Gilles Louppe 贡献。决策树现在可以拟合 fortran 和 c 风格的数组,以及非连续数组,而无需进行复制。如果输入数组的 dtype 与
np.float32不同,则会进行 fortran 风格的复制,因为 fortran 风格的内存布局具有速度优势。由 Peter Prettenhofer 和 Gilles Louppe 贡献。通过优化均方误差准则的计算,提高了回归树的速度。这带来了树、森林和梯度提升树模块的速度提升。由 Arnaud Joly 贡献。
sklearn.feature_extraction.image中的img_to_graph和grid_tograph函数现在在return_as=np.ndarray时返回np.ndarray而不是np.matrix。有关兼容性的更多信息,请参阅注释部分。更改了决策树的内部存储以使用结构数组。这修复了一些小错误,同时改进了代码并提供了一点速度提升。由 Joel Nothman 贡献。
通过利用 joblib 0.8 的新线程后端并在树拟合 Cython 代码中释放 GIL,减少了在
n_jobs != 1时并行拟合和预测随机树森林的内存使用和开销。由 Olivier Grisel 和 Gilles Louppe 贡献。sklearn.ensemble.gradient_boosting模块的速度改进。由 Gilles Louppe 和 Peter Prettenhofer 贡献。sklearn.ensemble.gradient_boosting模块的各种增强功能:用于拟合额外树的warm_start参数、用于拟合 GBM 风格树的max_leaf_nodes参数、用于在训练期间检查估计器的monitor拟合参数,以及详细代码的重构。由 Peter Prettenhofer 贡献。通过缓存特征值,加快了
sklearn.ensemble.ExtraTrees的速度。由 Arnaud Joly 贡献。通过避免在样本子集中尝试分割已找到的常量特征,加快了基于深度的树构建算法(例如决策树、随机森林、extra trees 或梯度树提升(具有基于深度的增长策略))的速度。由 Arnaud Joly 贡献。
为基于树的方法添加了
min_weight_fraction_leaf预剪枝参数:叶节点所需的输入样本的最小加权分数。由 Noel Dawe 贡献。添加了
metrics.pairwise_distances_argmin_min,由 Philippe Gervais 贡献。为
cluster.AffinityPropagation和cluster.MeanShift添加了 predict 方法,由 Mathieu Blondel 贡献。由 Denis Engemann 和 Alexandre Gramfort 贡献,优化了整个库中的向量和矩阵乘法。特别是,对于较旧的 NumPy 版本(早于 1.7.2),它们应该占用更少的内存。
精确率-召回率和 ROC 示例现在使用 train_test_split,并对为什么这些指标有用提供更多解释。由 Kyle Kastner 贡献。
decomposition.NMF的训练算法对于稀疏矩阵更快,并且具有更低的内存复杂度,这意味着它将优雅地扩展到大型数据集。由 Lars Buitinck 贡献。为
decomposition.FactorAnalysis添加了 svd_method 选项,默认值为 “randomized”,以节省内存并显着加快计算速度,由 Denis Engemann 和 Alexandre Gramfort 贡献。更改了
cross_validation.StratifiedKFold,使其尽可能保留原始样本顺序,以便在具有不可忽略的样本依赖性的数据集上不隐藏过拟合。由 Daniel Nouri 和 Olivier Grisel 贡献。由 John Novak 贡献,为
gaussian_process.GaussianProcessRegressor添加了多输出支持。由 Robert Layton 和 Joel Nothman 贡献,在最近邻估计器中支持预计算距离矩阵。
由 Lars Buitinck 贡献,优化了 NumPy 1.6 及更高版本的范数计算。特别是,k-means 算法不再需要与其输入大小相同的临时数据结构。
由 Manoj Kumar 贡献,
dummy.DummyClassifier现在可用于预测恒定输出值。由 Maheshakya Wijewardena 贡献,
dummy.DummyRegressor现在有一个 strategy 参数,允许预测训练集的均值、中位数或恒定输出值。由 Arnaud Joly 贡献,
metrics.roc_auc_score和metrics.average_precision_score现在支持多标签指示器格式的多标签分类输出。由 Andrew Tulloch 贡献,
isotonic.IsotonicRegression性能显着提高(对于大型问题,速度提升超过 100 倍)。由 Lars Buitinck 贡献,改进了线性模型 SGD 算法的速度和内存使用:当
n_jobs>1时,它现在使用线程而不是单独的进程。网格搜索和交叉验证允许输入数组中存在 NaN,以便可以在交叉验证循环中训练预处理器,例如
preprocessing.Imputer,避免潜在的倾斜结果。岭回归现在可以处理特征空间中的样本权重(以前只处理样本空间)。由 Michael Eickenberg 贡献。两种解决方案都由 Cholesky 求解器提供。
由 Noel Dawe 贡献,几个分类和回归指标现在支持带有新
sample_weight参数的加权样本:metrics.accuracy_score、metrics.zero_one_loss、metrics.precision_score、metrics.average_precision_score、metrics.f1_score、metrics.fbeta_score、metrics.recall_score、metrics.roc_auc_score、metrics.explained_variance_score、metrics.mean_squared_error、metrics.mean_absolute_error、metrics.r2_score。由 Joel Nothman 贡献,加快了样本生成器
datasets.make_multilabel_classification的速度。
文档改进#
“使用文本数据”教程现已纳入主文档的教程部分。包括练习和教程演示的框架。原始教程由 Olivier Grisel、Lars Buitinck 等多位作者创建。教程集成到 scikit-learn 文档中由 Jaques Grobler 完成。
添加了 计算性能 文档。讨论和示例涉及预测延迟/吞吐量以及影响速度的不同因素。有关构建更快模型以及在速度和预测能力之间选择相关折衷方案的附加提示。由 Eustache Diemert 贡献。
错误修复#
修复了
decomposition.MiniBatchDictionaryLearning中的错误:partial_fit未正常工作。修复了
linear_model.stochastic_gradient中的错误:l1_ratio被用作(1.0 - l1_ratio)。修复了
multiclass.OneVsOneClassifier中带有字符串标签的错误。修复了
LassoCV和ElasticNetCV中的错误:当precompute=True或precompute="auto"且n_samples > n_features时,它们不会预计算 Gram 矩阵。由 Manoj Kumar 贡献。修复了
feature_selection.f_regression中当变量未中心化时自由度的不正确估计。由 Virgile Fritsch 贡献。修复了
pre_dispatch != "all"(例如,在cross_val_score中)并行处理中的竞争条件。由 Olivier Grisel 贡献。当没有给定样本时,在
cluster.FeatureAgglomeration和cluster.WardAgglomeration中引发错误,而不是返回无意义的聚类。修复了
gradient_boosting.GradientBoostingRegressor中loss='huber'时的错误:gamma可能没有初始化。修复了当使用
sample_weight != None和/或bootstrap=True拟合时,随机树森林计算的特征重要性。由 Gilles Louppe 贡献。
API 更改摘要#
sklearn.hmm已弃用。计划在 0.17 版本中删除。在弃用后,
covariance.EllipticEnvelop的使用现已删除。请改用covariance.EllipticEnvelope。cluster.Ward已弃用。请改用cluster.AgglomerativeClustering。cluster.WardClustering已弃用。请改用cross_validation.Bootstrap已弃用。推荐改用cross_validation.KFold或cross_validation.ShuffleSplit。直接支持序列列表(或列表的列表)多标签格式已弃用。要将转换为支持的二进制指示器矩阵格式,请使用
preprocessing.MultiLabelBinarizer。由 Joel Nothman 贡献。根据概率 PCA 模型为
decomposition.PCA添加了 score 方法,并弃用了 score 实现不正确的ProbabilisticPCA模型。现在计算也利用了矩阵求逆引理以加快计算速度。由 Alexandre Gramfort 贡献。decomposition.FactorAnalysis的 score 方法现在返回样本的平均对数似然。使用 score_samples 获取每个样本的对数似然。由 Alexandre Gramfort 贡献。从交叉验证生成器生成布尔掩码(设置
indices=False)已弃用。对掩码的支持将在 0.17 中删除。自 0.10 版以来,生成器默认生成索引数组。由 Joel Nothman 贡献。包含
dtype=object的字符串(如 Pandas 中使用)的一维数组现在被认为是有效的分类目标。这修复了 0.13 版中某些分类器的一个回归问题。由 Joel Nothman 贡献。修复了
RandomizedPCA中错误的explained_variance_ratio_属性。由 Alexandre Gramfort 贡献。在
linear_model.ElasticNetCV和linear_model.LassoCV中,为每个l1_ratio而不是mean_l1_ratio拟合 alpha 值。如果提供的l1_ratio是长度大于一的一维数组类对象,这将把alphas_的形状从(n_alphas,)更改为(n_l1_ratio, n_alphas)。由 Manoj Kumar 贡献。修复了
linear_model.ElasticNetCV和linear_model.LassoCV在拟合截距且输入数据稀疏时的错误。自动 alpha 网格计算不正确,且使用 normalize 进行缩放时也存在错误。由 Manoj Kumar 贡献。修复了决策树、随机森林和梯度树提升在每次分割时抽取的最大特征数(
max_features)错误。以前,抽取的特征数在分割中有一个非常量特征后才开始计数。此错误修复将影响这些算法在存在常量特征时的计算和泛化性能。要恢复以前的泛化性能,应修改max_features的值。由 Arnaud Joly 贡献。修复了
ensemble.ExtraTreesClassifier和ensemble.ExtraTreesRegressor在每次分割时抽取的最大特征数(max_features)错误。以前,只有分割中的非常量特征被计为已抽取。现在常量特征也被计为已抽取。此外,必须至少有一个特征是非常量才能进行有效的分割。此错误修复将影响 extra trees 在存在常量特征时的计算和泛化性能。要恢复以前的泛化性能,应修改max_features的值。由 Arnaud Joly 贡献。修复了
utils.class_weight.compute_class_weight在class_weight=="auto"时的错误。以前,它对非整数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