版本 0.18#
警告
Scikit-learn 0.18 是 scikit-learn 支持 Python 2.6 的最后一个主要版本。后续版本的 scikit-learn 将要求 Python 2.7 或更高版本。
版本 0.18.2#
2017年6月20日
更新日志#
代码贡献者#
Aman Dalmia, Loic Esteve, Nate Guerin, Sergei Lebedev
版本 0.18.1#
2016年11月11日
更新日志#
改进#
通过在大多数情况下利用 numpy.random.permutation,提高了
sample_without_replacement的速度。因此,在固定随机状态下,此版本中的样本可能会有所不同。受影响的估计器:这也影响了
datasets.make_classification方法。
错误修复#
修复了 `manifold.TSNE` 未使用
min_grad_norm和n_iter_without_progress参数的问题。 #6497,由 Sebastian Säger 贡献修复了当
svm.SVC中的decision_function_shape为ovr时,svm 决策值存在的错误。svm.SVC的 decision_function 在 0.17.0 到 0.18.0 版本中是错误的。 #7724,由 Bing Tian Dai 贡献discriminant_analysis.LinearDiscriminantAnalysis使用 SVD 和 Eigen 求解器计算的explained_variance_ratio属性现在长度相同。 #7632,由 JPFrancoia 贡献修复了[单变量特征选择](#univariate-feature-selection)中评分函数不接受多标签目标的问题。 #7676,由 Mohammed Affan 贡献
修复了在
feature_selection.SelectFromModel上多次调用fit时参数设置的错误。 #7756,由 Andreas Müller 贡献修复了
multiclass.OneVsRestClassifier的partial_fit方法中,当partial_fit中使用的类别数量少于数据中的总类别数量时的问题。 #7786,由 Srivatsan Ramesh 贡献修复了
calibration.CalibratedClassifierCV中,数据中每个类别的概率之和不为 1 的问题,并且CalibratedClassifierCV现在处理训练集中的类别数量少于总数据量的情况。 #7799,由 Srivatsan Ramesh 贡献修复了
sklearn.feature_selection.SelectFdr未精确实现 Benjamini-Hochberg 过程的错误。它以前可能选择了比应选更少的特征。 #7490,由 Peng Meng 贡献。sklearn.manifold.LocallyLinearEmbedding现在可以正确处理整数输入。 #6282,由 Jake Vanderplas 贡献。如果未将
sample_weight参数传递给fit函数,则基于树的分类器和回归器的min_weight_fraction_leaf参数现在默认假定均匀样本权重。以前,该参数会被静默忽略。 #7301,由 Nelson Liu 贡献。当
n_features > n_samples时,linear_model.RidgeCV在中心化数据上存在数值问题。 #6178,由 Bertrand Thirion 贡献树分裂准则类的克隆/pickle 过程现在是内存安全的 #7680,由 Ibraim Ganiev 贡献。
修复了
decomposition.NMF在transform()中设置其n_iters_属性的错误。 #7553,由 Ekaterina Krivich 贡献。sklearn.linear_model.LogisticRegressionCV现在可以正确处理字符串标签。 #5874,由 Raghav RV 贡献。修复了当
stratify是字符串标签列表时,sklearn.model_selection.train_test_split引发错误的错误。 #7593,由 Raghav RV 贡献。修复了
sklearn.model_selection.GridSearchCV和sklearn.model_selection.RandomizedSearchCV因np.ma.MaskedArray中的 pickle 错误而无法 pickle 的错误。 #7594,由 Raghav RV 贡献。sklearn.model_selection中的所有交叉验证工具现在都允许cv参数使用一次性交叉验证分割器。此外,非确定性交叉验证分割器(对split的多次调用会产生不同的分割)也可以用作cv参数。sklearn.model_selection.GridSearchCV将在对交叉验证分割器进行第一次split调用所产生的分割上对每个参数设置进行交叉验证。 #7660,由 Raghav RV 贡献。修复了
preprocessing.MultiLabelBinarizer.fit_transform返回无效 CSR 矩阵的错误。 #7750,由 CJ Carey 贡献。修复了
metrics.pairwise.cosine_distances可能返回一个小的负距离的错误。 #7732,由 Artsion 贡献。
API 更改摘要#
树和森林
如果未将
sample_weight参数传递给fit函数,则基于树的分类器和回归器的min_weight_fraction_leaf参数现在默认假定均匀样本权重。以前,该参数会被静默忽略。 #7301,由 Nelson Liu 贡献。树分裂准则类的克隆/pickle 过程现在是内存安全的。 #7680,由 Ibraim Ganiev 贡献。
线性、核化及相关模型
discriminant_analysis.LinearDiscriminantAnalysis的explained_variance_ratio属性的长度在 Eigen 和 SVD 求解器中都发生了变化。该属性现在的长度为 min(n_components, n_classes - 1)。 #7632,由 JPFrancoia 贡献当
n_features > n_samples时,linear_model.RidgeCV在中心化数据上存在数值问题。 #6178,由 Bertrand Thirion 贡献
版本 0.18#
2016年9月28日
模型选择改进和 API 更改#
model_selection 模块
新的
sklearn.model_selection模块将原先的sklearn.cross_validation、sklearn.grid_search和sklearn.learning_curve的功能组合在一起,引入了嵌套交叉验证和使用 Pandas 更好地操作参数搜索等新可能性。许多内容将保持不变,但也有一些关键区别。请阅读下文以了解更多更改信息。
支持嵌套交叉验证的独立于数据的 CV 分割器
在
sklearn.model_selection中定义的新交叉验证分割器不再使用任何依赖于数据的参数(例如y)进行初始化。相反,它们公开了一个split方法,该方法接受数据并为不同的分割生成一个生成器。这一更改使得可以使用交叉验证分割器执行嵌套交叉验证,这得益于
model_selection.GridSearchCV和model_selection.RandomizedSearchCV工具的帮助。增强的 cv_results_ 属性
新的
cv_results_属性(model_selection.GridSearchCV和model_selection.RandomizedSearchCV的属性)取代了grid_scores_属性,它是一个包含 1D 数组的字典,每个数组中的元素对应于参数设置(即搜索候选项)。`cv_results_` 字典可以轻松导入到 `pandas` 中作为 `DataFrame`,用于探索搜索结果。
`cv_results_` 数组包含每个交叉验证分割的得分(键如
'split0_test_score'),以及它们的平均值('mean_test_score')和标准差('std_test_score')。搜索候选项的排名(基于其平均交叉验证得分)可在
cv_results_['rank_test_score']中找到。每个参数的值都单独存储为 numpy 掩码对象数组。如果相应的参数不适用,则该搜索候选项的值将被掩码。此外,所有参数字典的列表都存储在
cv_results_['params']中。参数 n_folds 和 n_iter 重命名为 n_splits
一些参数名称已更改:新的
model_selection.KFold、model_selection.GroupKFold(名称更改见下文)和model_selection.StratifiedKFold中的n_folds参数现已重命名为n_splits。model_selection.ShuffleSplit、新类model_selection.GroupShuffleSplit和model_selection.StratifiedShuffleSplit中的n_iter参数现已重命名为n_splits。接受组标签和数据的分割器类重命名
交叉验证分割器
LabelKFold、LabelShuffleSplit、LeaveOneLabelOut和LeavePLabelOut已分别重命名为model_selection.GroupKFold、model_selection.GroupShuffleSplit、model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut。请注意
model_selection.LeavePGroupsOut中从单数到复数形式的更改。fit 参数 labels 重命名为 groups
新重命名的分割器
model_selection.GroupKFold、model_selection.LeaveOneGroupOut、model_selection.LeavePGroupsOut、model_selection.GroupShuffleSplit的split方法中的labels参数已根据其类名的新命名法重命名为groups。参数 n_labels 重命名为 n_groups
新重命名的
model_selection.LeavePGroupsOut中的参数n_labels已更改为n_groups。训练得分和计时信息
cv_results_还包括每个交叉验证分割的训练得分(键如'split0_train_score'),以及它们的平均值('mean_train_score')和标准差('std_train_score')。为了避免评估训练得分的开销,请设置return_train_score=False。此外,在所有交叉验证分割中,分割、训练和评估模型所花费时间的平均值和标准差分别可在键
'mean_time'和'std_time'处找到。
更新日志#
新特性#
分类器和回归器
高斯过程模块已重新实现,现在通过
gaussian_process.GaussianProcessClassifier和gaussian_process.GaussianProcessRegressor提供分类和回归估计器。除了其他功能,新的实现支持核工程、基于梯度的超参数优化或从 GP 先验和 GP 后验中采样函数。提供了详尽的文档和示例。由 Jan Hendrik Metzen 贡献。新增了监督学习算法:[多层感知机](#multilayer-perceptron) #3204,由 Issam H. Laradji 贡献
新增了
linear_model.HuberRegressor,这是一种对异常值具有鲁棒性的线性模型。 #5291,由 Manoj Kumar 贡献。新增了
multioutput.MultiOutputRegressor元估计器。它通过为每个输出拟合一个回归器,将单输出回归器转换为多输出回归器。由 Tim Head 贡献。
其他估计器
新的
mixture.GaussianMixture和mixture.BayesianGaussianMixture取代了以前的混合模型,采用更快的推断以获得更可靠的结果。 #7295,由 Wei Xue 和 Thierry Guillemot 贡献。类
decomposition.RandomizedPCA现已分解到decomposition.PCA中,并通过参数svd_solver='randomized'进行调用。`'randomized'` 的默认 `n_iter` 数量已更改为 4。PCA 的旧行为可通过svd_solver='full'恢复。一个额外的求解器调用arpack并执行截断(非随机)SVD。默认情况下,根据输入的大小和请求的组件数量选择最佳求解器。 #5299,由 Giorgio Patrini 贡献。新增了两个用于互信息估计的函数:
feature_selection.mutual_info_classif和feature_selection.mutual_info_regression。这些函数可在feature_selection.SelectKBest和feature_selection.SelectPercentile中用作评分函数。由 Andrea Bravi 和 Nikolay Mayorov 贡献。新增了
ensemble.IsolationForest类,用于基于随机森林的异常检测。由 Nicolas Goix 贡献。cluster.KMeans新增了algorithm="elkan",实现了 Elkan 的快速 K-Means 算法。由 Andreas Müller 贡献。
模型选择和评估
新增了
metrics.fowlkes_mallows_score,即 Fowlkes Mallows 指数,用于衡量一组点的两种聚类之间的相似性。由 Arnaud Fouchet 和 Thierry Guillemot 贡献。新增了
metrics.calinski_harabaz_score,它计算 Calinski 和 Harabaz 分数以评估一组点的聚类结果。由 Arnaud Fouchet 和 Thierry Guillemot 贡献。新增了交叉验证分割器
model_selection.TimeSeriesSplit,用于处理时间序列数据。 #6586,由 YenChen Lin 贡献交叉验证迭代器已被
sklearn.model_selection中提供的交叉验证分割器取代,允许嵌套交叉验证。更多信息请参见[模型选择改进和 API 更改](#model-selection-changes)。 #4294,由 Raghav RV 贡献。
改进#
树和集成方法
为
tree.DecisionTreeRegressor添加了一个新的分裂准则:平均绝对误差。此准则也可用于ensemble.ExtraTreesRegressor、ensemble.RandomForestRegressor和梯度提升估计器中。 #6667,由 Nelson Liu 贡献。为决策树增长添加了基于加权杂质的早期停止准则。 #6954,由 Nelson Liu 贡献
随机森林、极端随机树和决策树估计器现在具有一个
decision_path方法,该方法返回样本在树中的决策路径。由 Arnaud Joly 贡献。新增了一个示例,揭示决策树的结构。由 Arnaud Joly 贡献。
随机森林、极端随机树、决策树和梯度提升估计器接受以训练样本百分比形式提供的
min_samples_split和min_samples_leaf参数。由 yelite 和 Arnaud Joly 贡献。梯度提升估计器接受
criterion参数,用于指定在构建决策树时使用的分裂准则。 #6667,由 Nelson Liu 贡献。通过仅在需要时动态生成属性
estimators_samples_,ensemble.bagging.BaseBagging及其继承类(即ensemble.BaggingClassifier、ensemble.BaggingRegressor和ensemble.IsolationForest)的内存占用减少了(有时大幅减少)。由 David Staub 贡献。为
ensemble.VotingClassifier添加了n_jobs和sample_weight参数,以便并行拟合底层估计器。 #5805,由 Ibraim Ganiev 贡献。
线性、核化及相关模型
在
linear_model.LogisticRegression中,SAG 求解器现在可用于多项式情况。 #5251,由 Tom Dupre la Tour 贡献。linear_model.RANSACRegressor、svm.LinearSVC和svm.LinearSVR现在支持sample_weight。由 Imaculate 贡献。为
linear_model.RANSACRegressor添加了loss参数,用于衡量每次试验中样本上的误差。由 Manoj Kumar 贡献。使用等渗回归(
isotonic.IsotonicRegression)对样本外事件的预测现在快得多(在合成数据测试中超过 1000 倍)。由 Jonathan Arfa 贡献。等渗回归(
isotonic.IsotonicRegression)现在使用更好的算法来避免病态情况下的O(n^2)行为,并且通常也更快(##6691)。由 Antony Lee 贡献。naive_bayes.GaussianNB现在通过参数priors接受独立于数据的类别先验。由 Guillaume Lemaitre 贡献。linear_model.ElasticNet和linear_model.Lasso现在可以处理np.float32输入数据,而无需将其转换为np.float64。这有助于减少内存消耗。 #6913,由 YenChen Lin 贡献。semi_supervised.LabelPropagation和semi_supervised.LabelSpreading除了接受字符串knn和rbf外,现在还接受任意核函数。 #5762,由 Utkarsh Upadhyay 贡献。
分解、流形学习和聚类
为
decomposition.NMF添加了inverse_transform函数,用于计算原始形状的数据矩阵。由 Anish Shah 贡献。cluster.KMeans和cluster.MiniBatchKMeans现在可以处理np.float32和np.float64输入数据,而无需进行转换。这允许通过使用np.float32来减少内存消耗。 #6846,由 Sebastian Säger 和 YenChen Lin 贡献。
预处理和特征选择
preprocessing.RobustScaler现在接受quantile_range参数。 #5929,由 Konstantin Podshumok 贡献。feature_extraction.FeatureHasher现在接受字符串值。 #6173,由 Ryad Zenine 和 Devashish Deshpande 贡献。现在可以通过
kw_args参数向preprocessing.FunctionTransformer中的func提供关键字参数。由 Brian McFee 贡献。feature_selection.SelectKBest和feature_selection.SelectPercentile现在接受将 X, y 作为输入并仅返回分数的评分函数。由 Nikolay Mayorov 贡献。
模型评估和元估计器
multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier现在支持partial_fit。由 Asish Panda 和 Philipp Dowling 贡献。增加了对使用驱动
sklearn.grid_search的set_params接口来替换或禁用pipeline.Pipeline和pipeline.FeatureUnion组件的支持。请参阅[使用 Pipeline 和 GridSearchCV 选择降维方法](#sphx-glr-auto-examples-compose-plot-compare-reduction-py)。由 Joel Nothman 和 Robert McGibbon 贡献。model_selection.GridSearchCV(和model_selection.RandomizedSearchCV)的新cv_results_属性可以轻松导入到 pandas 中作为DataFrame。更多信息请参考[模型选择改进和 API 更改](#model-selection-changes)。 #6697,由 Raghav RV 贡献。model_selection.cross_val_predict的泛化。现在可以传递predict_proba等方法名称在交叉验证框架中使用,而不是默认的predict。由 Ori Ziv 和 Sears Merritt 贡献。每个搜索候选项的训练得分以及训练和评估所花费的时间现在可在
cv_results_字典中找到。更多信息请参见[模型选择改进和 API 更改](#model-selection-changes)。 #7325,由 Eugene Chen 和 Raghav RV 贡献。
度量
为
metrics.log_loss添加了labels标志,以便在y_true和y_pred中的类别数量不同时显式提供标签。 #7239,由 Hong Guangguo 贡献,Mads Jensen 和 Nelson Liu 协助。支持在聚类评估(
metrics.cluster.supervised)中使用稀疏列联矩阵,以适应大量聚类。 #7419,由 Gregory Stupp 和 Joel Nothman 贡献。为
metrics.matthews_corrcoef添加sample_weight参数。由 Jatin Shah 和 Raghav RV 贡献。通过使用向量化操作,加快了
metrics.silhouette_score的速度。由 Manoj Kumar 贡献。为
metrics.confusion_matrix添加sample_weight参数。由 Bernardo Stein 贡献。
杂项
为
feature_selection.RFECV添加了n_jobs参数,以并行计算测试折叠上的得分。由 Manoj Kumar 贡献代码库不包含 C/C++ Cython 生成的文件:它们在构建过程中生成。分发包仍将包含生成的 C/C++ 文件。由 Arthur Mensch 贡献。
通过支持 Cython 融合类型,减少了
utils.sparse_func.mean_variance_axis和utils.sparse_func.incr_mean_variance_axis的 32 位浮点输入数组的内存使用。由 YenChen Lin 贡献。`ignore_warnings` 现在接受一个 `category` 参数,以仅忽略指定类型的警告。由 Thierry Guillemot 贡献。
为
datasets.load_iris数据集 #7049、datasets.load_breast_cancer数据集 #7152、datasets.load_digits数据集、datasets.load_diabetes数据集、datasets.load_linnerud数据集、datasets.load_boston数据集 #7154 添加了参数return_X_y和返回类型(data, target) : tuple选项。由 Manvendra Singh 贡献。简化了
clone函数,废弃了对在__init__中修改参数的估计器的支持。 #5540,由 Andreas Müller 贡献。当反序列化(unpickling)scikit-learn 估计器时,如果版本与训练该估计器的版本不同,则会引发
UserWarning,更多详细信息请参见[模型持久化文档](#persistence-limitations)。 (#7248) 由 Andreas Müller 贡献。
错误修复#
树和集成方法
随机森林、极端随机树、决策树和梯度提升将不再接受
min_samples_split=1,因为决策树节点分裂至少需要 2 个样本。由 Arnaud Joly 贡献如果对未拟合的估计器调用
predict、transform或predict_proba,ensemble.VotingClassifier现在会引发NotFittedError。由 Sebastian Raschka 贡献。修复了
ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor在random_state固定时性能不佳的错误 (#7411)。由 Joel Nothman 贡献。修复了随机化集成中存在的错误,即集成不会在管道或类似嵌套中的基础估计器上设置
random_state。 (#7411)。请注意,ensemble.BaggingClassifier、ensemble.BaggingRegressor、ensemble.AdaBoostClassifier和ensemble.AdaBoostRegressor的结果现在将与以前的版本不同。由 Joel Nothman 贡献。
线性、核化及相关模型
修复了
linear_model.SGDClassifier和linear_model.SGDRegressor中loss='squared_epsilon_insensitive'的梯度计算不正确的问题 (#6764)。由 Wenhua Yang 贡献。修复了
linear_model.LogisticRegressionCV中solver='liblinear'不接受class_weights='balanced'的错误。 (#6817)。由 Tom Dupre la Tour 贡献。修复了
neighbors.RadiusNeighborsClassifier中的错误,即当存在异常值被标记且指定了权重函数时会发生错误 (#6902)。由 LeonieBorne 贡献。修复
linear_model.ElasticNet稀疏决策函数,使其在多输出情况下与密集输出匹配。
分解、流形学习和聚类
decomposition.RandomizedPCA的默认iterated_power数量从 3 更改为 4。 #5141,由 Giorgio Patrini 贡献。utils.extmath.randomized_svd默认执行 4 次幂迭代,而不是 0 次。实际上,这足以在存在噪声的情况下获得真实特征值/向量的良好近似。当n_components较小(< .1 * min(X.shape))时,除非用户指定更高的数字,否则n_iter设置为 7。这提高了少数组件的精度。 #5299,由 Giorgio Patrini 贡献。decomposition.PCA和decomposition.RandomizedPCA(现已分解为 PCA,参见新特性)组件之间的白化/非白化不一致问题已修复。`components_` 存储时未进行白化。 #5299,由 Giorgio Patrini 贡献。修复了
manifold.spectral_embedding中的错误,即未归一化拉普拉斯矩阵的对角线被错误地设置为 1。 #4995,由 Peter Fischer 贡献。修复了
utils.arpack.eigsh在所有出现处的错误初始化。影响cluster.bicluster.SpectralBiclustering、decomposition.KernelPCA、manifold.LocallyLinearEmbedding和manifold.SpectralEmbedding(#5012)。由 Peter Fischer 贡献。discriminant_analysis.LinearDiscriminantAnalysis的 SVD 求解器计算的属性explained_variance_ratio_现在返回正确的结果。由 JPFrancoia 贡献
预处理和特征选择
当
copy=True时,preprocessing.data._transform_selected现在总是将X的副本传递给转换函数 (#7194)。由 Caio Oliveira 贡献。
模型评估和元估计器
model_selection.StratifiedKFold现在在所有单个类别的 n_labels 都小于 n_folds 时引发错误。 #6182 由 Devashish Deshpande 贡献。修复了
model_selection.StratifiedShuffleSplit中的一个错误,该错误导致训练和测试样本在某些极端情况下可能重叠,详见 #6121。由 Loic Esteve 贡献。修复了
sklearn.model_selection.StratifiedShuffleSplit,使其在所有情况下都返回大小为train_size和test_size的拆分 (#6472)。由 Andreas Müller 贡献。multiclass.OneVsOneClassifier和multiclass.OneVsRestClassifier的交叉验证现在支持预计算的核。 #7350 由 Russell Smith 贡献。修复了
model_selection.GridSearchCV向linear_model.SGDClassifier委托predict_proba方法不完整的问题 (#7159)。由 Yichuan Liu 贡献。
度量
修复了
metrics.silhouette_score中的一个错误,该错误导致大小为 1 的簇被错误评分。它们应该得到 0 分。由 Joel Nothman 贡献。修复了
metrics.silhouette_samples中的一个错误,使其现在可以处理任意标签,而不仅仅是 0 到 n_clusters - 1 范围内的标签。修复了一个错误,该错误导致如果簇列联表单元格超过
2**16,则预期和调整后的互信息不正确。由 Joel Nothman 贡献。metrics.pairwise_distances现在在scipy.spatial.distance中需要时将数组转换为布尔数组。 #5460 由 Tom Dupre la Tour 贡献。修复了
metrics.silhouette_score中的稀疏输入支持以及示例 examples/text/document_clustering.py。由 YenChen Lin 贡献。metrics.roc_curve和metrics.precision_recall_curve在创建 ROC 曲线时不再对y_score值进行四舍五入;这给分数差异非常小的用户造成了问题 (#7353)。
杂项
model_selection.tests._search._check_param_grid现在可以正确处理所有扩展/实现Sequence的类型(字符串除外),包括 range (Python 3.x) 和 xrange (Python 2.x)。 #7323 由 Viacheslav Kovalevskyi 贡献。utils.extmath.randomized_range_finder在请求多次幂迭代时数值稳定性更高,因为它默认应用 LU 归一化。如果n_iter<2,则不太可能出现数值问题,因此不应用归一化。其他归一化选项包括:'none'、'LU'和'QR'。 #5141 由 Giorgio Patrini 贡献。修复了一个错误,即某些格式的
scipy.sparse矩阵以及以其为参数的估计器无法传递给base.clone。由 Loic Esteve 贡献。datasets.load_svmlight_file现在能够读取长整型 QID 值。 #7101 由 Ibraim Ganiev 贡献。
API 更改摘要#
线性、核化及相关模型
linear_model.RANSACRegressor中的residual_metric已被弃用。请改用loss。由 Manoj Kumar 贡献。isotonic.IsotonicRegression中对公共属性.X_和.y_的访问已弃用。由 Jonathan Arfa 贡献。
分解、流形学习和聚类
旧的
mixture.DPGMM已被弃用,取而代之的是新的mixture.BayesianGaussianMixture(参数为weight_concentration_prior_type='dirichlet_process')。新类解决了旧类的计算问题,并比以前更快地计算具有 Dirichlet 过程先验的高斯混合。 #7295 由 Wei Xue 和 Thierry Guillemot 贡献。旧的
mixture.VBGMM已被弃用,取而代之的是新的mixture.BayesianGaussianMixture(参数为weight_concentration_prior_type='dirichlet_distribution')。新类解决了旧类的计算问题,并比以前更快地计算变分贝叶斯高斯混合。 #6651 由 Wei Xue 和 Thierry Guillemot 贡献。旧的
mixture.GMM已被弃用,取而代之的是新的mixture.GaussianMixture。新类比以前更快地计算高斯混合,并且一些计算问题已经得到解决。 #6666 由 Wei Xue 和 Thierry Guillemot 贡献。
模型评估和元估计器
sklearn.cross_validation、sklearn.grid_search和sklearn.learning_curve已被弃用,其类和函数已重组到sklearn.model_selection模块中。有关更多信息,请参阅 模型选择增强和 API 更改。 #4294 由 Raghav RV 贡献。model_selection.GridSearchCV和model_selection.RandomizedSearchCV的grid_scores_属性已弃用,取而代之的是cv_results_属性。有关更多信息,请参阅 模型选择增强和 API 更改。 #6697 由 Raghav RV 贡献。旧版 CV 拆分器中的参数
n_iter或n_folds已替换为新参数n_splits,因为它提供了一致且明确的接口来表示训练-测试拆分的数量。 #7187 由 YenChen Lin 贡献。metrics.hamming_loss中的classes参数已重命名为labels。 #7260 由 Sebastián Vanrell 贡献。拆分器类
LabelKFold、LabelShuffleSplit、LeaveOneLabelOut和LeavePLabelsOut分别重命名为model_selection.GroupKFold、model_selection.GroupShuffleSplit、model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut。此外,新重命名的拆分器model_selection.LeaveOneGroupOut和model_selection.LeavePGroupsOut的split方法中的参数labels已重命名为groups。另外,在model_selection.LeavePGroupsOut中,参数n_labels已重命名为n_groups。 #6660 由 Raghav RV 贡献。scoring参数的错误和损失名称现在以'neg_'为前缀,例如neg_mean_squared_error。无前缀版本已弃用,并将在 0.20 版本中移除。 #7261 由 Tim Head 贡献。
代码贡献者#
Aditya Joshi, Alejandro, Alexander Fabisch, Alexander Loginov, Alexander Minyushkin, Alexander Rudy, Alexandre Abadie, Alexandre Abraham, Alexandre Gramfort, Alexandre Saint, alexfields, Alvaro Ulloa, alyssaq, Amlan Kar, Andreas Mueller, andrew giessel, Andrew Jackson, Andrew McCulloh, Andrew Murray, Anish Shah, Arafat, Archit Sharma, Ariel Rokem, Arnaud Joly, Arnaud Rachez, Arthur Mensch, Ash Hoover, asnt, b0noI, Behzad Tabibian, Bernardo, Bernhard Kratzwald, Bhargav Mangipudi, blakeflei, Boyuan Deng, Brandon Carter, Brett Naul, Brian McFee, Caio Oliveira, Camilo Lamus, Carol Willing, Cass, CeShine Lee, Charles Truong, Chyi-Kwei Yau, CJ Carey, codevig, Colin Ni, Dan Shiebler, Daniel, Daniel Hnyk, David Ellis, David Nicholson, David Staub, David Thaler, David Warshaw, Davide Lasagna, Deborah, definitelyuncertain, Didi Bar-Zev, djipey, dsquareindia, edwinENSAE, Elias Kuthe, Elvis DOHMATOB, Ethan White, Fabian Pedregosa, Fabio Ticconi, fisache, Florian Wilhelm, Francis, Francis O’Donovan, Gael Varoquaux, Ganiev Ibraim, ghg, Gilles Louppe, Giorgio Patrini, Giovanni Cherubin, Giovanni Lanzani, Glenn Qian, Gordon Mohr, govin-vatsan, Graham Clenaghan, Greg Reda, Greg Stupp, Guillaume Lemaitre, Gustav Mörtberg, halwai, Harizo Rajaona, Harry Mavroforakis, hashcode55, hdmetor, Henry Lin, Hobson Lane, Hugo Bowne-Anderson, Igor Andriushchenko, Imaculate, Inki Hwang, Isaac Sijaranamual, Ishank Gulati, Issam Laradji, Iver Jordal, jackmartin, Jacob Schreiber, Jake Vanderplas, James Fiedler, James Routley, Jan Zikes, Janna Brettingen, jarfa, Jason Laska, jblackburne, jeff levesque, Jeffrey Blackburne, Jeffrey04, Jeremy Hintz, jeremynixon, Jeroen, Jessica Yung, Jill-Jênn Vie, Jimmy Jia, Jiyuan Qian, Joel Nothman, johannah, John, John Boersma, John Kirkham, John Moeller, jonathan.striebel, joncrall, Jordi, Joseph Munoz, Joshua Cook, JPFrancoia, jrfiedler, JulianKahnert, juliathebrave, kaichogami, KamalakerDadi, Kenneth Lyons, Kevin Wang, kingjr, kjell, Konstantin Podshumok, Kornel Kielczewski, Krishna Kalyan, krishnakalyan3, Kvle Putnam, Kyle Jackson, Lars Buitinck, ldavid, LeiG, LeightonZhang, Leland McInnes, Liang-Chi Hsieh, Lilian Besson, lizsz, Loic Esteve, Louis Tiao, Léonie Borne, Mads Jensen, Maniteja Nandana, Manoj Kumar, Manvendra Singh, Marco, Mario Krell, Mark Bao, Mark Szepieniec, Martin Madsen, MartinBpr, MaryanMorel, Massil, Matheus, Mathieu Blondel, Mathieu Dubois, Matteo, Matthias Ekman, Max Moroz, Michael Scherer, michiaki ariga, Mikhail Korobov, Moussa Taifi, mrandrewandrade, Mridul Seth, nadya-p, Naoya Kanai, Nate George, Nelle Varoquaux, Nelson Liu, Nick James, NickleDave, Nico, Nicolas Goix, Nikolay Mayorov, ningchi, nlathia, okbalefthanded, Okhlopkov, Olivier Grisel, Panos Louridas, Paul Strickland, Perrine Letellier, pestrickland, Peter Fischer, Pieter, Ping-Yao, Chang, practicalswift, Preston Parry, Qimu Zheng, Rachit Kansal, Raghav RV, Ralf Gommers, Ramana.S, Rammig, Randy Olson, Rob Alexander, Robert Lutz, Robin Schucker, Rohan Jain, Ruifeng Zheng, Ryan Yu, Rémy Léone, saihttam, Saiwing Yeung, Sam Shleifer, Samuel St-Jean, Sartaj Singh, Sasank Chilamkurthy, saurabh.bansod, Scott Andrews, Scott Lowe, seales, Sebastian Raschka, Sebastian Saeger, Sebastián Vanrell, Sergei Lebedev, shagun Sodhani, shanmuga cv, Shashank Shekhar, shawpan, shengxiduan, Shota, shuckle16, Skipper Seabold, sklearn-ci, SmedbergM, srvanrell, Sébastien Lerique, Taranjeet, themrmax, Thierry, Thierry Guillemot, Thomas, Thomas Hallock, Thomas Moreau, Tim Head, tKammy, toastedcornflakes, Tom, TomDLT, Toshihiro Kamishima, tracer0tong, Trent Hauck, trevorstephens, Tue Vo, Varun, Varun Jewalikar, Viacheslav, Vighnesh Birodkar, Vikram, Villu Ruusmann, Vinayak Mehta, walter, waterponey, Wenhua Yang, Wenjian Huang, Will Welch, wyseguy7, xyguo, yanlend, Yaroslav Halchenko, yelite, Yen, YenChenLin, Yichuan Liu, Yoav Ram, Yoshiki, Zheng RuiFeng, zivori, Óscar Nájera