版本 0.20#

警告

版本 0.20 是 scikit-learn 的最后一个支持 Python 2.7 和 Python 3.4 的版本。Scikit-learn 0.21 将需要 Python 3.5 或更高版本。

变更日志图例

  • 主要功能 之前无法实现的重要功能。

  • 功能 之前无法实现的功能。

  • 效率提升 现有功能现在可能不需要那么多计算或内存。

  • 增强 各种各样的次要改进。

  • 修复 之前无法按文档说明或合理预期工作的内容现在应该可以工作了。

  • API 变更 您需要更改代码才能在将来获得相同的效果;或者某个功能将在将来被移除。

版本 0.20.4#

2019年7月30日

这是一个错误修复版本,其中包含应用于版本 0.20.3 的一些错误修复。

变更日志#

捆绑的 joblib 版本已从 0.13.0 升级到 0.13.2。

sklearn.cluster#

sklearn.compose#

  • 修复 修复了 compose.ColumnTransformer 中的一个问题,其中使用列顺序在 :func:fit 和 :func:transform 之间不同的 DataFrames 可能会导致将不正确的列静默地传递给 remainder 变换器。 #14237Andreas Schuderer <schuderer> 提供。

sklearn.decomposition#

sklearn.model_selection#

sklearn.neighbors#

版本 0.20.3#

2019年3月1日

这是一个错误修复版本,其中包含一些次要的文档改进以及对 0.20.0 中发布的功能的增强。

变更日志#

sklearn.cluster#

sklearn.compose#

sklearn.covariance#

sklearn.decomposition#

sklearn.datasets#

sklearn.feature_extraction#

sklearn.impute#

sklearn.linear_model#

sklearn.preprocessing#

sklearn.svm#

代码和文档贡献者#

感谢

Adrin Jalali, Agamemnon Krasoulis, Albert Thomas, Andreas Mueller, Aurélien Bellet, bertrandhaut, Bharat Raghunathan, Dowon, Emmanuel Arias, Fibinse Xavier, Finn O’Shea, Gabriel Vacaliuc, Gael Varoquaux, Guillaume Lemaitre, Hanmin Qin, joaak, Joel Nothman, Joris Van den Bossche, Jérémie Méhault, kms15, Kossori Aruku, Lakshya KD, maikia, Manuel López-Ibáñez, Marco Gorelli, MarcoGorelli, mferrari3, Mickaël Schoentgen, Nicolas Hug, pavlos kallis, Pierre Glaser, pierretallotte, Prabakaran Kumaresshan, Reshama Shaikh, Rohit Kapoor, Roman Yurchak, SandroCasagrande, Tashay Green, Thomas Fan, Vishaal Kapoor, Xue Zhuyi, Poh Zijie (ZJ)

版本 0.20.2#

2018年12月20日

这是一个错误修复版本,其中包含一些次要的文档改进以及对 0.20.0 中发布的功能的增强。

模型变更#

使用相同数据和参数拟合的以下估计器和函数,可能会产生与先前版本不同的模型。这通常是由于建模逻辑的更改(错误修复或增强)或随机抽样程序造成的。

  • sklearn.neighborsmetric=='jaccard' (bug修复)

  • 在某些情况下使用'seuclidean''mahalanobis'度量 (bug修复)

变更日志#

sklearn.compose#

sklearn.metrics#

sklearn.neighbors#

  • 修复 修复了sklearn.neighbors.DistanceMetric的Jaccard距离函数,使其在比较两个全零向量时返回0。#12685Thomas Fan提交。

sklearn.utils#

代码和文档贡献者#

感谢

adanhawth, Adrin Jalali, Albert Thomas, Andreas Mueller, Dan Stine, Feda Curic, Hanmin Qin, Jan S, jeremiedbb, Joel Nothman, Joris Van den Bossche, josephsalmon, Katrin Leinweber, Loic Esteve, Muhammad Hassaan Rafique, Nicolas Hug, Olivier Grisel, Paul Paczuski, Reshama Shaikh, Sam Waterbury, Shivam Kotwalia, Thomas Fan

版本 0.20.1#

2018年11月21日

这是一个错误修复版本,包含一些次要的文档改进和对0.20.0版本中发布的功能的增强。请注意,此版本中还包含一些API更改,因此从0.20.0更新到0.20.1后,您可能会收到一些额外的警告。

模型变更#

使用相同数据和参数拟合的以下估计器和函数,可能会产生与先前版本不同的模型。这通常是由于建模逻辑的更改(错误修复或增强)或随机抽样程序造成的。

变更日志#

sklearn.cluster#

  • 效率提升 使得 cluster.MeanShift 不再尝试进行嵌套并行化,因为当 n_jobs > 1 时,其开销会显著降低性能。 #12159Olivier Grisel 完成。

  • 修复 修复了 cluster.DBSCAN 在使用预计算的稀疏邻域图时的错误,该错误会在即使对角线元素已存在的情况下,显式地添加零值。 #12105Tom Dupre la Tour 完成。

sklearn.compose#

sklearn.datasets#

sklearn.decomposition#

  • 修复 修复了 decomposition.IncrementalPCA 中的回归问题,其中 0.20.0 版本在拟合 IncrementalPCA 的最终批次样本数小于 n_components 时会引发错误。 #12234Ming Li 完成。

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.linear_model#

sklearn.metrics#

sklearn.mixture#

sklearn.neighbors#

sklearn.preprocessing#

sklearn.utils#

其他#

  • 修复 通过设置环境变量 SKLEARN_SITE_JOBLIB 使用 site joblib 时,增加了对 joblib 0.11 以及 0.12+ 版本的兼容性。 #12350Joel NothmanRoman Yurchak 修复。

  • 修复 确保在使用 numpy 1.16 及更高版本调用 np.vstack 时避免引发 FutureWarning(在 scikit-learn 代码库的许多位置使用列表推导式代替生成器表达式)。 #12467Olivier Grisel 修复。

  • API变更 删除了所有对 sklearn.externals.joblib 的提及,并弃用了 sklearn.utils 中公开的 joblib 方法,但 utils.parallel_backendutils.register_parallel_backend 除外,这两个方法允许用户配置 scikit-learn 中的并行计算。其他功能是 joblib 包的一部分,应该通过安装它直接使用。此更改的目的是为在 scikit-learn 的未来版本中取消 joblib 的捆绑做准备。 #12345Thomas Moreau 完成。

代码和文档贡献者#

感谢

^__^, Adrin Jalali, Andrea Navarrete, Andreas Mueller, bauks, BenjaStudio, Cheuk Ting Ho, Connossor, Corey Levinson, Dan Stine, daten-kieker, Denis Kataev, Dillon Gardner, Dmitry Vukolov, Dougal J. Sutherland, Edward J Brown, Eric Chang, Federico Caselli, Gabriel Marzinotto, Gael Varoquaux, GauravAhlawat, Gustavo De Mari Pereira, Hanmin Qin, haroldfox, JackLangerman, Jacopo Notarstefano, janvanrijn, jdethurens, jeremiedbb, Joel Nothman, Joris Van den Bossche, Koen, Kushal Chauhan, Lee Yi Jie Joel, Lily Xiong, mail-liam, Mark Hannel, melsyt, Ming Li, Nicholas Smith, Nicolas Hug, Nikolay Shebanov, Oleksandr Pavlyk, Olivier Grisel, Peter Hausamann, Pierre Glaser, Pulkit Maloo, Quentin Batista, Radostin Stoyanov, Ramil Nugmanov, Rebekah Kim, Reshama Shaikh, Rohan Singh, Roman Feldbauer, Roman Yurchak, Roopam Sharma, Sam Waterbury, Scott Lowe, Sebastian Raschka, Stephen Tierney, SylvainLan, TakingItCasual, Thomas Fan, Thomas Moreau, Tom Dupré la Tour, Tulio Casagrande, Utkarsh Upadhyay, Xing Han Lu, Yaroslav Halchenko, Zach Miller

0.20.0 版本#

2018年9月25日

此版本包含大量针对 Scikit-learn 库的错误修复、功能和增强,以及对文档和示例的改进。感谢我们的贡献者!

此版本献给已故的 Raghav Rajagopalan。

亮点#

我们试图改进我们对常见数据科学用例的支持,包括缺失值、分类变量、异构数据以及具有异常分布的特征/目标。现在,特征中用 NaN 表示的缺失值在列预处理(如缩放器)中被接受。每个特征在忽略 NaN 的情况下进行拟合,并且包含 NaN 的数据可以进行转换。新的 sklearn.impute 模块提供了即使存在缺失数据也能进行学习的估计器。

ColumnTransformer 处理 pandas.DataFrame 的不同特征或列需要不同预处理的情况。字符串或 pandas 分类列现在可以使用 OneHotEncoderOrdinalEncoder 进行编码。

TransformedTargetRegressor 在需要转换回归目标以进行建模时很有帮助。PowerTransformerKBinsDiscretizerQuantileTransformer 一起作为非线性转换。

除此之外,我们还在多个估计器中添加了sample_weight支持(包括KMeansBayesianRidgeKernelDensity),并改进了其他估计器的停止条件(包括MLPRegressorGradientBoostingRegressorSGDRegressor)。

本版本也是第一个附带由Joel Nothman编写的常用术语和API元素词汇表的版本。该词汇表是一个参考资源,可帮助用户和贡献者熟悉Scikit-learn中使用的术语和约定。

抱歉,您的贡献没有出现在亮点中。这里有很多内容……

已更改的模型#

使用相同数据和参数拟合的以下估计器和函数,可能会产生与先前版本不同的模型。这通常是由于建模逻辑的更改(错误修复或增强)或随机抽样程序造成的。

详细信息列在下面的变更日志中。

(虽然我们正在努力通过提供这些信息来更好地告知用户,但我们不能保证此列表完整。)

已知主要错误#

  • #11924linear_model.LogisticRegressionCV 使用solver='lbfgs'multi_class='multinomial' 在 macOS 上可能是非确定性的或损坏的。这在 Travis CI 服务器上似乎是这种情况,但尚未在个人 MacBook 上得到确认!此问题在之前的版本中就存在。

  • #9354metrics.pairwise.euclidean_distances(在整个库中多次使用)给出的结果精度较差,这尤其影响其与 32 位浮点输入的使用。当某些算法被更改为避免将 32 位数据转换为 64 位时,这在 0.18 和 0.19 版本中变得更加成问题。

变更日志#

已正式放弃对 Python 3.3 的支持。

sklearn.cluster#

sklearn.compose#

sklearn.covariance#

sklearn.datasets#

sklearn.decomposition#

sklearn.discriminant_analysis#

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.gaussian_process#

sklearn.impute#

sklearn.isotonic#

sklearn.linear_model#

sklearn.manifold#

  • 效率提升 manifold.TSNE 中“精确”和“barnes_hut”方法的速度改进。 #10593#10610Tom Dupre la Tour 完成。

  • 新增功能 manifold.Isomap.fit 支持稀疏输入。 #8554Leland McInnes 完成。

  • 新增功能 manifold.t_sne.trustworthiness 接受欧几里得距离以外的度量。 #9775William de Vazelhes 完成。

  • 错误修复 修复了 manifold.spectral_embedding 中的一个错误,该错误在频谱归一化中使用了除法而不是乘法。 #8129Jan MargetaGuillaume LemaitreDevansh D. 完成。

  • API变更 新增功能 弃用函数 manifold.t_sne.trustworthiness 中的 precomputed 参数。取而代之的是,应该使用新的参数 metric,它可以与任何兼容的度量一起使用,包括“precomputed”,在这种情况下,输入矩阵 X 应为成对距离或平方距离矩阵。 #9775William de Vazelhes 完成。

  • API变更 弃用函数 manifold.t_sne.trustworthiness 中的 precomputed 参数。取而代之的是,应该使用新的参数 metric,它可以与任何兼容的度量一起使用,包括“precomputed”,在这种情况下,输入矩阵 X 应为成对距离或平方距离矩阵。 #9775William de Vazelhes 完成。

sklearn.metrics#

sklearn.mixture#

sklearn.model_selection#

sklearn.multioutput#

sklearn.naive_bayes#

sklearn.neighbors#

sklearn.neural_network#

sklearn.pipeline#

sklearn.preprocessing#

sklearn.svm#

sklearn.tree#

  • 增强 虽然是私有的(因此未保证 API 稳定性),但现在可以 cimport 并扩展 tree._criterion.ClassificationCriteriontree._criterion.RegressionCriterion#10325Camil Staps 完成。

  • 修复 修复了 tree.BaseDecisionTree 中使用 splitter="best" 时的一个 bug,该 bug 会导致当 X 中的值接近无穷大时,分割阈值变为无穷大。 #10536Jonathan Ohayon 完成。

  • 修复 修复了 tree.MAE 中的一个 bug,以确保在计算树 MAE 杂质时使用样本权重。之前的行为可能会导致选择次优分割,因为杂质计算认为所有样本的权重都相同。 #11464John Stott 完成。

sklearn.utils#

多个模块#

其他改进#

估计器检查的更改#

这些更改主要影响库开发者。

代码和文档贡献者#

感谢自0.19版以来为项目维护和改进做出贡献的每一个人,包括

211217613,Aarshay Jain,absolutelyNoWarranty,Adam Greenhall,Adam Kleczewski,Adam Richie-Halford,adelr,AdityaDaflapurkar,Adrin Jalali,Aidan Fitzgerald,aishgrt1,Akash Shivram,Alan Liddell,Alan Yee,Albert Thomas,Alexander Lenail,Alexander-N,Alexandre Boucaud,Alexandre Gramfort,Alexandre Sevin,Alex Egg,Alvaro Perez-Diaz,Amanda,Aman Dalmia,Andreas Bjerre-Nielsen,Andreas Mueller,Andrew Peng,Angus Williams,Aniruddha Dave,annaayzenshtat,Anthony Gitter,Antonio Quinonez,Anubhav Marwaha,Arik Pamnani,Arthur Ozga,Artiem K,Arunava,Arya McCarthy,Attractadore,Aurélien Bellet,Aurélien Geron,Ayush Gupta,Balakumaran Manoharan,Bangda Sun,Barry Hart,Bastian Venthur,Ben Lawson,Benn Roth,Breno Freitas,Brent Yi,brett koonce,Caio Oliveira,Camil Staps,cclauss,Chady Kamar,Charlie Brummitt,Charlie Newey,chris,Chris,Chris Catalfo,Chris Foster,Chris Holdgraf,Christian Braune,Christian Hirsch,Christian Hogan,Christopher Jenness,Clement Joudet,cnx,cwitte,Dallas Card,Dan Barkhorn,Daniel,Daniel Ferreira,Daniel Gomez,Daniel Klevebring,Danielle Shwed,Daniel Mohns,Danil Baibak,Darius Morawiec,David Beach,David Burns,David Kirkby,David Nicholson,David Pickup,Derek,Didi Bar-Zev,diegodlh,Dillon Gardner,Dillon Niederhut,dilutedsauce,dlovell,Dmitry Mottl,Dmitry Petrov,Dor Cohen,Douglas Duhaime,Ekaterina Tuzova,Eric Chang,Eric Dean Sanchez,Erich Schubert,Eunji,Fang-Chieh Chou,FarahSaeed,felix,Félix Raimundo,fenx,filipj8,FrankHui,Franz Wompfer,Freija Descamps,frsi,Gabriele Calvo,Gaël Varoquaux,Gaurav Dhingra,Georgi Peev,Gil Forsyth,Giovanni Giuseppe Costa,gkevinyen5418,goncalo-rodrigues,Gryllos Prokopis,Guillaume Lemaître,Guillaume “Vermeille” Sanchez,Gustavo De Mari Pereira,hakaa1,Hanmin Qin,Henry Lin,Hong,Honghe,Hossein Pourbozorg,Hristo,Hunan Rostomyan,iampat,Ivan PANICO,Jaewon Chung,Jake VanderPlas,jakirkam,James Bourbeau,James Malcolm,Jamie Cox,Jan Koch,Jan Margeta,Jan Schlüter,janvanrijn,Jason Wolosonovich,JC Liu,Jeb Bearer,jeremiedbb,Jimmy Wan,Jinkun Wang,Jiongyan Zhang,jjabl,jkleint,Joan Massich,Joël Billaud,Joel Nothman,Johannes Hansen,JohnStott,Jonatan Samoocha,Jonathan Ohayon,Jörg Döpfert,Joris Van den Bossche,Jose Perez-Parras Toledano,josephsalmon,jotasi,jschendel,Julian Kuhlmann,Julien Chaumond,julietcl,Justin Shenk,Karl F,Kasper Primdal Lauritzen,Katrin Leinweber,Kirill,ksemb,Kuai Yu,Kumar Ashutosh,Kyeongpil Kang,Kye Taylor,kyledrogo,Leland McInnes,Léo DS,Liam Geron,Liutong Zhou,Lizao Li,lkjcalc,Loïc Estève,louib,Luciano Viola,Lucija Gregov,Luis Osa,Luis Pedro Coelho,Luke M Craig,Luke Persola,Mabel,Mabel Villalba,Maniteja Nandana,MarkIwanchyshyn,Mark Roth,Markus Müller,MarsGuy,Martin Gubri,martin-hahn,martin-kokos,mathurinm,Matthias Feurer,Max Copeland,Mayur Kulkarni,Meghann Agarwal,Melanie Goetz,Michael A. Alcorn,Minghui Liu,Ming Li,Minh Le,Mohamed Ali Jamaoui,Mohamed Maskani,Mohammad Shahebaz,Muayyad Alsadi,Nabarun Pal,Nagarjuna Kumar,Naoya Kanai,Narendran Santhanam,NarineK,Nathaniel Saul,Nathan Suh,Nicholas Nadeau,P.Eng.,AVS,Nick Hoh,Nicolas Goix,Nicolas Hug,Nicolau Werneck,nielsenmarkus11,Nihar Sheth,Nikita Titov,Nilesh Kevlani,Nirvan Anjirbag,notmatthancock,nzw,Oleksandr Pavlyk,oliblum90,Oliver Rausch,Olivier Grisel,Oren Milman,Osaid Rehman Nasir,pasbi,Patrick Fernandes,Patrick Olden,Paul Paczuski,Pedro Morales,Peter,Peter St. John,pierreablin,pietruh,Pinaki Nath Chowdhury,Piotr Szymański,Pradeep Reddy Raamana,Pravar D Mahajan,pravarmahajan,QingYing Chen,Raghav RV,Rajendra arora,RAKOTOARISON Herilalaina,Rameshwar Bhaskaran,RankyLau,Rasul Kerimov,Reiichiro Nakano,Rob,Roman Kosobrodov,Roman Yurchak,Ronan Lamy,rragundez,Rüdiger Busche,Ryan,Sachin Kelkar,Sagnik Bhattacharya,Sailesh Choyal,Sam Radhakrishnan,Sam Steingold,Samuel Bell,Samuel O. Ronsin,Saqib Nizam Shamsi,SATISH J,Saurabh Gupta,Scott Gigante,Sebastian Flennerhag,Sebastian Raschka,Sebastien Dubois,Sébastien Lerique,Sebastin Santy,Sergey Feldman,Sergey Melder,Sergul Aydore,Shahebaz,Shalil Awaley,Shangwu Yao,Sharad Vijalapuram,Sharan Yalburgi,shenhanc78,Shivam Rastogi,Shu Haoran,siftikha,Sinclert Pérez,SolutusImmensus,Somya Anand,srajan paliwal,Sriharsha Hatwar,Sri Krishna,Stefan van der Walt,Stephen McDowell,Steven Brown,syonekura,Taehoon Lee,Takanori Hayashi,tarcusx,Taylor G Smith,theriley106,Thomas,Thomas Fan,Thomas Heavey,Tobias Madsen,tobycheese,Tom Augspurger,Tom Dupré la Tour,Tommy,Trevor Stephens,Trishnendu Ghorai,Tulio Casagrande,twosigmajab,Umar Farouk Umar,Urvang Patel,Utkarsh Upadhyay,Vadim Markovtsev,Varun Agrawal,Vathsala Achar,Vilhelm von Ehrenheim,Vinayak Mehta,Vinit,Vinod Kumar L,Viraj Mavkal,Viraj Navkal,Vivek Kumar,Vlad Niculae,vqean3,Vrishank Bhardwaj,vufg,wallygauze,Warut Vijitbenjaronk,wdevazelhes,Wenhao Zhang,Wes Barnett,Will,William de Vazelhes,Will Rosenfeld,Xin Xiong,Yiming (Paul) Li,ymazari,Yufeng,Zach Griffith,Zé Vinícius,Zhenqing Hu,Zhiqing Xiao,Zijie (ZJ) Poh