日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c++test能不能导入keil工程_深度解析AutoML框架——H2O:小白也能使用的自动机器学习平台...

發(fā)布時間:2025/3/19 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++test能不能导入keil工程_深度解析AutoML框架——H2O:小白也能使用的自动机器学习平台... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

H2O是一個完全開源的、分布式的、具有線性可擴展性的內存的機器學習平臺。

它具有以下特點:

  • 支持R和Python
  • 支持最廣泛使用的統(tǒng)計和機器學習的算法,包括DRF,GBM,XGBoost,DL等
  • 具有模型解釋能力
  • 支持回歸和分類任務,AutoMl的功能只支持有監(jiān)督任務
  • 自動化
    • 建立Web的交互界面,允許用戶直接交互進行機器學習操作
    • 自動進行特征工程,模型驗證、調整、選擇和部署
    • 自動可視化

安裝

python

python環(huán)境依賴包:grip、colorama、future、tabulate、requests和wheel

pip install h2o

or

下載解壓安裝http://h2o-release.s3.amazonaws.com/h2o/rel-yau/2/h2o-3.26.0.2.zip

R

install.packages("h2O")

下載軟件

下載地址,可免費試用21天。

使用示例

在使用前要確保能建立H2O集群

在環(huán)境變量設置了java路徑 的情況下在cmd執(zhí)行以下命令:

java -jar path_to/h2o.jar

建立本地的h2o集群,通過http://localhost:54321查看,看到H2O Flow的Web界面即成功。H2O僅支持8,10,11,12版本的java。

H2O的數(shù)據(jù)特點

  • 能從HDFS、S3、NoSQL、SQL中讀入數(shù)據(jù)并寫入
  • 能從本地和分布式文件系統(tǒng)(nfs)接收csv格式的數(shù)據(jù)
  • 能自動解析文件的格式
  • H2O能將輸入的數(shù)據(jù)通過import_file函數(shù)將其轉換成H2O Frame,類似Pandas的DataFrame,是一種二維表。

H2O FLOW

H2O Flow是允許用戶進行機器學習的交互式界面,使用者能通過簡單的操作完成數(shù)據(jù)預處理、特征工程、建模和預測等功能。H2O Flow所有的功能均可使用代碼實現(xiàn),H2O Flow省去了用戶編輯代碼的時間,用python實現(xiàn)下列功能的教程見Tutorials

使用示例

通過執(zhí)行h2o.jar建立了h2o集群后,在瀏覽器輸入地址,看到H2o Flow的Web界面,如下圖所示:

簡單示例重要步驟

導入數(shù)據(jù)

將數(shù)據(jù)的路徑輸入即可,H2O會自行解析數(shù)據(jù),搜索到數(shù)據(jù)文件后點擊import導入數(shù)據(jù)

建模

H2O提供多種經典的 機器學習算法,如圖所示:

建模過程有些參數(shù)可選,舉幾個例子:

  • response_column(必選):確定預測目標
  • ignore_columns:要去除的特征
  • n_folds:n折交叉驗證
  • Lambda_search:給模型增加正則化降低擬合度

具體參數(shù)設置和解釋見H2O Flow右側>HELP->Building Models

建模結束后平臺會對數(shù)據(jù)模型等進行分析,比如特征重要性,如圖所示

保存和導入模型

導航欄Model欄目有import和export model的選擇。

AutoML in H2O

H2O中對特征工程和模型超參數(shù)采用了grid search(窮舉)以及Stacking/Super Learning的方法搜索最優(yōu)的模型。

grid search

H2O了兩種類型的grid search

  • Cartesian:搜索所有模型參數(shù)組合的模型
  • RandomDiscrete:隨機網(wǎng)格搜索將在某一特定時間段(或最大模型數(shù)內)隨機地采樣模型參數(shù)集

簡單示例

Cartesian

導入grid search包和機器學習算法,此處以GBM舉例

# Import H2O Grid Search: from h2o.grid.grid_search import H2OGridSearch ? # Import H2O GBM: from h2o.estimators.gbm import H2OGradientBoostingEstimator

確定搜索空間(網(wǎng)格)

# GBM hyperparameters gbm_params1 = {'learn_rate': [0.01, 0.1], 'max_depth': [3, 5, 9],'sample_rate': [0.8, 1.0],'col_sample_rate': [0.2, 0.5, 1.0]}

訓練和驗證網(wǎng)格包括的所有的模型

gbm_grid1 = H2OGridSearch(model=H2OGradientBoostingEstimator,grid_id='gbm_grid1',hyper_params=gbm_params1) gbm_grid1.train(x=x, y=y, training_frame=train, validation_frame=valid, ntrees=100,seed=1)

比較各個模型的性能,結果如圖所示

gbm_gridperf1 = gbm_grid1.get_grid(sort_by='auc', decreasing=True)

RandomDiscrete

需要設定類型和最大model數(shù)

# Search criteria search_criteria2 = {'strategy': 'RandomDiscrete', 'max_models': 36}

實例化grid search的時候傳入搜索策略

gbm_grid2 = H2OGridSearch(model=H2OGradientBoostingEstimator,grid_id='gbm_grid2',hyper_params=gbm_params2,search_criteria=search_criteria2)

Stacked Ensembles

Stacking算法是訓練metalearner(比如邏輯回歸)找到一些base算法的最佳組合,將他們集合在一起

算法步驟:

1.設置ensemble

  • 明確一組L個基本算法作為算法基
  • 明確元學習算法

2.訓練ensemble

  • 在訓練集上訓練基本算法中的所有算法
  • 在基本算法上進行k折交叉驗證并收集對應的預測值組成NXL矩陣(N代表訓練集的行數(shù)),和響應向量一起組成一級數(shù)據(jù)(其實就是將各個base模型產生的預測值作為特征)
  • 在一級數(shù)據(jù)上訓練元學習算法,ensemble model里面包括了基本算法和元學習算法。

3.預測

  • 先獲得各個基本算法的預測值
  • 將這些預測值輸入元學習器獲得ensemble的預測值

使用示例

載入包

import h2o from h2o.estimators.random_forest import H2ORandomForestEstimator from h2o.estimators.gbm import H2OGradientBoostingEstimator from h2o.estimators.stackedensemble import H2OStackedEnsembleEstimator from h2o.grid.grid_search import H2OGridSearch from __future__ import print_function h2o.init() ```

數(shù)據(jù)預處理

train = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv") test = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_test_5k.csv") ? # Identify predictors and response x = train.columns y = "response" x.remove(y) ? # For binary classification, response should be a factor train[y] = train[y].asfactor() test[y] = test[y].asfactor()

Stacking的方式有三種

  • 單個訓練一組模型并將它們組成隊列
  • 訓練一個網(wǎng)格(grid)的模型
  • 訓練多個網(wǎng)格(grid)的模型
舉單個網(wǎng)格訓練的例子 # 明確 GBM 的超參數(shù)網(wǎng)格 hyper_params = {"learn_rate": [0.01, 0.03],"max_depth": [3, 4, 5, 6, 9],"sample_rate": [0.7, 0.8, 0.9, 1.0],"col_sample_rate": [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]} search_criteria = {"strategy": "RandomDiscrete", "max_models": 3, "seed": 1} # 訓練網(wǎng)格 grid = H2OGridSearch(model=H2OGradientBoostingEstimator(ntrees=10,seed=1,nfolds=nfolds,fold_assignment="Modulo",keep_cross_validation_predictions=True),hyper_params=hyper_params,search_criteria=search_criteria,grid_id="gbm_grid_binomial") grid.train(x=x, y=y, training_frame=train) # 用網(wǎng)格訓練 ensemble 模型 ensemble = H2OStackedEnsembleEstimator(model_id="my_ensemble_gbm_grid_binomial",base_models=grid.model_ids) ensemble.train(x=x, y=y, training_frame=train) # 評估 emsemble 模型的性能 perf_stack_test = ensemble.model_performance(test)

AutoML

H2O的AutoML訓練和交叉驗證下列算法:

  • 一個隨機森林(DRF)
  • 一個超隨機森林(XRT)
  • 一個廣義線性模型的隨機網(wǎng)格(GLM)
  • 一個極端梯度提升的隨機網(wǎng)格(XGBoost)
  • 一個梯度提升的隨機網(wǎng)格(GBM)
  • 一個深度學習的隨機網(wǎng)格(DeepLearning)
  • 兩個ensemble模型
    • 集成了所有的模型
    • 集成了各種模型中性能最好的一個

使用示例

aml = H2OAutoML(max_models = 9)aml.train(x = x, y = y, training_frame = train) #展示結果aml.leaderboard #保存最好的模型 h2o.save_model(aml.leader, path = "./product_backorders_model_bin")

結果如圖所示,產生了9個models(不包括ensemble模型)后停止,將性能從高到低排列。

Open for comments and suggestions!

2738073913@qq.com

鵬城實驗室人工智能中心

總結

以上是生活随笔為你收集整理的c++test能不能导入keil工程_深度解析AutoML框架——H2O:小白也能使用的自动机器学习平台...的全部內容,希望文章能夠幫你解決所遇到的問題。

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