历史版本#
版本 0.12.1#
2012 年 10 月 8 日
0.12.1 版本是一个错误修复版本,没有新增功能,而是对现有错误的修复集合。
更新日志#
Gael Varoquaux 改进了谱嵌入中的数值稳定性。
Gael Varoquaux 修复了 windows 64bit 下的 doctest。
Andreas Müller 和 Alexandre Gramfort 修复了 elastic net 的文档。
Gael Varoquaux 修复了 Fortran 序 NumPy 数组的正确行为。
Lars Buitinck 使 GridSearchCV 能够与非 CSR 稀疏矩阵一起工作。
Gael Varoquaux 修复了 MDS 中的并行计算。
Andreas Müller 修复了计数向量化器中的 Unicode 支持。
Virgile Fritsch 修复了 MinCovDet 在 X.shape = (3, 1) 时崩溃的问题。
Peter Prettenhofer 修复了 SGD 对象的克隆。
Virgile Fritsch 稳定了 GMM。
贡献者#
14 Peter Prettenhofer
12 Gael Varoquaux
10 Andreas Müller
5 Lars Buitinck
3 Virgile Fritsch
1 Alexandre Gramfort
1 Gilles Louppe
1 Mathieu Blondel
版本 0.12#
2012 年 9 月 4 日
更新日志#
Gilles Louppe 改进了决策树模块的各种速度。
Peter Prettenhofer 实现了 GradientBoostingRegressor 和 GradientBoostingClassifier 对 max_features 参数的特征子采样支持。
Peter Prettenhofer 为 GradientBoostingRegressor 添加了 Huber 和 Quantile 损失函数。
Gilles Louppe 实现了决策树和随机树森林对多输出分类和回归问题的支持。
Mathieu Blondel 添加了 LabelEncoder,这是一个用于规范化标签或转换非数值标签的简单实用类。
Mathieu Blondel 在随机梯度下降中添加了 epsilon-insensitive 损失,以及使用 modified huber 损失进行概率预测的能力。
Nelle Varoquaux 添加了多维缩放(MDS)。
Lars Buitinck 实现了 SVMlight 文件格式加载器,可以检测压缩(gzip/bzip2)文件并即时解压缩它们。
Olivier Grisel 实现了 SVMlight 文件格式序列化器,可以保留双精度浮点值。
Andreas Müller 添加了一个用于所有估计器的通用测试框架。
Gael Varoquaux 修复了不接受稀疏输入的估计器的可理解错误消息。
Gael Varoquaux 提高了层次聚类的速度。特别是构建树现在支持提前停止。当簇的数量相对于样本数量不小时,这非常有用。
Alexandre Gramfort 添加了用于联合特征选择的 MultiTaskLasso 和 MultiTaskElasticNet。
Andreas Müller 添加了 metrics.auc_score 和 metrics.average_precision_score 便利函数。
Andreas Müller 改进了特征选择模块中的稀疏矩阵支持。
@kernc 为文本特征提取模块添加了新的支持词边界的字符 n-gram 分析器。
Andreas Müller 修复了谱聚类中导致单点簇的错误。
Andreas Müller 在 CountVectorizer 中添加了一个忽略不常见词汇的选项 min_df。
Vlad Niculae 和 Alexandre Gramfort 实现了对某些线性模型(ElasticNet、Lasso 和 OrthogonalMatchingPursuit)中多个目标的支持。
Wei Li 修复了 decomposition.ProbabilisticPCA score 函数中的错误。
修复了梯度提升树中的特征重要性计算。
API 更改摘要#
旧的 scikits.learn 包已消失;所有代码都应该从 0.9 版本引入的 sklearn 导入。
在 metrics.roc_curve 中,thresholds 数组现在按相反顺序返回,以使其与返回的 fpr 和 tpr 的顺序保持一致。
在 hmm 对象中,如 hmm.GaussianHMM、hmm.MultinomialHMM 等,所有参数必须在初始化对象时传递给对象,而不是通过 fit。现在 fit 只接受数据作为输入参数。
对于所有 SVM 类,修复了 gamma 的错误行为。以前,默认 gamma 值只在第一次调用 fit 时计算并存储。现在它在每次调用 fit 时重新计算。
所有 Base 类现在都是抽象元类,因此不能被实例化。
cluster.ward_tree 现在也返回父数组。这对于提前停止是必需的,在这种情况下,树没有完全构建。
在 CountVectorizer 中,min_n 和 max_n 参数合并为 n_gram_range 参数,以便可以同时进行网格搜索。
在 CountVectorizer 中,默认情况下忽略仅出现在一个文档中的词汇。要重现以前的行为,请设置 min_df=1。
修复了 API 不一致性:linear_model.SGDClassifier.predict_proba 在拟合两个类时现在返回 2d 数组。
修复了 API 不一致性:discriminant_analysis.QuadraticDiscriminantAnalysis.decision_function 和 discriminant_analysis.LinearDiscriminantAnalysis.decision_function 在拟合两个类时现在返回 1d 数组。
用于拟合 LassoCV 和 ElasticNetCV 的 alphas 网格现在存储在属性 alphas_ 中,而不是覆盖 init 参数 alphas。
当通过交叉验证估计 alpha 时,线性模型将估计值存储在 alpha_ 属性中,而不是仅仅存储在 alpha 或 best_alpha 中。
GradientBoostingClassifier 现在支持 staged_predict_proba 和 staged_predict。
svm.sparse.SVC 和其他稀疏 SVM 类现在已弃用。支持向量机模块中的所有类现在根据输入自动选择稀疏或密集表示。
所有聚类算法现在将提供给 fit 的数组 X 解释为输入数据,特别是 SpectralClustering 和 AffinityPropagation,它们以前期望亲和矩阵。
对于将所需簇数作为参数的聚类算法,此参数现在称为 n_clusters。
贡献者#
267 Andreas Müller
94 Gilles Louppe
89 Gael Varoquaux
79 Peter Prettenhofer
60 Mathieu Blondel
57 Alexandre Gramfort
52 Vlad Niculae
45 Lars Buitinck
44 Nelle Varoquaux
37 Jaques Grobler
30 Alexis Mignon
30 Immanuel Bayer
27 Olivier Grisel
16 Subhodeep Moitra
13 Yannick Schwartz
12 @kernc
11 Virgile Fritsch
9 Daniel Duckworth
9 Fabian Pedregosa
9 Robert Layton
8 John Benediktsson
7 Marko Burjek
5 Nicolas Pinto
4 Alexandre Abraham
4 Jake Vanderplas
3 Brian Holt
3 Edouard Duchesnay
3 Florian Hoenig
3 flyingimmidev
2 Francois Savard
2 Hannes Schulz
2 Peter Welinder
2 Yaroslav Halchenko
2 Wei Li
1 Alex Companioni
1 Brandyn A. White
1 Bussonnier Matthias
1 Charles-Pierre Astolfi
1 Dan O’Huiginn
1 David Cournapeau
1 Keith Goodman
1 Ludwig Schwardt
1 Olivier Hervieu
1 Sergio Medina
1 Shiqiao Du
1 Tim Sheerman-Chase
1 buguen
版本 0.11#
2012 年 5 月 7 日
更新日志#
亮点#
Peter Prettenhofer 和 Scott White 实现了用于分类和回归的梯度提升回归树(梯度提升树)。
Lars Buitinck 实现了支持分类变量的简单基于字典的特征加载器(DictVectorizer)。
Satrajit Ghosh 添加了 Matthews 相关系数(metrics.matthews_corrcoef),并为 precision_score、metrics.recall_score 和 f1_score 添加了宏观和微观平均选项。
Andreas Müller 实现了集成学习(梯度提升、随机森林、装袋、投票、堆叠)的泛化误差袋外估计。
Alexandre Gramfort 和 Gael Varoquaux 实现了用于特征选择的随机稀疏线性模型。
Clay Woolam 实现了用于半监督学习的标签传播。注意:半监督 API 仍在开发中,可能会发生变化。
Bertrand Thirion 为经典高斯混合模型添加了 BIC/AIC 模型选择,并将其 API 与 scikit-learn 的其余部分统一。
Yannick Schwartz 添加了 sklearn.cross_validation.StratifiedShuffleSplit,它是一个具有平衡分割的 sklearn.cross_validation.ShuffleSplit。
Robert Layton 添加了 NearestCentroid 分类器,以及实现收缩质心分类的 shrink_threshold 参数。
其他变化#
Peter Prettenhofer 合并了随机梯度下降模块的密集和稀疏实现,并公开了用于序列数据集 seq_dataset 和权重向量 weight_vector 的实用扩展类型。
Mathieu Blondel 为随机梯度下降模块添加了 partial_fit(支持在线/小批量学习)和 warm_start。
Lars Buitinck 合并了支持向量机类和 LogisticRegression 的密集和稀疏实现。
Mathieu Blondel 实现了回归器可以在多类和多输出算法模块中用作基本估计器。
Mathieu Blondel 为 metrics.pairwise_distances 和 metrics.pairwise.pairwise_kernels 添加了 n_jobs 选项用于并行计算。
Robert Layton 实现了 K-means 可以并行运行,使用 K-means 或 cluster.KMeans 的 n_jobs 参数。
Olivier Grisel 改进了交叉验证:评估估计器性能和调整估计器超参数的文档,并引入了新的 cross_validation.train_test_split 辅助函数。
Andreas Müller 更改了 SVC 成员 coef_ 和 intercept_ 的符号,以与 decision_function 保持一致;对于 kernel==linear,coef_ 在一对一情况下得到修复。
Reuben Fletcher-Costin 改进了高效留一法交叉验证岭回归的性能,特别是对于 n_samples > n_features 的情况,在 RidgeCV 中。
Olivier Grisel 重构并简化了文本特征提取 API,并修复了可能导致负 IDF 的错误。
_BaseHMM 模块中的束剪枝选项已被删除,因为它难以 Cython 化。如果您有兴趣贡献 Cython 版本,可以使用 git 历史记录中的 python 版本作为参考。
Nearest Neighbors 中的类现在支持任意 Minkowski 度量进行最近邻搜索。度量可以通过参数 p 指定。
API 更改摘要#
covariance.EllipticEnvelop 现在已弃用。请改用 EllipticEnvelope。
Nearest Neighbors 模块中的 NeighborsClassifier 和 NeighborsRegressor 已消失。请改用 KNeighborsClassifier、RadiusNeighborsClassifier、KNeighborsRegressor 和/或 RadiusNeighborsRegressor 类。
随机梯度下降模块中的稀疏类现在已弃用。
在 mixture.GMM、mixture.DPGMM 和 mixture.VBGMM 中,参数必须在初始化对象时传递给对象,而不是通过 fit。现在 fit 只接受数据作为输入参数。
GMM 模块中的 rvs 和 decode 方法现在已弃用。应改用 sample 和 score 或 predict。
单变量特征选择对象中的 _scores 和 _pvalues 属性现在已弃用。应改用 scores_ 或 pvalues_。
在 LogisticRegression、LinearSVC、SVC 和 NuSVC 中,class_weight 参数现在是一个初始化参数,而不是 fit 的参数。这使得对此参数进行网格搜索成为可能。
LFW data 现在始终是 shape (n_samples, n_features),以与 Olivetti faces 数据集保持一致。使用 images 和 pairs 属性访问自然图像形状。
在 LinearSVC 中,multi_class 参数的含义发生了变化。选项现在是 'ovr' 和 'crammer_singer',其中 'ovr' 是默认值。这不会改变默认行为,但希望能减少混淆。
feature_selection.text.Vectorizer 类已弃用,并由 feature_selection.text.TfidfVectorizer 取代。
文本特征提取的预处理器/分析器嵌套结构已被删除。所有这些功能现在都作为平面构造函数参数直接传递给 feature_selection.text.TfidfVectorizer 和 feature_selection.text.CountVectorizer,特别是现在使用以下参数:
analyzer 可以是 'word' 或 'char' 来切换默认分析方案,或使用特定的 python 可调用对象(如以前)。
引入了 tokenizer 和 preprocessor 以便在新 API 中仍然可以自定义这些步骤。
input 明确控制如何解释传递给 fit 和 predict 的序列:文件名、文件对象或直接(字节或 Unicode)字符串。
字符集解码是显式且默认为严格的。
词汇表(无论是否拟合)现在存储在 vocabulary_ 属性中,以符合项目约定。
feature_selection.text.TfidfVectorizer 类现在直接派生自 feature_selection.text.CountVectorizer,使网格搜索变得简单。
_BaseHMM 模块中的 rvs 方法现在已弃用。应改用 sample。
_BaseHMM 模块中的束剪枝选项已删除,因为它难以 Cython 化。如果您有兴趣,可以在 git 历史记录中查找代码。
SVMlight 格式加载器现在支持具有零基和一基列索引的文件,因为两者都出现在“野外”。
ShuffleSplit 类中的参数现在与 StratifiedShuffleSplit 保持一致。test_fraction 和 train_fraction 参数已弃用,并重命名为 test_size 和 train_size,可以接受 float 和 int。
Bootstrap 类中的参数现在与 StratifiedShuffleSplit 保持一致。n_test 和 n_train 参数已弃用,并重命名为 test_size 和 train_size,可以接受 float 和 int。
向 Nearest Neighbors 中的类添加了参数 p,用于指定任意 Minkowski 度量进行最近邻搜索。
贡献者#
282 Andreas Müller
239 Peter Prettenhofer
198 Gael Varoquaux
129 Olivier Grisel
114 Mathieu Blondel
103 Clay Woolam
96 Lars Buitinck
88 Jaques Grobler
82 Alexandre Gramfort
50 Bertrand Thirion
42 Robert Layton
28 flyingimmidev
26 Jake Vanderplas
26 Shiqiao Du
21 Satrajit Ghosh
17 David Marek
17 Gilles Louppe
14 Vlad Niculae
11 Yannick Schwartz
10 Fabian Pedregosa
9 fcostin
7 Nick Wilson
5 Adrien Gaidon
5 Nicolas Pinto
4 David Warde-Farley
5 Nelle Varoquaux
5 Emmanuelle Gouillart
3 Joonas Sillanpää
3 Paolo Losi
2 Charles McCarthy
2 Roy Hyunjin Han
2 Scott White
2 ibayer
1 Brandyn White
1 Carlos Scheidegger
1 Claire Revillet
1 Conrad Lee
1 Edouard Duchesnay
1 Jan Hendrik Metzen
1 Meng Xinfan
1 Rob Zinkov
1 Shiqiao
1 Udi Weinsberg
1 Virgile Fritsch
1 Xinfan Meng
1 Yaroslav Halchenko
1 jansoe
1 Leon Palafox
版本 0.10#
2012 年 1 月 11 日
更新日志#
取消了 Python 2.5 兼容性;使用 scikit-learn 所需的最低 Python 版本现在是 2.6。
Gael Varoquaux 使用 graph Lasso 估计稀疏逆协方差,并提供相关的交叉验证估计器。
Brian Holt、Peter Prettenhofer、Satrajit Ghosh 和 Gilles Louppe 实现了新的树模块。该模块附带完整的文档和示例。
Gilles Louppe 修复了 RFE 模块中的错误(issue #378)。
Brian Holt 修复了支持向量机模块中的内存泄漏(issue #367)。
Fabian Pedregosa 等人加快了测试速度。
Robert Layton 添加了 Silhouette Coefficient 聚类分析评估指标作为 silhouette_score。
Olivier Grisel 修复了 K-means 中 n_init 参数处理的错误:聚类算法曾运行 n_init 次,但保留的是最后一个解而不是最佳解。
随机梯度下降模块中的小重构;合并了密集和稀疏预测方法;通过在拟合后将模型参数转换为 Fortran 样式数组来提高测试时间性能(仅限多类)。
Robert Layton 添加了 Adjusted Mutual Information 指标作为 adjusted_mutual_info_score。
Alexandre Gramfort 实现了来自 libsvm/liblinear 的 SVC/SVR/LinearSVC/LogisticRegression 等模型支持按样本数缩放 C 正则化参数。
Gilles Louppe 和 Brian Holt 实现了新的集成方法模块。该模块附带随机森林算法和 extra-trees 方法,以及文档和示例。
Virgile Fritsch 实现了新颖性和异常值检测:outlier 和 novelty detection。
Andreas Müller 实现了内核近似:一种实现内核近似的转换,用于在非线性内核上进行快速 SGD。
Vlad Niculae 修复了正交匹配追踪(OMP)中由于原子交换引起的错误。
Vlad Niculae 实现了具有预计算字典的稀疏编码。
Olivier Grisel 改进了 Mini Batch K-Means 的性能。
Mathieu Blondel 实现了 K-means 对稀疏矩阵的支持。
Jake Vanderplas 改进了开发人员和 sklearn.utils 模块的文档。
Mathieu Blondel 实现了向量化 20newsgroups 数据集加载器(fetch_20newsgroups_vectorized)。
Lars Buitinck 实现了多类和多输出算法。
Mathieu Blondel 实现了用于快速计算稀疏矩阵均值和方差的实用程序。
Olivier Grisel 实现了 scale 和 sklearn.preprocessing.Scaler 在稀疏矩阵上的工作。
Gilles Louppe 实现了使用决策树和/或树森林的特征重要性。
Gilles Louppe 实现了随机树森林的并行实现。
Olivier Grisel 实现了 sklearn.cross_validation.ShuffleSplit 可以对训练集和测试集进行子采样。
Andreas Müller 修复了文档构建中的错误。
API 更改摘要#
以下是从 scikit-learn 0.9 版本升级时的代码迁移说明
一些估计器为了节省内存可能会覆盖其输入,它们以前有 overwrite_ 参数;这些参数已被替换为具有完全相反含义的 copy_ 参数。
这尤其影响 linear_model 中的一些估计器。默认行为仍然是复制传入的所有内容。
SVMlight 数据集加载器 load_svmlight_file 不再支持同时加载两个文件;请改用 load_svmlight_files。此外,(未使用的) buffer_mb 参数已删除。
随机梯度下降模块中的稀疏估计器使用密集参数向量 coef_ 而不是 sparse_coef_。这显著提高了测试时间性能。
协方差估计模块现在具有协方差的鲁棒估计器,即最小协方差行列式估计器。
cluster 中的聚类评估指标已重构,但更改是向后兼容的。它们已移至 metrics.cluster.supervised,以及包含 Silhouette Coefficient 的 metrics.cluster.unsupervised。
permutation_test_score 函数现在的行为与 cross_val_score 相同(即使用跨折叠的平均得分)。
交叉验证生成器现在默认使用整数索引(indices=True)而不是布尔掩码。这使得稀疏矩阵数据的使用更加直观。
用于稀疏编码的函数 sparse_encode 和 sparse_encode_parallel 已合并为 sparse_encode,并且数组的形状已转置,以与矩阵分解设置保持一致,而不是回归设置。
修复了 SVMlight/LibSVM 文件格式处理中的差一错误;使用 dump_svmlight_file 生成的文件应重新生成。(它们应该继续工作,但意外地在前面添加了一列额外的零。)
BaseDictionaryLearning 类替换为 SparseCodingMixin。
sklearn.utils.extmath.fast_svd 已重命名为 randomized_svd,默认过采样现在固定为 10 个额外的随机向量,而不是将要提取的组件数量加倍。新行为遵循参考论文。
贡献者#
以下人员自上次发布以来为 scikit-learn 做出了贡献
246 Andreas Müller
242 Olivier Grisel
220 Gilles Louppe
183 Brian Holt
166 Gael Varoquaux
144 Lars Buitinck
73 Vlad Niculae
65 Peter Prettenhofer
64 Fabian Pedregosa
60 Robert Layton
55 Mathieu Blondel
52 Jake Vanderplas
44 Noel Dawe
38 Alexandre Gramfort
24 Virgile Fritsch
23 Satrajit Ghosh
3 Jan Hendrik Metzen
3 Kenneth C. Arnold
3 Shiqiao Du
3 Tim Sheerman-Chase
3 Yaroslav Halchenko
2 Bala Subrahmanyam Varanasi
2 DraXus
2 Michael Eickenberg
1 Bogdan Trach
1 Félix-Antoine Fortin
1 Juan Manuel Caicedo Carvajal
1 Nelle Varoquaux
1 Nicolas Pinto
1 Tiziano Zito
1 Xinfan Meng
版本 0.9#
2011 年 9 月 21 日
scikit-learn 0.9 于 2011 年 9 月发布,距离 0.8 版本发布三个月,包括新模块流形学习、狄利克雷过程以及几个新算法和文档改进。
此版本还包括 Vlad Niculae 作为 Google Summer of Code 项目的一部分开发的字典学习工作。
更新日志#
Jake Vanderplas 和 Fabian Pedregosa 实现了新的流形学习模块。
Alexandre Passos 实现了新的狄利克雷过程高斯混合模型。
Jake Vanderplas 重构了最近邻模块:通用重构、输入稀疏矩阵支持、速度和文档改进。有关 API 更改的完整列表,请参阅下一节。
Gilles Louppe 改进了特征选择模块:RFE 类的重构、文档重写、效率提高和次要 API 更改。
Vlad Niculae、Gael Varoquaux 和 Alexandre Gramfort 实现了稀疏主成分分析(SparsePCA 和 MiniBatchSparsePCA)。
Jean Kossaifi 实现了估计器打印行为独立于架构和 Python 版本。
Mathieu Blondel 和 Lars Buitinck 实现了 libsvm/svmlight 格式加载器。
Fabian Pedregosa 改进了文档:示例画廊中的缩略图。
Fabian Pedregosa 修复了支持向量机模块中的重要错误(段错误、性能不佳)。
Lars Buitinck 添加了多项式朴素贝叶斯和伯努利朴素贝叶斯。
Lars Buitinck 优化了文本特征提取。
Lars Buitinck 实现了卡方特征选择(feature_selection.chi2)。
Gilles Louppe 重构了生成数据集模块。
Mathieu Blondel 实现了多类和多输出算法。
Jake Vanderplas 重写了 Ball tree。
Robert Layton 实现了 DBSCAN 算法。
Robert Layton 实现了 Kmeans 预测和转换。
Olivier Grisel 重构了预处理模块。
Conrad Lee 加快了均值漂移。
Olivier Grisel 和 Gael Varoquaux 添加了新的 Bootstrap、随机排列交叉验证(Shuffle & Split)以及交叉验证方案的各种其他改进。
Olivier Grisel 添加了调整兰德指数和 V-Measure 聚类评估指标。
Vlad Niculae 添加了正交匹配追踪。
Vlad Niculae 在特征提取模块中添加了 2D 补丁提取器实用程序。
Gael Varoquaux 和 Alexandre Gramfort 实现了 LassoLarsCV(使用 Lars 算法的交叉验证 Lasso 解算器)和 LassoLarsIC(Lars 中的 BIC/AIC 模型选择)。
Olivier Hervieu 改进了 metrics.roc_curve 的可扩展性。
Robert Layton 添加了距离辅助函数 metrics.pairwise_distances 和 metrics.pairwise.pairwise_kernels。
Nelle Varoquaux 和 Peter Prettenhofer 实现了 Mini-Batch K-Means。
Pietro Berkes 实现了 mldata 实用程序。
David Warde-Farley 实现了 Olivetti faces 数据集。
API 更改摘要#
以下是从 scikit-learn 0.8 版本升级时的代码迁移说明
scikits.learn 包重命名为 sklearn。为了向后兼容,仍然存在 scikits.learn 包别名。
依赖于 scikit-learn 0.9+ 的第三方项目应升级其代码库。例如,在 Linux / MacOSX 下运行(先备份!)
find -name "*.py" | xargs sed -i 's/\bscikits.learn\b/sklearn/g'
估计器不再接受模型参数作为 fit 参数:相反,所有参数必须仅作为构造函数参数传递,或使用现在公共的 set_params 方法(继承自 BaseEstimator)。
一些估计器仍然可以在 fit 上接受关键字参数,但这仅限于数据相关的值(例如,从 X 数据矩阵预计算的 Gram 矩阵或亲和矩阵)。
cross_val 包已重命名为 cross_validation,尽管为了向后兼容,仍然存在 cross_val 包别名。
依赖于 scikit-learn 0.9+ 的第三方项目应升级其代码库。例如,在 Linux / MacOSX 下运行(先备份!)
find -name "*.py" | xargs sed -i 's/\bcross_val\b/cross_validation/g'
sklearn.cross_validation.cross_val_score 函数的 score_func 参数现在预计接受 y_test 和 y_predicted 作为分类和回归任务的唯一参数,或接受 X_test 作为无监督估计器的唯一参数。
支持向量机算法的 gamma 参数默认设置为 1 / n_features,而不是 1 / n_samples。
sklearn.hmm 已标记为孤立:除非有人挺身而出贡献文档、示例并修复潜在的数值稳定性问题,否则它将在 scikit-learn 0.11 版本中删除。
sklearn.neighbors 已成为子模块。以前可用的两个估计器 NeighborsClassifier 和 NeighborsRegressor 已标记为已弃用。它们的功能已分为五个新类:NearestNeighbors 用于无监督邻居搜索,KNeighborsClassifier 和 RadiusNeighborsClassifier 用于有监督分类问题,以及 KNeighborsRegressor 和 RadiusNeighborsRegressor 用于有监督回归问题。
sklearn.ball_tree.BallTree 已移至 sklearn.neighbors.BallTree。使用前者将生成警告。
sklearn.linear_model.LARS() 和相关类(LassoLARS、LassoLARSCV 等)已重命名为 sklearn.linear_model.Lars()。
sklearn.metrics.pairwise 中的所有距离度量和内核现在都有一个 Y 参数,默认值为 None。如果未给出,则结果是 Y 中每个样本之间的距离(或内核相似度)。如果给出,则结果是 X 中样本到 Y 中样本之间的成对距离(或内核相似度)。
sklearn.metrics.pairwise.l1_distance 现在称为 manhattan_distance,默认返回成对距离。对于分量距离,将参数 sum_over_features 设置为 False。
向后兼容性包别名和其他已弃用的类和函数将在 0.11 版本中删除。
贡献者#
38 人为此次发布做出了贡献。
387 Vlad Niculae
320 Olivier Grisel
192 Lars Buitinck
179 Gael Varoquaux
168 Fabian Pedregosa (INRIA, Parietal Team)
127 Jake Vanderplas
120 Mathieu Blondel
85 Alexandre Passos
67 Alexandre Gramfort
57 Peter Prettenhofer
56 Gilles Louppe
42 Robert Layton
38 Nelle Varoquaux
32 Jean Kossaifi
30 Conrad Lee
22 Pietro Berkes
18 andy
17 David Warde-Farley
12 Brian Holt
11 Robert
8 Amit Aides
8 Virgile Fritsch
7 Yaroslav Halchenko
6 Salvatore Masecchia
5 Paolo Losi
4 Vincent Schut
3 Alexis Metaireau
3 Bryan Silverthorn
3 Andreas Müller
2 Minwoo Jake Lee
1 Emmanuelle Gouillart
1 Keith Goodman
1 Lucas Wiman
1 Nicolas Pinto
1 Thouis (Ray) Jones
1 Tim Sheerman-Chase
版本 0.8#
2011 年 5 月 11 日
scikit-learn 0.8 于 2011 年 5 月发布,距离第一次“国际”scikit-learn 编码冲刺一个月,其标志是包含了重要模块:层次聚类、交叉分解、非负矩阵分解(NMF 或 NNMF)、对 Python 3 的初步支持以及重要的增强和错误修复。
更新日志#
在此版本中引入了几个新模块
Vincent Michel、Bertrand Thirion、Alexandre Gramfort 和 Gael Varoquaux 实现了新的层次聚类模块。
Mathieu Blondel 实现了核主成分分析(kPCA)。
Olivier Grisel 实现了 Labeled Faces in the Wild 人脸识别数据集。
由 Edouard Duchesnay 贡献的新的 交叉分解 (Cross decomposition) 模块。
由 Virgile Fritsch 在 协方差估计 (Covariance estimation) 模块中实现的 Oracle Approximating Shrinkage 算法。
其他一些模块也受益于重大的改进或清理。
对 Python 3 的初步支持:构建和导入干净,一些模块可用,而另一些模块的测试失败,由 Fabian Pedregosa 贡献。
PCA现在可以通过 Pipeline 对象使用,由 Olivier Grisel 贡献。修复了 libsvm 绑定的内存泄漏,以及 64 位更安全的 BallTree,由 Lars Buitinck 贡献。
修复了 K-means 算法中的错误和风格问题,由 Jan Schlüter 贡献。
为高斯混合模型添加了 converged 属性,由 Vincent Schut 贡献。
在
LinearDiscriminantAnalysis中实现了transform和predict_log_proba,由 Mathieu Blondel 贡献。支持向量机 (Support Vector Machines) 模块中的重构和错误修复,由 Fabian Pedregosa、Gael Varoquaux 和 Amit Aides 贡献。
重构了 SGD 模块(删除了代码重复,更好的变量命名),添加了样本权重接口,由 Peter Prettenhofer 贡献。
使用 Cython 封装了 BallTree,由 Thouis (Ray) Jones 贡献。
添加了函数
svm.l1_min_c,由 Paolo Losi 贡献。错别字、文档风格等修复,由 Yaroslav Halchenko、Gael Varoquaux、Olivier Grisel、Yann Malet、Nicolas Pinto、Lars Buitinck 和 Fabian Pedregosa 贡献。
贡献者#
促成此次发布的贡献者(按提交次数排序)
159 Olivier Grisel
96 Vlad Niculae
32 Paolo Losi
11 Virgile Fritsch
7 Lars Buitinck
6 Vincent Michel
4 Thouis (Ray) Jones
4 Vincent Schut
3 Jan Schlüter
2 Julien Miotte
2 Yann Malet
2 Yaroslav Halchenko
1 Amit Aides
1 Feth Arezki
1 Meng Xinfan
版本 0.7#
2011年3月2日
scikit-learn 0.7 于 2011 年 3 月发布,距离 0.6 版本发布约三个月。此版本的特点是现有算法(如 k-近邻和 K-Means 算法)的速度改进,以及包含用于计算岭广义交叉验证解的有效算法。与前一个版本不同,此版本没有添加新模块。
更新日志#
高斯混合模型采样的性能改进 [Jan Schlüter]。
在
RidgeCV中实现了高效的留一法交叉验证岭回归 [Mathieu Blondel]。更好地处理
linear_model.lars_path中的共线性和提前停止 [Alexandre Gramfort 和 Fabian Pedregosa]。修复了 liblinear 标签顺序和系数符号的错误 [Dan Yamins, Paolo Losi, Mathieu Blondel 和 Fabian Pedregosa]。
高维空间中近邻算法的性能改进 [Fabian Pedregosa]。
KMeans性能改进 [Gael Varoquaux 和 James Bergstra]。基于 SVM 的类的完整性检查 [Mathieu Blondel]。
neighbors.NeighborsClassifier和neighbors.kneighbors_graph的重构:为 k-近邻搜索添加了不同的算法,并实现了一种更稳定的算法来查找质心权重。还为该模块添加了一些开发者文档,更多信息请参阅 notes_neighbors [Fabian Pedregosa]。文档改进:将
pca.RandomizedPCA和LogisticRegression添加到类参考中。还添加了用于聚类的矩阵参考和其他修复 [Gael Varoquaux, Fabian Pedregosa, Mathieu Blondel, Olivier Grisel, Virgile Fritsch, Emmanuelle Gouillart]。在使用了 liblinear 的类中绑定了 decision_function,包括密集和稀疏变体,例如
LinearSVC或LogisticRegression[Fabian Pedregosa]。metrics.pairwise.euclidean_distances和pca.RandomizedPCA的性能和 API 改进 [James Bergstra]。修复 NetBSD 下的编译问题 [Kamel Ibn Hassen Derouiche]。
允许
hmm.GaussianHMM中的输入序列具有不同的长度 [Ron Weiss]。修复由于索引不正确导致的 affinity propagation 中的错误 [Xinfan Meng]。
贡献者#
促成此次发布的贡献者(按提交次数排序)
14 Dan Yamins
12 Gael Varoquaux
2 Satrajit Ghosh
2 Vincent Dubourg
1 Emmanuelle Gouillart
1 Kamel Ibn Hassen Derouiche
1 Paolo Losi
1 VirgileFritsch
1 Xinfan Meng
版本 0.6#
2010年12月21日
scikit-learn 0.6 于 2010 年 12 月发布。它的标志是包含了一些新模块以及对旧模块的重命名。它也标志着包含了一些新的示例,包括对真实世界数据集的应用。
更新日志#
由 Peter Prettenhofer 贡献的新 随机梯度下降 (stochastic gradient) 模块。该模块附带完整的文档和示例。
改进的 svm 模块:内存消耗减少了 50%,自动设置类权重的启发式方法,以及为样本分配权重的可能性(参见 SVM: Weighted samples 中的示例)。
由 Vincent Dubourg 贡献的新 高斯过程 (Gaussian Processes) 模块。该模块也有出色的文档和一些非常简洁的示例。请参阅 example_gaussian_process_plot_gp_regression.py 或 example_gaussian_process_plot_gp_probabilistic_classification_after_regression.py 以了解其功能。
现在可以使用 liblinear 的 Multi-class SVC(
LinearSVC中的 multi_class 选项)。文本特征提取的新功能和性能改进。
改进的稀疏矩阵支持,包括主要类 (
GridSearchCV) 以及模块 sklearn.svm.sparse 和 sklearn.linear_model.sparse。许多很酷的新示例,并创建了一个使用真实世界数据集的新部分。其中包括:使用特征脸和 SVMs 进行人脸识别示例、物种分布建模、维基百科主特征向量 等。
更快的 最小角回归 (Least Angle Regression) 算法。现在它在最坏情况下比 R 版本快 2 倍,在某些情况下快 10 倍。
更快的坐标下降算法。特别是,lasso 的完整路径版本 (
linear_model.lasso_path) 比以前快 200 倍以上。现在可以从
LogisticRegression模型中获取概率估计。模块重命名:glm 模块已重命名为 linear_model,gmm 模块已包含在更通用的 mixture 模块中,sgd 模块已包含在 linear_model 中。
许多错误修复和文档改进。
贡献者#
促成此次发布的贡献者(按提交次数排序)
207 Olivier Grisel
167 Fabian Pedregosa
33 Vincent Dubourg
21 Ron Weiss
9 Bertrand Thirion
3 Anne-Laure Fouque
2 Ronan Amicel
版本 0.5#
2010年10月11日
更新日志#
新类#
在模块
svm和linear_model的某些分类器中支持稀疏矩阵(参见svm.sparse.SVC、svm.sparse.SVR、svm.sparse.LinearSVC、linear_model.sparse.Lasso、linear_model.sparse.ElasticNet)。新的
Pipeline对象用于组合不同的估计器。模块 特征选择 (Feature selection) 中的递归特征消除例程。
在 linear_model 模块中添加了各种能够进行交叉验证的类(
LassoCV、ElasticNetCV等)。新的、更高效的 LARS 算法实现。还实现了该算法的 Lasso 变体。请参阅
lars_path、Lars和LassoLars。新的隐马尔可夫模型模块(参见类
hmm.GaussianHMM、hmm.MultinomialHMM、hmm.GMMHMM)。新模块 feature_extraction(参见 类参考)。
模块 sklearn.fastica 中的新 FastICA 算法。
文档#
修复#
API 更改:使变量名称符合 PEP-8 规范,赋予更有意义的名称。
修复了 svm 模块在共享内存环境 (multiprocessing) 下运行的错误。
现在可以再次从 sphinx 文档生成 latex(以及 PDF)。
示例#
使用 mlcomp 数据集的新示例:
sphx_glr_auto_examples_mlcomp_sparse_document_classification.py(已移除)和 使用稀疏特征对文本文档进行分类。更多示例。点击此处查看完整的示例列表。
外部依赖#
Joblib 现在是此包的依赖项,尽管它随包一起提供 (sklearn.externals.joblib)。
已移除的模块#
模块 ann (人工神经网络) 已从发行版中移除。需要此类算法的用户应考虑使用 pybrain。
杂项#
网页使用了新的 sphinx 主题。
版本 0.4#
2010年8月26日
更新日志#
此版本的主要更改包括
坐标下降算法(Lasso, ElasticNet)重构和速度改进(大约快 100 倍)。
坐标下降重构(和错误修复),使其与 R 的 GLMNET 包保持一致。
新的 metrics 模块。
由 Ron Weiss 贡献的新 GMM 模块。
LARS 算法实现(目前没有 Lasso 变体)。
feature_selection 模块重新设计。
迁移到 GIT 作为版本控制系统。
删除了过时的 attrselect 模块。
重命名私有编译扩展(添加了下划线)。
删除了遗留的未维护代码。
文档改进(包括 docstring 和 rst)。
改进了构建系统以(可选地)链接 MKL。此外,在找不到系统范围的 BLAS 时提供了 lite BLAS 实现。
许多新示例。
许多、许多错误修复……
作者#
此版本的提交者列表如下(按提交次数排序)
143 Fabian Pedregosa
35 Alexandre Gramfort
34 Olivier Grisel
11 Gael Varoquaux
5 Yaroslav Halchenko
2 Vincent Michel
1 Chris Filo Gorgolewski
早期版本#
早期版本包括 Fred Mailhot、David Cooke、David Huard、Dave Morrill、Ed Schofield、Travis Oliphant、Pearu Peterson 的贡献。