版本 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 日

變更日誌#

增強功能#

錯誤修正#

API 變更摘要#

樹狀結構與森林

  • 如果未將 sample_weight 引數傳遞給 fit 函數,則基於樹的分類器和回歸器的 min_weight_fraction_leaf 參數現在預設為假設均勻樣本權重。以前,該參數會被靜默忽略。#7301Nelson Liu 貢獻。

  • 現在樹狀結構分割準則類別的複製/序列化在記憶體上是安全的。由 Ibraim Ganiev 提出的 #7680 問題。

線性、核函數化與相關模型

版本 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_ 屬性,是一個 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.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 中的單數形式變更為複數形式。

  • 擬合參數標籤已重新命名為群組

    在重新命名的分割器 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' 取得。

更新日誌#

新功能#

分類器和迴歸器

其他估計器

模型選擇和評估

增強功能#

樹和集成

線性、核函數化與相關模型

分解、流形學習和分群

預處理和特徵選擇

模型評估和元估計器

指標

其他

錯誤修正#

樹和集成

線性、核函數化與相關模型

分解、流形學習和分群

預處理和特徵選擇

  • copy=True 時,preprocessing.data._transform_selected 現在總是將 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 貢獻。

  • 修正了一個錯誤,其中某些格式的 scipy.sparse 矩陣以及以它們作為參數的估計器無法傳遞給 base.clone。由 Loic Esteve 貢獻。

  • datasets.load_svmlight_file 現在能夠讀取長整數 QID 值。#7101Ibraim Ganiev 貢獻。

API 變更摘要#

線性、核函數化與相關模型

分解、流形學習和分群

  • 舊的 mixture.DPGMM 已被棄用,改用新的 mixture.BayesianGaussianMixture(參數為 weight_concentration_prior_type='dirichlet_process')。新的類別解決了舊類別的計算問題,並以比以前更快的速度計算具有狄利克雷過程先驗的高斯混合模型。#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