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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

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

它具有以下特點:

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

安裝

python

python環境依賴包: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集群

在環境變量設置了java路徑 的情況下在cmd執行以下命令:

java -jar path_to/h2o.jar

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

H2O的數據特點

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

H2O FLOW

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

使用示例

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

簡單示例重要步驟

導入數據

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

建模

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

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

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

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

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

保存和導入模型

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

AutoML in H2O

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

grid search

H2O了兩種類型的grid search

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

簡單示例

Cartesian

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

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

確定搜索空間(網格)

# 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]}

訓練和驗證網格包括的所有的模型

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數

# 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代表訓練集的行數),和響應向量一起組成一級數據(其實就是將各個base模型產生的預測值作為特征)
  • 在一級數據上訓練元學習算法,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() ```

數據預處理

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的方式有三種

  • 單個訓練一組模型并將它們組成隊列
  • 訓練一個網格(grid)的模型
  • 訓練多個網格(grid)的模型
舉單個網格訓練的例子 # 明確 GBM 的超參數網格 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} # 訓練網格 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) # 用網格訓練 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)
  • 一個廣義線性模型的隨機網格(GLM)
  • 一個極端梯度提升的隨機網格(XGBoost)
  • 一個梯度提升的隨機網格(GBM)
  • 一個深度學習的隨機網格(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:小白也能使用的自动机器学习平台...的全部內容,希望文章能夠幫你解決所遇到的問題。

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