版本 0.18#

警告

Scikit-learn 0.18 是最后一个支持 Python 2.6 的主要 scikit-learn 版本。后续版本的 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参数,如果未将sample_weight参数传递给fit函数,现在默认情况下假设样本权重一致。之前,此参数会被静默忽略。#7301Nelson Liu贡献。

  • 树分割标准类的克隆/pickle操作现在内存安全。#7680Ibraim Ganiev贡献。

线性、核化及相关模型

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 从单数形式变为复数形式。

  • 拟合参数标签重命名为 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' 中找到。

更新日志#

新功能#

分类器和回归器

其他估计器

模型选择和评估

增强功能#

树和集成

线性、核化及相关模型

分解、流形学习和聚类

预处理和特征选择

模型评估和元估计器

指标

其他改进

错误修复#

树和集成

线性、核化及相关模型

分解、流形学习和聚类

预处理和特征选择

  • 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,该bug导致某些格式的scipy.sparse矩阵以及具有这些矩阵作为参数的估计器无法传递给base.clone。由Loic Esteve修复。

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

API更改摘要#

线性、核化及相关模型

分解、流形学习和聚类

模型评估和元估计器

代码贡献者#

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,Gaël 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 Lemaître,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,Julian Kahnert,juliathebrave,kaichogami,Kamalaker Dadi,Kenneth Lyons,Kevin Wang,kingjr,kjell,Konstantin Podshumok,Kornel Kielczewski,Krishna Kalyan,krishnakalyan3,Kvle Putnam,Kyle Jackson,Lars Buitinck,ldavid,LeiG,Leighton Zhang,Leland McInnes,Liang-Chi Hsieh,Lilian Besson,lizsz,Loïc Esteve,Louis Tiao,Léonie Borne,Mads Jensen,Maniteja Nandana,Manoj Kumar,Manvendra Singh,Marco,Mario Krell,Mark Bao,Mark Szepieniec,Martin Madsen,MartinBpr,Maryan Morel,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