版本 1.5#

如需發行版本主要重點的簡短描述,請參閱 scikit-learn 1.5 的發行重點

變更日誌圖例

  • 主要功能 以前無法做到的重大功能。

  • 功能 以前無法做到的功能。

  • 效率 現有功能現在可能不需要那麼多的計算或記憶體。

  • 增強 各種細微的改進。

  • 修正 之前沒有按照文件或合理預期運作的功能,現在應該可以正常運作。

  • API 變更 您將需要變更您的程式碼才能在未來達到相同的效果;或者某個功能將在未來被移除。

版本 1.5.2#

2024 年 9 月

影響許多模組的變更#

  • 修正 修正 sklearn._losssklearn.manifoldsklearn.metricssklearn.utils 中一些未支援 OpenMP 建置的 Cython 模組的效能回歸。 #29694Loïc Estèvce 提供。

變更日誌#

sklearn.calibration#

  • 修正cv 中使用 LeaveOneOut 時引發錯誤,符合使用 KFold(n_splits=n_samples) 時的情況。 #29545Lucy Liu 提供

sklearn.compose#

sklearn.decomposition#

sklearn.metrics#

sklearn.svm#

版本 1.5.1#

2024 年 7 月

影響許多模組的變更#

  • 修正 修正了所有估計器的輸入資料驗證中的回歸問題,當傳遞由唯讀緩衝區支援的 DataFrame 時,會引發意外錯誤。 #29018Jérémie du Boisberranger 提供。

  • 修正 修正了在某些設定中導致匯入時死鎖的回歸問題。#29235Jérémie du Boisberranger 提供。

變更日誌#

sklearn.compose#

sklearn.metrics#

sklearn.model_selection#

sklearn.tree#

sklearn.utils#

  • API 變更 utils.validation.check_array 新增了一個參數 force_writeable,用於控制輸出陣列的可寫性。如果設定為 True,則保證輸出陣列是可寫的,並且如果輸入陣列是唯讀的,則會建立副本。如果設定為 False,則不保證輸出陣列的可寫性。#29018,由 Jérémie du Boisberranger 貢獻。

版本 1.5.0#

2024 年 5 月

安全性#

  • 修正 feature_extraction.text.CountVectorizerfeature_extraction.text.TfidfVectorizer 不再將訓練集中丟棄的詞彙儲存在其 stop_words_ 屬性中。此屬性會持有過於頻繁(高於 max_df)以及過於罕見(低於 min_df)的詞彙。這修正了一個潛在的安全性問題(資料洩漏),如果被丟棄的罕見詞彙在模型開發人員不知情的情況下,持有來自訓練集的敏感資訊。

    注意:建議這些類別的使用者,使用新的 scikit-learn 版本重新訓練其管線,或手動清除先前訓練的轉換器實例中的 stop_words_ 屬性。此屬性僅設計用於模型檢查目的,對轉換器的行為沒有影響。#28823,由 Olivier Grisel 貢獻。

變更的模型#

  • 效率 preprocessing.QuantileTransformer 中的子取樣對於密集陣列現在更加高效,但是擬合的分位數和 transform 的結果可能與之前略有不同(保持相同的統計特性)。#27344,由 Xuefeng Xu 貢獻。

  • 增強 decomposition.PCAdecomposition.SparsePCAdecomposition.TruncatedSVD 現在根據元件值設定 components_ 屬性的符號,而不是使用轉換後的資料作為參考。此變更是必要的,以便為所有 PCA 求解器(包括此版本中引入的新 svd_solver="covariance_eigh" 選項)提供一致的元件符號。

影響許多模組的變更#

支援 Array API#

已更新其他估算器和函數,以包含對所有符合 Array API 的輸入的支援。

有關更多詳細資訊,請參閱 Array API 支援 (實驗性)

函數

類別

支援使用 Meson 構建#

從 scikit-learn 1.5 開始,Meson 是構建 scikit-learn 的主要支援方式,有關更多詳細資訊,請參閱 從原始碼構建

除非發現主要的阻礙,否則將在 scikit-learn 1.6 中捨棄 setuptools 支援。1.5.x 版本將支援使用 setuptools 構建 scikit-learn。

#28040 中新增了 Meson 對構建 scikit-learn 的支援,由 Loïc Estève 貢獻。

中繼資料路由#

以下模型現在在其一個或多個方法中支援中繼資料路由。有關更多詳細資訊,請參閱 中繼資料路由使用者指南

變更日誌#

sklearn.calibration#

sklearn.cluster#

sklearn.compose#

sklearn.cross_decomposition#

sklearn.datasets#

sklearn.decomposition#

  • 效率提升 svd_solver="full"decomposition.PCA 現在會分配一個連續的 components_ 屬性,而不是奇異向量的非連續片段。當 n_components << n_features 時,這可以節省一些記憶體,更重要的是,透過利用連續陣列上 BLAS GEMM 的快取局部性,可以將後續對 transform 方法的呼叫速度提高一個數量級以上。#27491Olivier Grisel 貢獻。

  • 增強svd_solver="auto" 時,PCA 現在會自動為稀疏輸入選擇 ARPACK 求解器,而不是引發錯誤。#28498Thanh Lam Dang 貢獻。

  • 增強 decomposition.PCA 現在支援一個名為 svd_solver="covariance_eigh" 的新求解器選項,該選項對於具有大量資料點和少量特徵(例如,n_samples >> 1000 > n_features)的資料集,可提供一個數量級的速度提升和減少記憶體使用量。svd_solver="auto" 選項已更新為針對此類資料集自動使用新的求解器。此求解器也接受稀疏輸入資料。#27491Olivier Grisel 貢獻。

  • 修復 使用 svd_solver="arpack"whiten=Truen_components 的值大於訓練集的秩的 decomposition.PCA 擬合,在轉換保留資料時,不再傳回無限值。#27491Olivier Grisel 貢獻。

sklearn.dummy#

sklearn.ensemble#

sklearn.feature_extraction#

sklearn.feature_selection#

sklearn.impute#

sklearn.inspection#

sklearn.linear_model#

sklearn.manifold#

sklearn.metrics#

sklearn.mixture#

sklearn.model_selection#

sklearn.multioutput#

sklearn.neighbors#

sklearn.pipeline#

  • 功能 pipeline.FeatureUnion 現在可以使用 verbose_feature_names_out 屬性。如果 Trueget_feature_names_out 會在所有特徵名稱前加上產生該特徵的轉換器的名稱。如果 Falseget_feature_names_out 則不會在任何特徵名稱前加上前綴,且在特徵名稱不唯一時會產生錯誤。 #25991Jiawei Zhang 貢獻。

sklearn.preprocessing#

sklearn.tree#

  • 增強 現在,透過 tree.plot_tree 在 matplotlib 中繪製樹狀圖時,會顯示「True/False」標籤,以指示樣本在給定分割條件下的遍歷方向。 #28552Adam Li 貢獻。

sklearn.utils#

程式碼和文件貢獻者

感謝自 1.4 版以來為維護和改進此專案做出貢獻的每個人,包括

101AlexMartin, Abdulaziz Aloqeely, Adam J. Stewart, Adam Li, Adarsh Wase, Adeyemi Biola, Aditi Juneja, Adrin Jalali, Advik Sinha, Aisha, Akash Srivastava, Akihiro Kuno, Alan Guedes, Alberto Torres, Alexis IMBERT, alexqiao, Ana Paula Gomes, Anderson Nelson, Andrei Dzis, Arif Qodari, Arnaud Capitaine, Arturo Amor, Aswathavicky, Audrey Flanders, awwwyan, baggiponte, Bharat Raghunathan, bme-git, brdav, Brendan Lu, Brigitta Sipőcz, Bruno, Cailean Carter, Cemlyn, Christian Lorentzen, Christian Veenhuis, Cindy Liang, Claudio Salvatore Arcidiacono, Connor Boyle, Conrad Stevens, crispinlogan, David Matthew Cherney, Davide Chicco, davidleon123, dependabot[bot], DerWeh, dinga92, Dipan Banik, Drew Craeton, Duarte São José, DUONG, Eddie Bergman, Edoardo Abati, Egehan Gunduz, Emad Izadifar, EmilyXinyi, Erich Schubert, Evelyn, Filip Karlo Došilović, Franck Charras, Gael Varoquaux, Gönül Aycı, Guillaume Lemaitre, Gyeongjae Choi, Harmanan Kohli, Hong Xiang Yue, Ian Faust, Ilya Komarov, itsaphel, Ivan Wiryadi, Jack Bowyer, Javier Marin Tur, Jérémie du Boisberranger, Jérôme Dockès, Jiawei Zhang, João Morais, Joe Cainey, Joel Nothman, Johanna Bayer, John Cant, John Enblom, John Hopfensperger, jpcars, jpienaar-tuks, Julian Chan, Julian Libiseller-Egger, Julien Jerphanion, KanchiMoe, Kaushik Amar Das, keyber, Koustav Ghosh, kraktus, Krsto Proroković, Lars, ldwy4, LeoGrin, lihaitao, Linus Sommer, Loic Esteve, Lucy Liu, Lukas Geiger, m-maggi, manasimj, Manuel Labbé, Manuel Morales, Marco Edward Gorelli, Marco Wolsza, Maren Westermann, Marija Vlajic, Mark Elliot, Martin Helm, Mateusz Sokół, mathurinm, Mavs, Michael Dawson, Michael Higgins, Michael Mayer, miguelcsilva, Miki Watanabe, Mohammed Hamdy, myenugula, Nathan Goldbaum, Naziya Mahimkar, nbrown-ScottLogic, Neto, Nithish Bolleddula, notPlancha, Olivier Grisel, Omar Salman, ParsifalXu, Patrick Wang, Pierre de Fréminville, Piotr, Priyank Shroff, Priyansh Gupta, Priyash Shah, Puneeth K, Rahil Parikh, raisadz, Raj Pulapakura, Ralf Gommers, Ralph Urlus, Randolf Scholz, renaissance0ne, Reshama Shaikh, Richard Barnes, Robert Pollak, Roberto Rosati, Rodrigo Romero, rwelsch427, Saad Mahmood, Salim Dohri, Sandip Dutta, SarahRemus, scikit-learn-bot, Shaharyar Choudhry, Shubham, sperret6, Stefanie Senger, Steffen Schneider, Suha Siddiqui, Thanh Lam DANG, thebabush, Thomas, Thomas J. Fan, Thomas Lazarus, Tialo, Tim Head, Tuhin Sharma, Tushar Parimi, VarunChaduvula, Vineet Joshi, virchan, Waël Boukhobza, Weyb, Will Dean, Xavier Beltran, Xiao Yuan, Xuefeng Xu, Yao Xiao, yareyaredesuyo, Ziad Amerr, Štěpán Sršeň