<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          機器學習庫 Scikit-learn 版本更新了,10個新玩法!

          共 3943字,需瀏覽 8分鐘

           ·

          2021-02-09 12:07

          作者:Jeff Hale 轉(zhuǎn)自:機器之心
          Scikit-learn 更新了,新特性主要包括選擇超參數(shù)更快的方法、ICE 圖、直方圖 boosting 改進、OneHotEncoder 支持缺失值等。


          自 2007 年發(fā)布以來,Scikit-learn 已經(jīng)成為 Python 領(lǐng)域非常重要的機器學習庫,支持分類、回歸、降維和聚類四大機器學習算法,還包括了特征提取、數(shù)據(jù)處理和模型評估三大模塊。


          總的來說,Scikit-learn 有以下優(yōu)點:


          1. 完善的文檔,上手容易;

          2. 豐富的 API,在學術(shù)界頗受歡迎;

          3. 封裝了大量的機器學習算法,包括 LIBSVM 和 LIBINEAR 等;

          4. 內(nèi)置了大量數(shù)據(jù)集,節(jié)省了獲取和整理數(shù)據(jù)集的時間。


          和其他眾多的開源項目一樣,Scikit-learn 目前主要由社區(qū)成員自發(fā)進行維護??赡苁怯捎诰S護成本的限制,Scikit-learn 相比其他項目要顯得更為保守。但在剛剛到來的 2021 年,Scikit-learn 0.24.0 版本更新了,讓我們看看新版本有哪些值得關(guān)注的新特性。


          1. 選擇超參數(shù)更快的方法


          HalvingGridSearchCV 和 HalvingRandomSearchCV 將 GridSearchCV 和 RandomizedSearchCV 合并為超參數(shù)調(diào)優(yōu)家族中資源密集度較低的成員。


          新類使用錦標賽方法(tournament approach)選擇最佳超參數(shù)。它們在觀測數(shù)據(jù)的子集上訓練超參數(shù)組合,得分最高的超參數(shù)組合會進入下一輪。在下一輪中,它們會在大量觀測中獲得分數(shù)。比賽一直持續(xù)到最后一輪。


          確定傳遞給 HalvingGridSearchCV 或 halvingAndomSearchCV 的超參數(shù)需要進行一些計算,你也可以使用合理的默認值。


          HalvingGridSearchCV 使用所有超參數(shù)組合。RandomGridSearchCV 使用隨機子集,就如 RandomizedSearchCV 一樣。


          一些建議:


          • 如果沒有太多的超參數(shù)需要調(diào)優(yōu),并且 pipeline 運行時間不長,請使用 GridSearchCV;

          • 對于較大的搜索空間和訓練緩慢的模型,請使用 HalvingGridSearchCV;

          • 對于非常大的搜索空間和訓練緩慢的模型,請使用 HalvingRandomSearchCV。


          在使用之前,這些類需要從 experimental 模塊導入:


          • from sklearn.experimental import enable_halving_search_cv

          • from sklearn.model_selection import HalvingRandomSearchCV?

          • from sklearn.model_selection import HalvingGridSearchCV


          2. ICE 圖


          Scikit-learn 0.23 版本引入了部分依賴圖(PDP),PDP 對顯示平均特征非常重要。而 Scikit-learn 0.24 版本則提供了顯示個體條件期望(ICE)圖的選項。


          與 PDP 一樣,ICE 圖顯示了目標和輸入特征之間的依賴關(guān)系。不同之處在于, ICE 圖顯示了對每個樣本特征的預測依賴性——每個樣本一行。特征的平均 ICE 為 PDP。


          通過將關(guān)鍵字參數(shù) kind='individual'傳遞給 plot_partial_dependency 函數(shù)可以查看 ICE 圖。而 PDP 和 ICE 則可以通過關(guān)鍵字參數(shù) kind='both'進行查看。



          來自 scikit-learn gapminder 數(shù)據(jù)集的 PDP 和 ICE 圖。


          3. 直方圖 boosting 改進


          受 LightGBM 啟發(fā), HistGradientBoostingRegressor 和 HistGradientBoostingClassifier 現(xiàn)在有一個 categorical_features 參數(shù),可用來提供分類特征支持。因為基于直方圖的 booster 支持連續(xù)特征,這是一個不錯的選擇。與 one-hot 編碼相比,它節(jié)省了訓練時間,并且性能優(yōu)于其他編碼選項。


          但是,模型的輸入特征需要是數(shù)值型的。如果分類特征不是數(shù)值型的,可以使用 OrdinalEncoder 進行數(shù)字編碼。然后通過傳遞一個布爾掩碼或一個整數(shù)數(shù)組來告訴 booster 哪些特征是用來分類的。例如:


          model = HistGradientBoostingRegressor(
          categorical_features=[True, False]
          )



          在 scikit-learn 0.24 版本中,直方圖 boosting 算法在速度和內(nèi)存使用方面得到了改進。在 2020 年末,HistGradientBoostingClassifier 的基準擬合速度(benchmark fit speed)下降了近 75%。


          此外,請注意,基于直方圖的估計器支持缺失值,因此,如果你不需要填充缺失值,則無需進行插補。這些估計器還處于試驗階段,因此啟用估計器需要從 sklearn.experimental 導入。


          4. 前向選擇用于特征選擇


          選擇特征子集時,SequentialFeatureSelector 從無特征開始,通過前向選擇,逐漸添加特征,首先添加第一個最有價值的特征,然后添加第二個最有價值的特征,依此類推,直到到達選擇的停止點。


          不同于特征選擇轉(zhuǎn)換器 RFE 和 SelectFromModel,SequentialFeatureSelector 不需要底層模型來公開 coef_或 feature_importances_屬性。但是,SequentialFeatureSelector 可能比 RFE 和 SelectFromModel 這兩個選項慢,因為它使用交叉驗證來評估模型。


          5. 多項式特征展開的快速逼近


          PolynomialFeatures 轉(zhuǎn)換器創(chuàng)建交互項和特征的高階多項式。然而,這會讓模型訓練變得非常緩慢。來自 kernel_approximation 命名空間的 PolynomialCountSketch 核近似函數(shù)提供了一種更快的方法來訓練具有預測優(yōu)勢的線性模型,該模型可以使用 PolynomialFeatures 進行近似。


          或者,你可以將 PolynomialCountSketch 視為具有徑向基函數(shù)核的支持向量機的更快版本,只是在預測方面,性能差一點。


          PolynomialFeatures 返回平方特征和交互項(如果需要,還可以返回高階多項式)。相反,PolynomialCountSketch 返回在 n_components 參數(shù)中指定的特征數(shù)。默認值為 100,建議文檔字符串(docstring)中包含的特征數(shù)量是原始特征數(shù)量的 10 倍。這些特征表示多項式特征展開近似,但不能直接解釋。


          6. 用于半監(jiān)督學習的 SelfTrainingClassifier


          SelfTrainingClassifier 是一個新的用于半監(jiān)督學習的元分類器。它允許所有可以預測屬于目標類的樣本概率的監(jiān)督分類器作為半監(jiān)督分類器,從未標記的觀測結(jié)果中學習。


          請注意,y_train 中未標記值必須為 - 1,不能設(shè)置為 null。


          7. 平均絕對百分比誤差 (MAPE)


          mean_absolute_percentage_error 函數(shù)現(xiàn)已被添加為回歸問題評分指標。和 R-squared 一樣,MAPE 在不同的回歸問題中提供了一些比較值。


          你可以使用 np.mean(np.abs((y_test — preds)/y_test)) 手動計算 MAPE,但總體來說,這個函數(shù)還是非常有用的。


          8. OneHotEncoder 支持缺失值


          scikit-learn 0.24 版本的 OneHotEncoder 可以處理缺失值。如果在 X_train 中有一個 null 值,那么在轉(zhuǎn)換后的列中將有一個列來表示缺失值。


          9. OrdinalEncoder 可以處理測試集中的新值


          你是否有存在于測試集中、但在訓練集中沒有的類別?如果有這種情況的話,將 handle_unknown='use_encoded_value' 關(guān)鍵字參數(shù)和新的 unknown_value 參數(shù)一起使用。你可以將 unknown_value 參數(shù)設(shè)置為未出現(xiàn)在序數(shù)編碼值中的整數(shù)或 np.nan。這使得 OrdinalEncoder 更易于使用。


          10. 遞歸式特征消除(RFE)接受一定比例的特征保留


          向 n_features_to_select 傳遞一個 0 到 1 之間的浮點數(shù),以控制要選擇特性的百分比。這種添加使得以編程方式消除部分特征變得更容易。


          原文鏈接:https://towardsdatascience.com/the-10-best-new-features-in-scikit-learn-0-24-f45e49b6741b


          也可以加一下老胡的微信
          圍觀朋友圈~~~


          推薦閱讀

          (點擊標題可跳轉(zhuǎn)閱讀)

          干掉 LaTeX !用BookDown寫本書
          101道Numpy、Pandas練習題
          【資源干貨】香港中文大學《深度學習導論》2021課件
          機器學習深度研究:特征選擇中幾個重要的統(tǒng)計學概念

          老鐵,三連支持一下,好嗎?↓↓↓

          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产人妖TS重口系列91中文 | 天天日天天添天天爽 | 嗯嗯啊啊啊视频 | 天天日天天舔天天爽天天操 | www.一区二区三区在线 | 欧洲 国产精品久久久久久爽爽爽麻豆色哟哟 |