旧版本#
版本 0.12.1#
2012年10月8日
0.12.1 版本是一个错误修复版本,没有新增功能,而是一系列错误修复
更新日志#
由 Gael Varoquaux 改进了谱嵌入中的数值稳定性
由 Gael Varoquaux 在Windows 64位下进行文档测试
由 Andreas Müller 和 Alexandre Gramfort 修复了弹性网络文档
由 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
贡献者#
版本 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-不敏感损失以及使用修正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 改进了 特征选择 模块中的稀疏矩阵支持。
由 Andreas Müller 修复了导致单点簇的谱聚类错误。
在
CountVectorizer
中,由 Andreas Müller 添加了一个忽略不常用词的选项min_df
。由 Vlad Niculae 和 Alexandre Gramfort 添加了对某些线性模型(ElasticNet、Lasso和OrthogonalMatchingPursuit)中多目标的支持。
由 Wei Li 修复了
decomposition.ProbabilisticPCA
分数函数中的错误。修复了 梯度提升树 中特征重要性计算的问题。
API 更改摘要#
旧的
scikits.learn
包已消失;所有代码应从sklearn
导入,该包于 0.9 版本引入。在
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
的 alpha 网格现在存储在属性alphas_
中,而不是覆盖初始化参数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
52 Vlad Niculae
44 Nelle Varoquaux
30 Alexis Mignon
30 Immanuel Bayer
16 Subhodeep Moitra
13 Yannick Schwartz
12 @kernc
9 Daniel Duckworth
8 John Benediktsson
7 Marko Burjek
4 Alexandre Abraham
3 Florian Hoenig
3 flyingimmidev
2 Francois Savard
2 Hannes Schulz
2 Peter Welinder
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 实现,集成方法:梯度提升、随机森林、Bagging、投票、Stacking 的泛化误差 袋外估计。
由 Alexandre Gramfort 和 Gael Varoquaux 实现,用于特征选择的随机稀疏线性模型
由 Clay Woolam 实现,用于半监督学习的 标签传播。注意:半监督API仍在开发中,可能会有变动。
由 Bertrand Thirion 增加了BIC/AIC模型选择到经典的 高斯混合模型,并统一了与scikit-learn其余部分的API。
由 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
,在one-vs-one情况下修复了coef_
。由 Reuben Fletcher-Costin 对
RidgeCV
中高效留一交叉验证岭回归的性能改进,尤其适用于n_samples > n_features
的情况。由 Olivier Grisel 重构和简化了 文本特征提取 API,并修复了可能导致负IDF的错误。
_BaseHMM
模块中的束剪枝选项已被移除,因为它难以 Cython 化。如果您有兴趣贡献 Cython 版本,可以使用 Git 历史中的 Python 版本作为参考。最近邻 中的类现在支持任意 Minkowski 距离进行最近邻搜索。该距离可以通过参数
p
指定。
API 更改摘要#
covariance.EllipticEnvelop
现已弃用。请改用EllipticEnvelope
。最近邻 模块中的
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
参数现在是初始化参数,而不是拟合参数。这使得对该参数进行网格搜索成为可能。LFW
data
现在始终是(n_samples, n_features)
形状,以与 Olivetti 人脸数据集保持一致。请改用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
。在 最近邻 中的类中添加了参数
p
,以指定任意 Minkowski 度量进行最近邻搜索。
贡献者#
282 Andreas Müller
198 Gael Varoquaux
129 Olivier Grisel
114 Mathieu Blondel
103 Clay Woolam
28 flyingimmidev
26 Shiqiao Du
17 David Marek
14 Vlad Niculae
11 Yannick Schwartz
9 fcostin
7 Nick Wilson
5 Adrien Gaidon
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 Jan Hendrik Metzen
1 Meng Xinfan
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 实现,使用图 Lasso 进行 稀疏逆协方差 估计,并附带交叉验证估计器。
由 Brian Holt、Peter Prettenhofer、Satrajit Ghosh 和 Gilles Louppe 实现了新的 树 模块。该模块附带完整的文档和示例。
由 Gilles Louppe 修复了RFE模块中的一个bug(issue #378)。
由 Brian Holt 修复了 支持向量机 模块中的内存泄漏(issue #367)。
由 Fabian Pedregosa 及其他人实现了更快的测试。
由 Robert Layton 添加了 Silhouette Coefficient 聚类分析评估指标,命名为
silhouette_score
。由 Olivier Grisel 修复了 K-means 算法中
n_init
参数处理的bug:聚类算法曾经运行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 实现了新的 集成方法 模块。该模块附带随机森林算法和超树方法,以及相关文档和示例。
由 Virgile Fritsch 实现,新颖性与离群点检测:离群点和新颖性检测。
由 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
,同时metrics.cluster.unsupervised
包含 Silhouette Coefficient。permutation_test_score
函数现在与cross_val_score
的行为相同(即,使用各折叠的平均分数)。交叉验证生成器现在默认使用整数索引 (
indices=True
) 而不是布尔掩码。这使得稀疏矩阵数据的使用更加直观。用于稀疏编码的函数
sparse_encode
和sparse_encode_parallel
已合并为sparse_encode
,并且数组的形状已转置,以与矩阵分解设置保持一致,而不是回归设置。修复了 SVMlight/LibSVM 文件格式处理中的一个 off-by-one 错误;使用
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
60 Robert Layton
44 Noel Dawe
3 Jan Hendrik Metzen
3 Kenneth C. Arnold
3 Shiqiao Du
3 Tim Sheerman-Chase
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 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 修复了 支持向量机 模块中的重要bug(段错误、性能不佳)。
由 Lars Buitinck 添加了 多项式朴素贝叶斯 和 伯努利朴素贝叶斯。
由 Lars Buitinck 优化了文本特征提取。
由 Lars Buitinck 实现了卡方特征选择 (
feature_selection.chi2
)。由 Gilles Louppe 重构了 生成数据集 模块。
由 Mathieu Blondel 实现了 多类和多输出算法。
由 Jake Vanderplas 重写了球树。
由 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 人脸数据集。
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_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
42 Robert Layton
38 Nelle Varoquaux
30 Conrad Lee
22 Pietro Berkes
18 andy
17 David Warde-Farley
12 Brian Holt
11 Robert
8 Amit Aides
6 Salvatore Masecchia
5 Paolo Losi
4 Vincent Schut
3 Alexis Metaireau
3 Bryan Silverthorn
2 Minwoo Jake Lee
1 Emmanuelle Gouillart
1 Keith Goodman
1 Lucas Wiman
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 实现了 Wild 标记人脸数据集。
由 Edouard Duchesnay 实现了新的 交叉分解 模块。
由 Vlad Niculae 实现了 非负矩阵分解 (NMF 或 NNMF) 模块。
由 Virgile Fritsch 在 协方差估计 模块中实现了 Oracle Approximating Shrinkage 算法。
其他一些模块也受益于显著的改进或清理。
由 Fabian Pedregosa 实现了对 Python 3 的初步支持:能够干净地构建和导入,一些模块可用,而另一些则测试失败。
由 Olivier Grisel 实现了
PCA
现在可以从 Pipeline 对象中使用。由 Olivier Grisel 编写的指南 如何优化速度。
由 Lars Buitinck 修复了 libsvm 绑定中的内存泄漏,并使 BallTree 更安全支持 64 位。
由 Jan Schlüter 修复了 K-means 算法中的 bug 和样式问题。
由 Vincent Schut 为高斯混合模型添加了 converged 属性。
由 Mathieu Blondel 在
LinearDiscriminantAnalysis
中实现了transform
、predict_log_proba
。由 Fabian Pedregosa、Gael Varoquaux 和 Amit Aides 对 支持向量机 模块进行了重构并修复了错误。
由 Peter Prettenhofer 重构了 SGD 模块(移除了代码重复,改进了变量命名),并增加了样本权重的接口。
由 Thouis (Ray) Jones 使用 Cython 封装了 BallTree。
由 Paolo Losi 添加了函数
svm.l1_min_c
。由 Yaroslav Halchenko、Gael Varoquaux、Olivier Grisel、Yann Malet、Nicolas Pinto、Lars Buitinck 和 Fabian Pedregosa 修正了错别字、文档风格等。
贡献者#
使本次发布成为可能的人员,按提交次数排序
159 Olivier Grisel
96 Vlad Niculae
32 Paolo Losi
7 Lars Buitinck
6 Vincent Michel
4 Thouis (Ray) Jones
4 Vincent Schut
3 Jan Schlüter
2 Julien Miotte
2 Yann Malet
1 Amit Aides
1 Feth Arezki
1 Meng Xinfan
版本 0.7#
2011年3月2日
scikit-learn 0.7 版于2011年3月发布,大约在 0.6 版发布三个月之后。本次发布的主要特点是对现有算法(如 k-近邻算法和 K-均值算法)的速度进行了改进,并引入了一种用于计算岭回归广义交叉验证解的有效算法。与之前的版本不同,本次发布没有新增模块。
更新日志#
改进了高斯混合模型采样性能 [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 密集和稀疏变体的类(如
LinearSVC
或LogisticRegression
)中绑定了decision_function
[Fabian Pedregosa]。改进了
metrics.pairwise.euclidean_distances
和pca.RandomizedPCA
的性能和 API [James Bergstra]。修复了 NetBSD 下的编译问题 [Kamel Ibn Hassen Derouiche]
允许在
hmm.GaussianHMM
中输入不同长度的序列 [Ron Weiss]。修复了因索引不正确导致亲和力传播中的错误 [Xinfan Meng]
贡献者#
使本次发布成为可能的人员,按提交次数排序
14 Dan Yamins
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 开发的新增 随机梯度下降 模块。该模块附带完整的文档和示例。
改进了 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 中。
修复了大量错误并改进了文档。
贡献者#
使本次发布成为可能的人员,按提交次数排序
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
对象,用于组合不同的估计器。在 特征选择 模块中新增了递归特征消除例程。
在 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 模块在共享内存环境(多进程)下运行的问题。
现在可以再次从 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,则提供一个精简的 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 的贡献。