旧版本#

版本 0.12.1#

2012年10月8日

0.12.1 版本是一个错误修复版本,没有新增功能,而是一系列错误修复

更新日志#

贡献者#

版本 0.12#

2012年9月4日

更新日志#

API 更改摘要#

  • 旧的 scikits.learn 包已消失;所有代码应从 sklearn 导入,该包于 0.9 版本引入。

  • metrics.roc_curve 中,thresholds 数组现在以反序返回,以使其与返回的 fprtpr 的顺序保持一致。

  • hmm 对象中,如 hmm.GaussianHMMhmm.MultinomialHMM 等,所有参数都必须在初始化时传递给对象,而不是通过 fit。现在 fit 只接受数据作为输入参数。

  • 对于所有SVM类,修复了 gamma 参数的错误行为。以前,默认的 gamma 值只在第一次调用 fit 时计算并存储。现在,它会在每次调用 fit 时重新计算。

  • 所有 Base 类现在都是抽象元类,因此不能实例化。

  • cluster.ward_tree 现在也返回父数组。这对于提前停止是必要的,因为在这种情况下树不会完全构建。

  • CountVectorizer 中,参数 min_nmax_n 被合并为参数 n_gram_range,以便能够同时进行网格搜索。

  • CountVectorizer 中,默认情况下会忽略只出现在一个文档中的词语。要重现之前的行为,请设置 min_df=1

  • 修复了API不一致:linear_model.SGDClassifier.predict_proba 在拟合两个类时现在返回2D数组。

  • 修复了API不一致:discriminant_analysis.QuadraticDiscriminantAnalysis.decision_functiondiscriminant_analysis.LinearDiscriminantAnalysis.decision_function 在拟合两个类时现在返回1D数组。

  • 用于拟合 LassoCVElasticNetCV 的 alpha 网格现在存储在属性 alphas_ 中,而不是覆盖初始化参数 alphas

  • 当 alpha 通过交叉验证估算时,线性模型将估算值存储在 alpha_ 属性中,而不是仅仅存储在 alphabest_alpha 中。

  • GradientBoostingClassifier 现在支持 staged_predict_probastaged_predict

  • svm.sparse.SVC 和其他稀疏 SVM 类现在已弃用。支持向量机 模块中的所有类现在会根据输入自动选择稀疏或密集表示。

  • 所有聚类算法现在都将传入 fit 的数组 X 解释为输入数据,特别是 SpectralClusteringAffinityPropagation,它们以前期望亲和矩阵。

  • 对于需要指定所需聚类数量的聚类算法,此参数现在称为 n_clusters

贡献者#

版本 0.11#

2012年5月7日

更新日志#

亮点#

其他更改#

API 更改摘要#

  • covariance.EllipticEnvelop 现已弃用。请改用 EllipticEnvelope

  • 最近邻 模块中的 NeighborsClassifierNeighborsRegressor 已被移除。请改用 KNeighborsClassifierRadiusNeighborsClassifierKNeighborsRegressor 和/或 RadiusNeighborsRegressor 等类。

  • 随机梯度下降 模块中的稀疏类现在已弃用。

  • mixture.GMMmixture.DPGMMmixture.VBGMM 中,参数必须在初始化时传递给对象,而不是通过 fit。现在 fit 只接受数据作为输入参数。

  • GMM 模块中的 rvsdecode 方法现已弃用。应改用 samplescorepredict

  • 单变量特征选择对象中的属性 _scores_pvalues 现已弃用。应改用 scores_pvalues_

  • LogisticRegressionLinearSVCSVCNuSVC 中,class_weight 参数现在是初始化参数,而不是拟合参数。这使得对该参数进行网格搜索成为可能。

  • LFW data 现在始终是 (n_samples, n_features) 形状,以与 Olivetti 人脸数据集保持一致。请改用 imagespairs 属性来访问自然图像形状。

  • LinearSVC 中,multi_class 参数的含义发生了变化。选项现在是 'ovr''crammer_singer',其中 'ovr' 是默认值。这不改变默认行为,但希望能减少混淆。

  • feature_selection.text.Vectorizer 已弃用,并由 feature_selection.text.TfidfVectorizer 替代。

  • 文本特征提取的预处理器/分析器嵌套结构已被移除。所有这些功能现在都直接作为扁平构造函数参数传递给 feature_selection.text.TfidfVectorizerfeature_selection.text.CountVectorizer,特别是现在使用以下参数:

  • analyzer 可以是 'word''char' 来切换默认分析方案,或使用特定的 Python 可调用对象(如以前)。

  • 引入了 tokenizerpreprocessor,以便在新API中仍然可以自定义这些步骤。

  • input 明确控制如何解释传递给 fitpredict 的序列:文件名、文件对象或直接(字节或Unicode)字符串。

  • 默认情况下,字符集解码是明确且严格的。

  • 词汇表,无论是拟合过的还是未拟合过的,现在都存储在 vocabulary_ 属性中,以符合项目约定。

  • feature_selection.text.TfidfVectorizer 现在直接派生自 feature_selection.text.CountVectorizer,使网格搜索变得简单。

  • _BaseHMM 模块中的 rvs 方法现已弃用。应改用 sample

  • _BaseHMM 模块中的束剪枝选项已移除,因为它难以 Cython 化。如果您有兴趣,可以在 Git 历史代码中查找。

  • SVMlight 格式加载器现在支持具有零基和一基列索引的文件,因为这两种情况在“野外”都会出现。

  • ShuffleSplit 类中的参数现在与 StratifiedShuffleSplit 保持一致。test_fractiontrain_fraction 参数已弃用并重命名为 test_sizetrain_size,并且可以接受 floatint

  • Bootstrap 类中的参数现在与 StratifiedShuffleSplit 保持一致。n_testn_train 参数已弃用并重命名为 test_sizetrain_size,并且可以接受 floatint

  • 最近邻 中的类中添加了参数 p,以指定任意 Minkowski 度量进行最近邻搜索。

贡献者#

版本 0.10#

2012年1月11日

更新日志#

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,同时 metrics.cluster.unsupervised 包含 Silhouette Coefficient。

  • permutation_test_score 函数现在与 cross_val_score 的行为相同(即,使用各折叠的平均分数)。

  • 交叉验证生成器现在默认使用整数索引 (indices=True) 而不是布尔掩码。这使得稀疏矩阵数据的使用更加直观。

  • 用于稀疏编码的函数 sparse_encodesparse_encode_parallel 已合并为 sparse_encode,并且数组的形状已转置,以与矩阵分解设置保持一致,而不是回归设置。

  • 修复了 SVMlight/LibSVM 文件格式处理中的一个 off-by-one 错误;使用 dump_svmlight_file 生成的文件应重新生成。(它们应该继续工作,但意外地在前面多加了一列零。)

  • BaseDictionaryLearning 类已被 SparseCodingMixin 替换。

  • sklearn.utils.extmath.fast_svd 已更名为 randomized_svd,并且默认的过采样现在固定为10个额外的随机向量,而不是提取的两倍数量的成分。新行为遵循参考文献。

贡献者#

自上次发布以来,以下人员为 scikit-learn 做出了贡献:

版本 0.9#

2011年9月21日

scikit-learn 0.9 于 2011 年 9 月发布,距 0.8 版本发布三个月后,包含了新模块 流形学习狄利克雷过程,以及多项新算法和文档改进。

本次发布还包含了 Vlad Niculae 作为 Google Summer of Code 项目的一部分所开发的字典学习工作。

banner2 banner1 banner3

更新日志#

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 参数:相反,所有参数必须仅作为构造函数参数或使用从 BaseEstimator 继承的现在公开的 set_params 方法传递。

    一些估计器仍然可以在 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_scorescore_func 参数现在要求其接受 y_testy_predicted 作为分类和回归任务的唯一参数,或 X_test 作为无监督估计器的唯一参数。

  • 支持向量机算法的 gamma 参数默认设置为 1 / n_features,而不是 1 / n_samples

  • sklearn.hmm 已被标记为孤立模块:除非有人愿意贡献文档、示例并修复潜在的数值稳定性问题,否则它将在 scikit-learn 0.11 版本中移除。

  • sklearn.neighbors 已成为子模块。此前可用的两个估计器 NeighborsClassifierNeighborsRegressor 已被标记为已弃用。它们的功能已被分为五个新类:用于无监督邻居搜索的 NearestNeighbors,用于有监督分类问题的 KNeighborsClassifierRadiusNeighborsClassifier,以及用于有监督回归问题的 KNeighborsRegressorRadiusNeighborsRegressor

  • 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 人为本次发布做出了贡献。

版本 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-均值算法)的速度进行了改进,并引入了一种用于计算岭回归广义交叉验证解的有效算法。与之前的版本不同,本次发布没有新增模块。

更新日志#

贡献者#

使本次发布成为可能的人员,按提交次数排序

版本 0.6#

2010年12月21日

scikit-learn 0.6 版于2010年12月发布。本次发布的主要特点是包含了几个新模块,并对旧模块进行了全面重命名。此外,还包含了新的示例,包括在真实世界数据集上的应用。

更新日志#

  • 由 Peter Prettenhofer 开发的新增 随机梯度下降 模块。该模块附带完整的文档和示例。

  • 改进了 SVM 模块:内存消耗减少了 50%,增加了自动设置类别权重的启发式方法,支持为样本分配权重(示例请参见 SVM:加权样本)。

  • 由 Vincent Dubourg 开发的新增 高斯过程 模块。该模块也附带了出色的文档和一些非常简洁的示例。有关其功能的示例,请参阅 example_gaussian_process_plot_gp_regression.py 或 example_gaussian_process_plot_gp_probabilistic_classification_after_regression.py。

  • 现在可以使用 liblinear 的多类别 SVC(LinearSVC 中的 multi_class 选项)

  • 文本特征提取新增功能和性能改进。

  • 改进了稀疏矩阵支持,无论是在主类(GridSearchCV)中,还是在模块 sklearn.svm.sparse 和 sklearn.linear_model.sparse 中。

  • 创建了许多很棒的新示例以及一个使用真实世界数据集的新章节。这些示例包括:使用特征脸和 SVMs 的人脸识别示例物种分布建模维基百科主特征向量 等。

  • 更快的 最小角回归 算法。现在在最坏情况下比 R 版本快 2 倍,在某些情况下快达 10 倍。

  • 更快的坐标下降算法。特别是,Lasso 的完整路径版本(linear_model.lasso_path)比以前快 200 多倍。

  • 现在可以从 LogisticRegression 模型中获取概率估计。

  • 模块重命名:glm 模块已重命名为 linear_model,gmm 模块已包含在更通用的混合模型中,sgd 模块已包含在 linear_model 中。

  • 修复了大量错误并改进了文档。

贡献者#

使本次发布成为可能的人员,按提交次数排序

版本 0.5#

2010年10月11日

更新日志#

新增类#

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

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

  • 特征选择 模块中新增了递归特征消除例程。

  • 在 linear_model 模块中新增了各种支持交叉验证的类(LassoCVElasticNetCV 等)。

  • 新增更高效的 LARS 算法实现。该算法的 Lasso 变体也已实现。参见 lars_pathLarsLassoLars

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

  • 新增模块 feature_extraction(参见 类参考

  • 在模块 sklearn.fastica 中新增 FastICA 算法

文档#

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

修复#

  • API 变更:变量命名遵循 PEP-8 规范,使用更具意义的名称。

  • 修复了 SVM 模块在共享内存环境(多进程)下运行的问题。

  • 现在可以再次从 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,则提供一个精简的 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 的贡献。