版本 0.20#

Warning

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

Legend for changelogs

  • Major Feature something big that you couldn’t do before.

  • Feature something that you couldn’t do before.

  • Efficiency an existing feature now may not require as much computation or memory.

  • Enhancement a miscellaneous minor improvement.

  • Fix something that previously didn’t work as documented – or according to reasonable expectations – should now work.

  • API Change you will need to change your code to have the same effect in the future; or a feature will be removed in the future.

版本 0.20.4#

2019年7月30日

这是一个包含一些针对版本 0.20.3 的错误修复的补丁发布。

更新日志#

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

sklearn.cluster#

sklearn.compose#

  • Fix 修复了 compose.ColumnTransformer 中的一个问题,当使用 列顺序在 :func:fit 和 :func:transform 之间不同的 DataFrame 时, 可能会导致将错误的列静默传递给 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, Sandro Casagrande, Tashay Green, Thomas Fan, Vishaal Kapoor, Zhuyi Xue, Zijie (ZJ) Poh

版本 0.20.2#

2018年12月20日

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

更改的模型#

以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑(错误修复或增强)或随机抽样程序的变化引起的。

  • sklearn.neighborsmetric=='jaccard' 时(错误修复)

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

更新日志#

sklearn.compose#

sklearn.metrics#

sklearn.neighbors#

  • Fix 修复了 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#

sklearn.compose#

(transformer, columns) 而不是 (columns, transformer) 以保持与 compose.ColumnTransformer 的一致性。

#12339Adrin Jalali 提交。

sklearn.datasets#

sklearn.decomposition#

sklearn.ensemble#

sklearn.feature_extraction#

  • Fix 修复 v0.20.0 中的回归问题,其中

feature_extraction.text.CountVectorizer 和其他文本向量化器 在自定义预处理器或分词器的情况下进行停用词验证时可能会出错。 #12393Roman Yurchak 报告。

sklearn.linear_model#

sklearn.metrics#

sklearn.mixture#

始终产生与 fit 后跟 predict 一致的分配,即使收敛标准过于宽松或未达到。#12451Olivier Grisel 提供。

sklearn.neighbors#

sklearn.preprocessing#

sklearn.utils#

杂项#

  • Fix 当通过设置环境变量 SKLEARN_SITE_JOBLIB 使用站点 joblib 时,除了 0.12+ 版本外,还增加了与 joblib 0.11 版本的兼容性。#12350Joel NothmanRoman Yurchak 贡献。

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

  • API Change 移除了所有提及 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 在回归目标需要转换以进行建模时提供帮助。 PowerTransformerKBinsDiscretizer 加入了 QuantileTransformer 作为非线性变换。

除此之外,我们为多个估计器(包括 KMeansBayesianRidgeKernelDensity ) 以及其他一些模型中改进了停止准则 (包括 MLPRegressor , GradientBoostingRegressorSGDRegressor ).

此版本也是首次伴随由 Joel Nothman 开发的 术语表 发布。术语表是一个参考资源,帮助用户和贡献者熟悉 Scikit-learn 中使用的术语和约定。

如果你的贡献没有出现在亮点中,我们深表歉意。这里有很多内容…

变更的模型#

以下估计器和函数,在相同数据和参数下拟合时,可能会产生与上一版本不同的模型。这通常是由于建模逻辑的变化(错误修复或增强),或随机抽样过程的变化。

详细信息列在下面的变更日志中。 (虽然我们试图通过提供这些信息来更好地告知用户,但我们不能保证这个列表是完整的。)

已知主要错误#

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

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

更新日志#

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

sklearn.cluster#

数据集中不同点的数量实际上小于所寻找的聚类数量。 #10059Christian Braune 提供。

sklearn.compose#

通过逆变换映射回原始空间。#9041Andreas MüllerGuillaume Lemaitre

以下是翻译后的中文内容,保持了原有的rst格式:

sklearn.covariance#

sklearn.datasets#

sklearn.decomposition#

sklearn.discriminant_analysis#

sklearn.dummy#

sklearn.ensemble#

他们自己的归因。#9707Jimmy Wan 提供。

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.gaussian_process#

sklearn.impute#

sklearn.isotonic#

在拟合涉及具有相同X值的点的数据时,合并权重。 #9484Dallas Card 提供。

sklearn.linear_model#

多类设置,即使设置了 'multinomial'#8720William de Vazelhes 提交。

sklearn.manifold#

  • Efficiencymanifold.TSNE 中的 ‘exact’ 和 ‘barnes_hut’ 方法进行了速度改进。#10593#10610Tom Dupre la Tour 提交。

  • Featuremanifold.Isomap.fit 中支持稀疏输入。 #8554Leland McInnes 贡献。

  • Feature manifold.t_sne.trustworthiness 接受除欧几里得以外的度量标准。 #9775William de Vazelhes 贡献。

  • Fix 修复了 manifold.spectral_embedding 中的一个错误,其中谱归一化使用了除法而不是乘法。 #8129Jan MargetaGuillaume LemaitreDevansh D. 贡献。

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

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

sklearn.metrics#

average_method='max' 以匹配0.19版本中的行为。

#11124Arya McCarthy 提交。

sklearn.mixture#

sklearn.model_selection#

sklearn.multioutput#

sklearn.naive_bayes#

sklearn.neighbors#

sklearn.neural_network#

sklearn.pipeline#

sklearn.preprocessing#

sklearn.svm#

  • Fix 修复了 svm.SVC 中的一个错误,当 kernel 参数在 Python2 中为 Unicode 时, predict_proba 方法在密集输入时会引发意外的 TypeError。 #10412 by Jiongyan Zhang

  • API Change 弃用 svm.OneClassSVM 中的 random_state 参数,因为

底层实现并非随机。 #9497Albert Thomas 提交。

sklearn.tree#

  • Enhancement 尽管是私有的(因此不保证 API 稳定性), tree._criterion.ClassificationCriteriontree._criterion.RegressionCriterion 现在可以被 cimport 并扩展。 #10325Camil Staps 提交。

  • Fix 修复了 tree.BaseDecisionTree 中使用 splitter="best" 时, 当 X 中的值接近无穷大时,分割阈值可能变为无穷大的错误。 #10536Jonathan Ohayon 提交。

  • Fix 修复了 tree.MAE 中的一个错误,确保在计算树的 MAE 不纯度时使用样本权重。 之前的行为可能导致选择次优分割,因为不纯度计算认为所有样本具有相同的权重重要性。 #11464John Stott 提交。

sklearn.utils#

从版本0.22开始。#10229Ryan Lee 贡献

多个模块#

杂项#

估计器检查的变更#

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

代码和文档贡献者#

感谢自版本 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 Wompner, Freija Descamps, frsi, Gabriele Calvo, Gael Varoquaux, Gaurav Dhingra, Georgi Peev, Gil Forsyth, Giovanni Giuseppe Costa, gkevinyen5418, goncalo-rodrigues, Gryllos Prokopis, Guillaume Lemaitre, 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, jakirkham, 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, Loic Esteve, 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 Melderis, 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 Mavani, 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