版本 0.18#

Warning

Scikit-learn 0.18 是支持 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日

更新日志#

增强功能#

错误修复#

API 变更总结#

树和森林

  • 基于树的分类器和回归器的 min_weight_fraction_leaf 参数现在默认假设样本权重均匀,如果 fit 函数没有传递 sample_weight 参数。以前,该参数被静默忽略。#7301Nelson Liu 修复。

  • 树分割准则类的克隆/序列化现在内存安全。#7680Ibraim Ganiev 修复。

线性、核化和相关模型

JPFrancoia 提供

版本 0.18#

2016年9月28日

模型选择增强和API变更#

  • model_selection 模块

    新的模块 sklearn.model_selection ,将原先的 sklearn.cross_validationsklearn.grid_searchsklearn.learning_curve 的功能整合在一起,引入了新的可能性,如嵌套交叉验证和使用 Pandas 更好地处理参数搜索。

    许多功能将保持不变,但有一些关键差异。阅读以下内容以了解更多关于这些变更的信息。

  • 数据无关的CV分割器,支持嵌套交叉验证

    sklearn.model_selection 中定义的新交叉验证分割器不再使用任何数据依赖参数(如 y )进行初始化。相反,它们公开了一个 split 方法,该方法接受数据并生成不同分割的生成器。

    这一变更使得可以使用交叉验证分割器执行嵌套交叉验证,由 model_selection.GridSearchCVmodel_selection.RandomizedSearchCV 工具辅助实现。

  • 增强的 cv_results_ 属性

    新的 cv_results_ 属性(在 model_selection.GridSearchCVmodel_selection.RandomizedSearchCV 中引入,取代了 grid_scores_ 属性)是一个包含一维数组的字典,每个数组中的元素对应于参数设置(即搜索候选)。

    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.KFoldmodel_selection.GroupKFold (见下文名称更改)和 model_selection.StratifiedKFold 中的 n_folds 参数现在已重命名为 n_splitsmodel_selection.ShuffleSplit 、新类 model_selection.GroupShuffleSplitmodel_selection.StratifiedShuffleSplit 中的 n_iter 参数现在已重命名为 n_splits

  • 接受组标签和数据的分割器类重命名

    交叉验证分割器 LabelKFoldLabelShuffleSplitLeaveOneLabelOutLeavePLabelOut 已重命名为 model_selection.GroupKFoldmodel_selection.GroupShuffleSplitmodel_selection.LeaveOneGroupOutmodel_selection.LeavePGroupsOut

    注意 model_selection.LeavePGroupsOut 中从单数形式到复数形式的更改。

  • 拟合参数 labels 重命名为 groups

    在新重命名的分割器 model_selection.GroupKFoldmodel_selection.LeaveOneGroupOutmodel_selection.LeavePGroupsOutmodel_selection.GroupShuffleSplitsplit 方法中的 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' 中可用。

更新日志#

新功能#

分类器和回归器

其他估计器

模型选择和评估

增强功能#

树和集成

线性、核化及相关模型

分解、流形学习和聚类

这允许通过使用 np.float32 来减少内存消耗。 #6846Sebastian SägerYenChen Lin 贡献。

预处理和特征选择

模型评估和元估计器

指标

杂项

  • feature_selection.RFECV 中添加了 n_jobs 参数,以并行计算测试折叠的分数。 由 Manoj Kumar 贡献。

  • 代码库不包含 C/C++ cython 生成的文件:它们在构建过程中生成。分发包仍将包含生成的 C/C++ 文件。 由 Arthur Mensch 贡献。

  • 通过支持 cython 融合类型,减少了 utils.sparse_func.mean_variance_axisutils.sparse_func.incr_mean_variance_axis 对 32 位浮点输入数组的内存使用。 由 YenChen Lin 贡献。

  • ignore_warnings 现在接受一个类别参数,以仅忽略指定类型的警告。 由 Thierry Guillemot 贡献。

  • datasets.load_iris 数据集中添加了参数 return_X_y 和返回类型 (data, target) : tuple 选项 #7049

datasets.load_breast_cancer 数据集 #7152 , datasets.load_digits 数据集, datasets.load_diabetes 数据集, datasets.load_linnerud 数据集,

datasets.load_boston 数据集

#7154Manvendra Singh 贡献。

  • 简化了 clone 函数,弃用了在 __init__ 中修改参数的估计器支持。#5540Andreas Müller 贡献。

  • 当在不同于训练时版本的scikit-learn中解封装一个估计器时,会引发一个 UserWarning ,详情请参阅 模型持久化文档 。(#7248 ) 由 Andreas Müller 贡献。

Bug 修复#

树和集成

线性、核化和相关模型

分解、流形学习和聚类

discriminant_analysis.LinearDiscriminantAnalysis 现在返回正确的结果。由 JPFrancoia 贡献。

预处理和特征选择

  • preprocessing.data._transform_selected 现在在 copy=True 时总是传递 X 的副本给转换函数(#7194 )。由 Caio Oliveira 贡献。

模型评估和元估计器

指标

其他

  • 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'#5141Giorgio Patrini 贡献。

  • 修复了一个 bug,某些格式的 scipy.sparse 矩阵以及将其作为参数的估计器无法传递给 base.clone 。由 Loic Esteve 贡献。

  • datasets.load_svmlight_file 现在能够读取长整型 QID 值。#7101Ibraim Ganiev 贡献。

API 变更总结#

线性、核化及相关模型

分解、流形学习和聚类

  • 旧的 mixture.DPGMM 已被弃用,取而代之的是新的 mixture.BayesianGaussianMixture (参数为 weight_concentration_prior_type='dirichlet_process' )。新类解决了计算问题。

  • 旧的 mixture.DPGMM 已被弃用,取而代之的是新的 mixture.BayesianGaussianMixture (参数为 weight_concentration_prior_type='dirichlet_process' )。 新类解决了旧类的计算问题,并且比以前更快地计算带有Dirichlet过程先验的高斯混合。 #7295Wei XueThierry Guillemot 贡献。

  • 旧的 mixture.VBGMM 已被弃用,取而代之的是新的 mixture.BayesianGaussianMixture (参数为 weight_concentration_prior_type='dirichlet_distribution' )。 新类解决了旧类的计算问题,并且比以前更快地计算变分贝叶斯高斯混合。 #6651Wei XueThierry Guillemot 贡献。

  • 旧的 mixture.GMM 已被弃用,取而代之的是新的 mixture.GaussianMixture 。新类比以前更快地计算高斯混合,并且解决了某些计算问题。 #6666Wei XueThierry Guillemot 贡献。

模型评估和元估计器

代码贡献者#

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