旧版本#
0.12.1 版本#
2012年10月8日
0.12.1 版本是一个错误修复版本,没有新增功能,只包含一系列错误修复。
变更日志#
由Gael Varoquaux改进了谱嵌入的数值稳定性。
由Gael Varoquaux修复了64位Windows下的Doctest。
由Andreas Müller和Alexandre Gramfort修复了弹性网络的文档。
由Gael Varoquaux修复了Fortran顺序NumPy数组的正确行为。
由Lars Buitinck使GridSearchCV能够处理非CSR稀疏矩阵。
由Gael Varoquaux修复了MDS中的并行计算。
由Andreas Müller修复了计数向量化器中的Unicode支持。
由Virgile Fritsch修复了X.shape = (3, 1)时MinCovDet的崩溃问题。
由Peter Prettenhofer修复了SGD对象的克隆。
由Virgile Fritsch稳定了GMM。
人员#
0.12 版本#
2012年9月4日
变更日志#
由Gilles Louppe对决策树模块进行了各种速度改进。
GradientBoostingRegressor
和GradientBoostingClassifier
现在通过max_features
参数支持特征子采样,由Peter Prettenhofer完成。由Peter Prettenhofer为
GradientBoostingRegressor
添加了Huber和分位数损失函数。决策树和随机树森林现在支持多输出分类和回归问题,由Gilles Louppe完成。
添加了
LabelEncoder
,这是一个简单的实用程序类,用于规范化标签或转换非数值标签,由Mathieu Blondel完成。在随机梯度下降中添加了ε-不敏感损失和使用修正Huber损失进行概率预测的能力,由Mathieu Blondel完成。
添加了多维缩放 (MDS),由Nelle Varoquaux完成。
SVMlight文件格式加载器现在可以检测压缩(gzip/bzip2)文件并动态解压缩它们,由Lars Buitinck完成。
SVMlight文件格式序列化器现在保留双精度浮点值,由Olivier Grisel完成。
添加了所有估计器的通用测试框架,由Andreas Müller完成。
由Gael Varoquaux为不接受稀疏输入的估计器提供了易于理解的错误消息。
由Gael Varoquaux改进了层次聚类的速度。特别是构建树现在支持提前停止。当簇的数量与样本的数量相比不小时,这很有用。
添加了MultiTaskLasso和MultiTaskElasticNet用于联合特征选择,由Alexandre Gramfort完成。
由Andreas Müller添加了
metrics.auc_score
和metrics.average_precision_score
便捷函数。由Andreas Müller改进了特征选择模块中的稀疏矩阵支持。
修复了由Andreas Müller发现的谱聚类中的bug,该bug会导致出现单点聚类。
在
CountVectorizer
中,由Andreas Müller添加了一个忽略低频词的选项,即min_df
。由Vlad Niculae和Alexandre Gramfort添加了对某些线性模型(ElasticNet、Lasso和OrthogonalMatchingPursuit)中多个目标的支持。
由李伟修复了
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
现在返回二维数组。修复了API不一致性:当在两个类别上拟合时,
discriminant_analysis.QuadraticDiscriminantAnalysis.decision_function
和discriminant_analysis.LinearDiscriminantAnalysis.decision_function
现在返回一维数组。用于拟合
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 贡献的马修斯相关系数 (
metrics.matthews_corrcoef
),以及为precision_score
、metrics.recall_score
和f1_score
添加的宏平均和微平均选项。由Andreas Müller 贡献的用于集成方法:梯度提升、随机森林、Bagging、投票、堆叠的泛化误差的包外估计。
由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`选项以进行并行计算。现在可以使用`n_jobs`参数(用于K-means或
cluster.KMeans
)并行运行K-means,由Robert Layton实现。改进了交叉验证:评估估计器性能和调整估计器的超参数文档,并由Olivier Grisel引入了新的
cross_validation.train_test_split
辅助函数。为了与
decision_function
保持一致,SVC
成员coef_
和intercept_
改变了符号;对于kernel==linear
,在一对一情况下修复了coef_
,由Andreas Müller完成。由Reuben Fletcher-Costin改进了高效留一法交叉验证岭回归的性能,尤其是在
n_samples > n_features
的情况下,在RidgeCV
中。由Olivier Grisel重构和简化了文本特征提取API,并修复了一个可能导致IDF为负值的bug。
由于难以Cython化,已删除
_BaseHMM
模块中的光束修剪选项。如果您有兴趣贡献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
现在存储在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 Du Shiqiao (杜石桥)
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 Han Roy Hyunjin (韩 ROY HYUNJIN)
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 石桥
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。
使用图 Lasso 进行稀疏逆协方差估计,以及相关的交叉验证估计器,由Gael Varoquaux完成。
由Brian Holt、Peter Prettenhofer、Satrajit Ghosh和Gilles Louppe新增了树模块。该模块附带完整的文档和示例。
由Gilles Louppe修复了 RFE 模块中的一个错误(问题 #378)。
由Brian Holt修复了支持向量机模块中的内存泄漏(问题 #367)。
由Fabian Pedregosa等人加快了测试速度。
添加了轮廓系数聚类分析评估指标,作为
silhouette_score
,由 Robert Layton 完成。由Olivier Grisel修复了K 均值中处理
n_init
参数的一个错误:聚类算法以前运行了n_init
次,但保留了最后一个解,而不是最佳解。随机梯度下降模块中的少量重构;合并了密集和稀疏预测方法;通过在拟合后将模型参数转换为 Fortran 样式数组来增强测试时间性能(仅限多类)。
添加了调整后的互信息度量,作为
adjusted_mutual_info_score
,由 Robert Layton 完成。来自 libsvm/liblinear 的 SVC/SVR/LinearSVC/LogisticRegression 等模型现在支持由样本数量缩放 C 正则化参数,由Alexandre Gramfort完成。
由Gilles Louppe和Brian Holt新增了集成方法模块。该模块包含随机森林算法和额外树方法,以及文档和示例。
新颖性和异常值检测:异常值和新颖性检测,由Virgile Fritsch完成。
核逼近:一种实现核逼近的变换,用于对非线性核进行快速 SGD,由Andreas Müller完成。
由Vlad Niculae修复了正交匹配追踪 (OMP)中由于原子交换导致的错误。
由Olivier Grisel对Mini Batch K 均值的性能进行了改进。
由Mathieu Blondel对K 均值增加了对稀疏矩阵的支持。
由Jake Vanderplas改进了开发人员和
sklearn.utils
模块的文档。由Mathieu Blondel实现了向量化 20newsgroups 数据集加载器(
fetch_20newsgroups_vectorized
)。由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.unsupervised
一起移动到metrics.cluster.supervised
,其中包含轮廓系数。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
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作为谷歌暑期代码项目一部分开发的字典学习工作。
变更日志#
由Alexandre Passos新增的狄利克雷过程高斯混合模型。
由Jake Vanderplas重构的最近邻模块:一般重构、支持输入中的稀疏矩阵、速度和文档改进。有关API更改的完整列表,请参见下一节。
由Gilles Louppe改进的特征选择模块:RFE类的重构、文档重写、效率提高和次要API更改。
由Vlad Niculae、Gael Varoquaux和Alexandre Gramfort实现的稀疏主成分分析 (SparsePCA 和 MiniBatchSparsePCA)
感谢Jean Kossaifi,打印估计器现在独立于架构和Python版本。
文档改进:由Fabian Pedregosa在示例库中添加缩略图。
支持向量机模块 (支持向量机) 的重要错误修复(段错误、性能低下),由 Fabian Pedregosa 完成。
由 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 加速了均值漂移。
新的
Bootstrap
,随机排列交叉验证(又名 Shuffle & Split) 以及交叉验证方案的各种其他改进,由 Olivier Grisel 和 Gael Varoquaux 完成。由 Olivier Grisel 调整了调整兰德指数和 V-Measure 聚类评估指标。
由 Vlad Niculae 在 特征提取 模块中添加了二维补丁提取器实用程序。
由 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 实用程序。
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
上接受关键字参数,但这仅限于依赖于数据的 value(例如,从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
已标记为孤立:除非有人站出来贡献文档、示例和修复潜伏的数值稳定性问题,否则它将在 0.11 版本中从 scikit-learn 中移除。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)。
由 Edouard Duchesnay 开发的新 交叉分解 模块。
由 Vlad Niculae 开发的 非负矩阵分解 (NMF 或 NNMF) 模块。
由 Virgile Fritsch 在 协方差估计 模块中实现了 Oracle 近似收缩 算法。
其他一些模块也得到了显著的改进或清理。
对 Python 3 的初步支持:构建和导入干净,一些模块可用,而其他模块的测试失败,由 Fabian Pedregosa 完成。
现在可以通过 Pipeline 对象使用
PCA
,由 Olivier Grisel 完成。由 Olivier Grisel 编写的 如何优化速度 指南。
修复了 libsvm 绑定中的内存泄漏问题,Lars Buitinck 完成了 64 位更安全的 BallTree。
Jan Schlüter 修复了 K 均值 算法中的错误和样式。
Vincent Schut 为高斯混合模型添加了属性 converged。
由 Mathieu Blondel 在
LinearDiscriminantAnalysis
中实现了transform
、predict_log_proba
。由 Fabian Pedregosa、Gael Varoquaux 和 Amit Aides 完成了 支持向量机 模块的重构和错误修复。
重构了SGD模块(移除代码冗余,改进变量命名),并由Peter Prettenhofer添加了样本权重的接口。
由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的类中绑定了decision_function,包括密集和稀疏变体,例如
LinearSVC
或LogisticRegression
[Fabian Pedregosa]。对
metrics.pairwise.euclidean_distances
和pca.RandomizedPCA
进行了性能和API改进 [James Bergstra]。修复了NetBSD下的编译问题 [Kamel Ibn Hassen Derouiche]
允许
hmm.GaussianHMM
中输入序列长度不同 [Ron Weiss]修复了亲和传播中由索引错误引起的bug [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 模块。创建了许多很酷的新示例和一个使用真实世界数据集的新部分。这些包括:使用特征脸和 SVM 的人脸识别示例、物种分布建模、维基百科主特征向量 等。
更快的 最小角回归 算法。在最坏情况下,它比 R 版本快 2 倍,在某些情况下快 10 倍。
更快的坐标下降算法。特别是,套索的全路径版本 (
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包保持一致,对坐标下降算法进行了重构(和错误修复)。
新的度量模块。
由Ron Weiss贡献的新GMM模块。
LARS算法的实现(目前没有Lasso变体)。
feature_selection模块重新设计。
迁移到GIT作为版本控制系统。
删除过时的attrselect模块。
私有编译扩展名的重命名(添加下划线)。
删除旧的未维护的代码。
文档改进(文档字符串和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的贡献。