历史版本#

版本 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 项目的一部分开发的字典学习工作。

banner2 banner1 banner3

更新日志#

  • 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 的初步支持以及重要的增强和错误修复。

更新日志#

在此版本中引入了几个新模块

其他一些模块也受益于重大的改进或清理。

贡献者#

促成此次发布的贡献者(按提交次数排序)

版本 0.7#

2011年3月2日

scikit-learn 0.7 于 2011 年 3 月发布,距离 0.6 版本发布约三个月。此版本的特点是现有算法(如 k-近邻和 K-Means 算法)的速度改进,以及包含用于计算岭广义交叉验证解的有效算法。与前一个版本不同,此版本没有添加新模块。

更新日志#

贡献者#

促成此次发布的贡献者(按提交次数排序)

版本 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 中。

  • 许多错误修复和文档改进。

贡献者#

促成此次发布的贡献者(按提交次数排序)

版本 0.5#

2010年10月11日

更新日志#

新类#

  • 在模块 svmlinear_model 的某些分类器中支持稀疏矩阵(参见 svm.sparse.SVCsvm.sparse.SVRsvm.sparse.LinearSVClinear_model.sparse.Lassolinear_model.sparse.ElasticNet)。

  • 新的 Pipeline 对象用于组合不同的估计器。

  • 模块 特征选择 (Feature selection) 中的递归特征消除例程。

  • 在 linear_model 模块中添加了各种能够进行交叉验证的类(LassoCVElasticNetCV 等)。

  • 新的、更高效的 LARS 算法实现。还实现了该算法的 Lasso 变体。请参阅 lars_pathLarsLassoLars

  • 新的隐马尔可夫模型模块(参见类 hmm.GaussianHMMhmm.MultinomialHMMhmm.GMMHMM)。

  • 新模块 feature_extraction(参见 类参考)。

  • 模块 sklearn.fastica 中的新 FastICA 算法。

文档#

  • 改进了许多模块的文档,现在将叙述性文档与类参考分开。例如,请参阅 SVM 模块的文档 和完整的 类参考

修复#

  • API 更改:使变量名称符合 PEP-8 规范,赋予更有意义的名称。

  • 修复了 svm 模块在共享内存环境 (multiprocessing) 下运行的错误。

  • 现在可以再次从 sphinx 文档生成 latex(以及 PDF)。

示例#

外部依赖#

  • Joblib 现在是此包的依赖项,尽管它随包一起提供 (sklearn.externals.joblib)。

已移除的模块#

  • 模块 ann (人工神经网络) 已从发行版中移除。需要此类算法的用户应考虑使用 pybrain。

杂项#

  • 网页使用了新的 sphinx 主题。

作者#

以下是此版本的作者列表,按提交次数排序

  • 262 Fabian Pedregosa

  • 240 Gael Varoquaux

  • 149 Alexandre Gramfort

  • 116 Olivier Grisel

  • 40 Vincent Michel

  • 38 Ron Weiss

  • 23 Matthieu Perrot

  • 10 Bertrand Thirion

  • 7 Yaroslav Halchenko

  • 9 VirgileFritsch

  • 6 Edouard Duchesnay

  • 4 Mathieu Blondel

  • 1 Ariel Rokem

  • 1 Matthieu Brucher

版本 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 的贡献。