版本 0.14#
版本 0.14#
2013年8月7日
更新日志#
稀疏矩阵和密集矩阵的缺失值可以通过 Nicolas Trésegnie 提供的转换器
preprocessing.Imputer
进行填充。决策树的核心实现已被完全重写,这使得所有基于树的估计器都能实现更快的树归纳和更低的内存消耗。由 Gilles Louppe 提供。
添加了
ensemble.AdaBoostClassifier
和ensemble.AdaBoostRegressor
,由 Noel Dawe 和 Gilles Louppe 提供。有关详细信息和示例,请参阅用户指南的 AdaBoost 部分。添加了
grid_search.RandomizedSearchCV
和grid_search.ParameterSampler
用于随机超参数优化。由 Andreas Müller 提供。添加了 双聚类 算法 (
sklearn.cluster.bicluster.SpectralCoclustering
和sklearn.cluster.bicluster.SpectralBiclustering
)、数据生成方法 (sklearn.datasets.make_biclusters
和sklearn.datasets.make_checkerboard
) 以及评分指标 (sklearn.metrics.consensus_score
)。由 Kemal Eren 提供。添加了 受限玻尔兹曼机 (
neural_network.BernoulliRBM
)。由 Yann Dauphin 提供。Python 3 支持由 Justin Vincent、Lars Buitinck、Subhodeep Moitra 和 Olivier Grisel 提供。所有测试现在都在 Python 3.3 下通过。
可以在
linear_model.Ridge
中为每个目标传递一个惩罚项(alpha 值),由 @eickenberg 和 Mathieu Blondel 提供。修复了
sklearn.linear_model.stochastic_gradient.py
的 L2 正则化问题(实际意义不大)。由 Norbert Crombach 和 Mathieu Blondel 提供。在文档中添加了 Andreas Müller 的 机器学习备忘单 (scikit-learn 版) 的交互式版本。请参阅 选择合适的估计器。由 Jaques Grobler 提供。
grid_search.GridSearchCV
和cross_validation.cross_val_score
现在支持使用高级评分函数,例如 ROC 曲线下面积和 f-beta 分数。有关详细信息,请参阅 评分参数:定义模型评估规则。由 Andreas Müller 和 Lars Buitinck 提供。将sklearn.metrics
中的函数作为score_func
传递已被弃用。多标签分类输出现在受
metrics.accuracy_score
、metrics.zero_one_loss
、metrics.f1_score
、metrics.fbeta_score
、metrics.classification_report
、metrics.precision_score
和metrics.recall_score
支持,由 Arnaud Joly 提供。新增了两个指标
metrics.hamming_loss
和metrics.jaccard_similarity_score
,并由 Arnaud Joly 提供了多标签支持。feature_extraction.text.CountVectorizer
和feature_extraction.text.TfidfVectorizer
的速度和内存使用得到了改进,由 Jochen Wersdörfer 和 Roman Sinayev 提供。feature_extraction.text.CountVectorizer
和feature_extraction.text.TfidfVectorizer
中的min_df
参数以前是 2,现在已重置为 1,以避免新手用户在微型文档集合上尝试时遇到不愉快的意外(空词汇表)。对于实际使用,仍建议至少为 2。svm.LinearSVC
、linear_model.SGDClassifier
和linear_model.SGDRegressor
现在有一个sparsify
方法,可以将它们的coef_
转换为稀疏矩阵,这意味着使用这些估计器训练的存储模型可以变得更加紧凑。linear_model.SGDClassifier
现在在对数损失或修改后的 Huber 损失下训练时会生成多类别概率估计。网站上示例代码中指向文档的超链接由 Martin Luessi 提供。
修复了
preprocessing.MinMaxScaler
中的错误,该错误导致非默认feature_range
设置下的特征缩放不正确。由 Andreas Müller 提供。tree.DecisionTreeClassifier
、tree.DecisionTreeRegressor
以及所有派生集成估计器中的max_features
现在支持百分比值。由 Gilles Louppe 提供。isotonic.IsotonicRegression
的性能得到了改进,由 Nelle Varoquaux 提供。metrics.accuracy_score
有一个 normalize 选项,可以返回正确分类样本的比例或数量,由 Arnaud Joly 提供。添加了计算对数损失(也称为交叉熵损失)的
metrics.log_loss
。由 Jochen Wersdörfer 和 Lars Buitinck 提供。修复了导致
ensemble.AdaBoostClassifier
输出不正确概率的错误。特征选择器现在共享一个混合类,提供一致的
transform
、inverse_transform
和get_support
方法。由 Joel Nothman 提供。经过拟合的
grid_search.GridSearchCV
或grid_search.RandomizedSearchCV
现在通常可以被 pickle 序列化。由 Joel Nothman 提供。metrics.roc_curve
和metrics.precision_recall_curve
的实现进行了重构和向量化。由 Joel Nothman 提供。新的估计器
sklearn.decomposition.TruncatedSVD
使用 SVD 对稀疏矩阵执行降维,可用于潜在语义分析 (LSA)。由 Lars Buitinck 提供。添加了文本数据的核外学习的独立示例 文本文档的核外分类。由 Eustache Diemert 提供。
sklearn.decomposition.RandomizedPCA
的默认组件数量现在已正确记录为n_features
。这是默认行为,因此使用它的程序将继续像以前一样工作。sklearn.cluster.KMeans
现在在稀疏数据上的拟合速度快了几个数量级(加速取决于稀疏度)。由 Lars Buitinck 提供。降低了 FastICA 的内存占用,由 Denis Engemann 和 Alexandre Gramfort 提供。
sklearn.ensemble.gradient_boosting
中的详细输出现在使用列格式,并以递减的频率打印进度。它还显示剩余时间。由 Peter Prettenhofer 提供。sklearn.ensemble.gradient_boosting
提供了袋外改进oob_improvement_
,而不是用于模型选择的 OOB 分数。添加了一个示例,展示如何使用 OOB 估计值选择树的数量。由 Peter Prettenhofer 提供。大多数指标现在支持多类别分类的字符串标签,由 Arnaud Joly 和 Lars Buitinck 提供。
新的 OrthogonalMatchingPursuitCV 类由 Alexandre Gramfort 和 Vlad Niculae 提供。
修复了
sklearn.covariance.GraphLassoCV
中的一个错误:当给定值列表时,'alphas' 参数现在按预期工作。由 Philippe Gervais 提供。修复了
sklearn.covariance.GraphLassoCV
中的一个重要错误,该错误阻止了使用 CV 对象提供的所有折叠(仅使用了前 3 个)。因此,在提供 CV 对象时,执行时间可能会比以前的版本显著增加(现在错误结果已更正)。由 Philippe Gervais 提供。cross_validation.cross_val_score
和grid_search
模块现在已由 Arnaud Joly 使用多输出数据进行测试。datasets.make_multilabel_classification
现在可以由 Arnaud Joly 以标签指示器多标签格式返回输出。K-最近邻(
neighbors.KNeighborsRegressor
和neighbors.RadiusNeighborsRegressor
)和半径邻居(neighbors.RadiusNeighborsRegressor
和neighbors.RadiusNeighborsClassifier
)支持多输出数据,由 Arnaud Joly 提供。基于 LibSVM 的估计器(
svm.SVC
、svm.NuSVC
、svm.OneClassSVM
、svm.SVR
、svm.NuSVR
)中的随机状态现在可以控制。这对于确保使用probability=True
训练的分类器的概率估计值的一致性很有用。由 Vlad Niculae 提供。通过添加
partial_fit
方法,离散朴素贝叶斯分类器sklearn.naive_bayes.MultinomialNB
和sklearn.naive_bayes.BernoulliNB
现在支持核外学习。由 Olivier Grisel 提供。新的网站设计和导航由 Gilles Louppe、Nelle Varoquaux、Vincent Michel 和 Andreas Müller 提供。
多类别、多标签和多输出分类 的文档得到了改进,由 Yannick Schwartz 和 Arnaud Joly 提供。
sklearn.metrics
模块的输入和错误处理得到了改进,由 Arnaud Joly 和 Joel Nothman 提供。hmm
模块的速度优化由 Mikhail Korobov 提供。sklearn.cluster.DBSCAN
的速度得到了显著提升,由 cleverless 提供。
API 变更摘要#
auc_score
已重命名为metrics.roc_auc_score
。使用
sklearn.test()
测试 scikit-learn 已被弃用。请从命令行使用nosetests sklearn
。tree.DecisionTreeClassifier
、tree.DecisionTreeRegressor
和所有派生集成估计器中的特征重要性现在在访问feature_importances_
属性时即时计算。不再需要设置compute_importances=True
。由 Gilles Louppe 提供。linear_model.lasso_path
和linear_model.enet_path
现在可以以与linear_model.lars_path
相同的格式返回结果。这通过将return_models
参数设置为False
来实现。由 Jaques Grobler 和 Alexandre Gramfort 提供。grid_search.IterGrid
已重命名为grid_search.ParameterGrid
。修复了
KFold
中导致某些情况下类别平衡不完善的错误。由 Alexandre Gramfort 和 Tadej Janež 提供。sklearn.neighbors.BallTree
已被重构,并添加了一个具有相同接口的sklearn.neighbors.KDTree
。Ball Tree 现在支持各种距离度量。这两个类都有许多新方法,包括单树和双树查询、广度优先和深度优先搜索,以及更高级的查询,如核密度估计和两点相关函数。由 Jake Vanderplas 提供。对邻域查询中
scipy.spatial.cKDTree
的支持已移除,其功能已被新的sklearn.neighbors.KDTree
类取代。添加了
sklearn.neighbors.KernelDensity
,它使用各种核函数执行高效的核密度估计。sklearn.decomposition.KernelPCA
现在总是返回具有n_components
个组件的输出,除非新参数remove_zero_eig
设置为True
。这一新行为与核 PCA 始终记录的方式一致;以前,对所有数据默认执行零特征值组件的移除。sklearn.linear_model.RidgeCV
中的gcv_mode="auto"
不再尝试对致密化的稀疏矩阵执行 SVD。sklearn.decomposition.RandomizedPCA
中的稀疏矩阵支持现已弃用,转而使用新的TruncatedSVD
。cross_validation.KFold
和cross_validation.StratifiedKFold
现在强制要求n_folds >= 2
,否则会引发ValueError
。由 Olivier Grisel 提供。datasets.load_files
的charset
和charset_errors
参数已重命名为encoding
和decode_errors
。sklearn.ensemble.GradientBoostingRegressor
和sklearn.ensemble.GradientBoostingClassifier
中的属性oob_score_
已被弃用,并已替换为oob_improvement_
。OrthogonalMatchingPursuit 中的属性已被弃用 (copy_X, Gram, …),并且为了保持一致性,
precompute_gram
已重命名为precompute
。参见 #2224。sklearn.preprocessing.StandardScaler
现在将整数输入转换为浮点数,并发出警告。以前,它对密集整数输入进行四舍五入。sklearn.multiclass.OneVsRestClassifier
现在有一个decision_function
方法。只要底层估计器实现了decision_function
方法,这将返回每个样本到每个类别的决策边界的距离。由 Kyle Kastner 提供。更好的输入验证,对 y 的意外形状发出警告。
贡献者#
0.14 版本按提交次数列出的贡献者列表。
277 Gilles Louppe
245 Lars Buitinck
187 Andreas Mueller
124 Arnaud Joly
112 Jaques Grobler
109 Gael Varoquaux
107 Olivier Grisel
102 Noel Dawe
99 Kemal Eren
79 Joel Nothman
75 Jake VanderPlas
73 Nelle Varoquaux
71 Vlad Niculae
65 Peter Prettenhofer
64 Alexandre Gramfort
54 Mathieu Blondel
38 Nicolas Trésegnie
35 eustache
27 Denis Engemann
25 Yann N. Dauphin
19 Justin Vincent
17 Robert Layton
15 Doug Coleman
14 Michael Eickenberg
13 Robert Marchman
11 Fabian Pedregosa
11 Philippe Gervais
10 Jim Holmström
10 Tadej Janež
10 syhw
9 Mikhail Korobov
9 Steven De Gryze
8 sergeyf
7 Ben Root
7 Hrishikesh Huilgolkar
6 Kyle Kastner
6 Martin Luessi
6 Rob Speer
5 Federico Vaggi
5 Raul Garreta
5 Rob Zinkov
4 Ken Geis
3 A. Flaxman
3 Denton Cockburn
3 Dougal Sutherland
3 Ian Ozsvald
3 Johannes Schönberger
3 Robert McGibbon
3 Roman Sinayev
3 Szabo Roland
2 Diego Molla
2 Imran Haque
2 Jochen Wersdörfer
2 Sergey Karayev
2 Yannick Schwartz
2 jamestwebber
1 Abhijeet Kolhe
1 Alexander Fabisch
1 Bastiaan van den Berg
1 Benjamin Peterson
1 Daniel Velkov
1 Fazlul Shahriar
1 Felix Brockherde
1 Félix-Antoine Fortin
1 Harikrishnan S
1 Jack Hale
1 JakeMick
1 James McDermott
1 John Benediktsson
1 John Zwinck
1 Joshua Vredevoogd
1 Justin Pati
1 Kevin Hughes
1 Kyle Kelley
1 Matthias Ekman
1 Miroslav Shubernetskiy
1 Naoki Orii
1 Norbert Crombach
1 Rafael Cunha de Almeida
1 Rolando Espinoza La fuente
1 Seamus Abshere
1 Sergey Feldman
1 Sergio Medina
1 Stefano Lattarini
1 Steve Koch
1 Sturla Molden
1 Thomas Jarosch
1 Yaroslav Halchenko