日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据竞赛】席卷Kaggle的调参神器,NN和树模型通吃!

發布時間:2025/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据竞赛】席卷Kaggle的调参神器,NN和树模型通吃! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:杰少

Optuna技術!

簡 介

目前非常多的超參尋優算法都不可避免的有下面的一個或者多個問題:

  • 需要人為的定義搜索空間;

  • 沒有剪枝操作,導致搜索耗時巨大;

  • 無法通過小的設置變化使其適用于大的和小的數據集;

  • 本文介紹的一種超參尋優策略則同時解決了上面三個問題,與此同時,該方法在目前kaggle的數據競賽中也都是首選的調參工具包,其優勢究竟有多大,我們看一下其與目前最為流行的一些工具包的對比。

    Optuna

    01


    Define-By-Run的API

    Optuna將超參數優化描述為一個最小化/最大化目標函數的過程,該目標函數以一組超參數作為輸入并返回其(驗證)分數。該函數不依賴于外部定義的靜態變量,動態構造神經網絡結構的搜索空間(層數和隱單元數)。Optuna是以每一個優化過程為研究對象,以每一個評價目標函數為試驗對象。Optuna中的目標函數接收的不是超參數值,而是與單個試驗相關聯的活動試驗對象。

  • 模塊化編程:Optuna的代碼是模塊化的,用戶可以輕松地用其他條件變量和其他參數集的方法擴充代碼,并從更多樣化的模型池中進行選擇。

  • Optuna可以較為容易地進行部署;

  • 02


    高效的采樣和剪枝策略

  • 關系采樣,Optuna可以識別關于共現的實驗結果,通過這種方式,框架可以在經過一定數量的獨立采樣后識別出潛在的共現關系,并使用推斷出的共現關系進行用戶選擇的關系采樣算法。

  • 高效的剪枝算法,Optuna會定期監測中間目標值并終止不符合預定條件的試驗。它還采用異步Successive Halving算法,所以我們可以在此進行并行計算,而相互不會有太多影響。

  • 03


    可擴展的同時易于設置

    Optuna是一個可擴展的系統,它可以處理各種各樣的任務,包括:

  • 從需要大量工作人員的繁重實驗到通過Jupyter Notebook等交互界面進行的試驗級、輕量級計算;

  • 當用戶需要進行分布式計算時,Optuna的用戶可以部署關系數據庫作為后端。Optuna的用戶也可以使用SQLite數據庫。

  • Optuna的新設計大大減少了部署存儲所需的工作量,新的設計可以很容易地集成到Kubernetes這樣的容器編排系統中。

  • 代 碼

    1. 數據集生成

    #?!pip?install?optuna import?optuna from?sklearn.neighbors?import?KNeighborsClassifier from?sklearn.model_selection?import?KFold?,?cross_val_score from?sklearn.datasets?import?load_iris from?sklearn.model_selection?import?train_test_split import?lightgbm?as?lgb import?numpy?as?np from?optuna.samplers?import?TPESampler from?sklearn.metrics?import?accuracy_scoreiris?=?load_iris() X?=?iris.data y?=?iris.targetX_train,X_test,y_train,y_test?=?train_test_split(X,y,test_size?=?0.3,random_state?=?14)

    2. Optuna+LightGBM

    sampler?=?TPESampler(seed=10)?#?for?reproducibility def?objective(trial):dtrain?=?lgb.Dataset(X_train,?label=y_train)param?=?{'objective':?'multiclass','metric':?'multi_logloss','verbosity':?-1,'boosting_type':?'gbdt','num_class':3,'lambda_l1':?trial.suggest_loguniform('lambda_l1',?1e-8,?10.0),'lambda_l2':?trial.suggest_loguniform('lambda_l2',?1e-8,?10.0),'num_leaves':?trial.suggest_int('num_leaves',?2,?512),'learning_rate':?trial.suggest_loguniform('learning_rate',?1e-8,?1.0),'n_estimators':?trial.suggest_int('n_estimators',?700,?3000),'feature_fraction':?trial.suggest_uniform('feature_fraction',?0.4,?1.0),'bagging_fraction':?trial.suggest_uniform('bagging_fraction',?0.4,?1.0),'bagging_freq':?trial.suggest_int('bagging_freq',?1,?7),'min_child_samples':?trial.suggest_int('min_child_samples',?5,?100),}gbm?=?lgb.train(param,?dtrain)return?accuracy_score(y_test,?np.argmax(gbm.predict(X_test),axis=1))study?=?optuna.create_study(direction='maximize',?sampler=sampler) study.optimize(objective,?n_trials=100)
    • 輸出模型的最好結參數

    #?輸出模型的最好結參數 study.best_params {'lambda_l1': 0.0234448167468032,'lambda_l2': 7.075730911992614e-07,'num_leaves': 173,'learning_rate': 4.887601625186522e-05,'n_estimators': 1824,'feature_fraction': 0.9712805361251421,'bagging_fraction': 0.8498709168727996,'bagging_freq': 2,'min_child_samples': 17}

    適用問題

    Optuna方法目前適用于所有模型的參數的調節,傳統的模型亦或者是神經網絡模型。目前最新的kaggle競賽中,該方法可以非??焖俚膶ふ业阶顑灥膮?#xff0c;是目前必須一試的算法。

    參考文獻

  • https://github.com/optuna/optuna

  • Optuna: A Next-generation Hyperparameter Optimization Framework

  • Smart Hyperparameter Tuning With Optuna

  • 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【数据竞赛】席卷Kaggle的调参神器,NN和树模型通吃!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。