自動掃雷機器學習 機器學習 自動調參器設計實現

2021-10-14 23:52:00 字數 1727 閱讀 7547

現在人工智慧發展很火熱,各種開源框架越發完善,使用者的學習門檻越來越低,用python簡單的幾十行**就能實現乙個人工智慧應用,這些便利性都是建立在各路大神不斷提出新的演算法並開源出封裝包的基礎上的。所以,現在很多機器學習工程師都自嘲為「調包俠」。

但是,要做一名合格的「調包俠」也是需要深刻理解各類機器學習演算法的原理以及所適用的使用場景。而且,在機器學習的訓練過程中,調參似乎也是乙個必不可少的過程,所以「調包俠」中的「調參師」由此而來。調參是乙個繁瑣耗時且枯燥的過程,所以自動調參應運而生。

本文將描述乙個簡易版自動調參器的設計與實現,實際上是對sklearn, mlxtend和xgboost等開源演算法包的封裝整合。

2.1 整體功能框架

整體功能框架如上圖所示,可以分為3個功能模組:

2.2 配置檔案定義

配置檔案使用.ini的格式,主要內容如下,其中的[basic]及[meta_models]為必需的,後面的評估指標及基本演算法模型可以根據[basic]指定的型別對應新增。

[basic] #定義任務型別:二分類、多分類、回歸和聚類    model_type = binary #可選擇的值 binary | multi | reg | cluster [binary_clf_metrics] #定義二分類任務的評估指標    accuracy = true    precision = true    [multi_clf_metrics] #定義多分類任務的評估指標    accuracy = true    precision = true[reg_metrics] #定義回歸任務的評估指標    explained_variance = true    neg_mean_absolute_error = true[cluster_metrics] #定義聚類任務的評估指標    adjusted_mutual_info_score = true    adjusted_rand_score = true[clf_models] #定義分類模型    lr = true    svm = true    decisiontree = false    randomforest = false    xgboost = true[reg_models] #定義回歸模型    randomforest = true[cluster_models] #定義聚類模型    kmeans = true[meta_models] #定義整合學習演算法模型    lgbm = true
2.3 自動調參流程在定義好配置檔案之後,根據其中的評價指標、演算法模型候選集的選擇,在訓練時,遍歷指標列表,針對每個候選演算法模型進行交叉驗證訓練,選出較優的模型,利用網格搜尋進行自動化引數調優,然後以調優得到的模型作為基模型進行stacking整合學習,二級模型使用gbdt。流程如下圖所示:

其中stacking整合學習建模方式如下圖所示,其基本的原理是將訓練好的多個基分類器用於對訓練資料作**,**的結果並聯合並作為二級分類器的輸入訓練資料,同時把對應的實際標籤並聯合並作為二級分類器的輸入訓練標籤,對二級分類器進行訓練調參後得到最終的模型。

其中提供了使用automl對kaggle中的入門任務 titanic 進行自動調參的例項,有興趣的同學可以參考閱讀。

機器學習 機器學習目錄

注 後期有時間的話會對每乙個演算法進行講解。1 普通線性回歸 2 廣義線性模型 3 邏輯回歸 4 線性判定分析1 決策樹基本原理與構建 2 cart演算法 3 回歸決策樹 4 分類決策樹1 貝葉斯定理與樸素貝葉斯 2 高斯貝葉斯分類器 3 多項式貝葉斯分類器 4 伯努利貝葉斯分類器 5 遞增式學習1...

機器學習 機器學習概論

3 模型評估與模型選擇 4.具體應用 統計學習 是關於計算機基於 資料 構建概率統計模型並運用模型對資料進行 分析 統計學習的三要素 模型在監督學習中,模型就是所要學習的條件概率分布或決策函式。這在後面的章節中會重點介紹。策略 評價模型的標準 用損失函式和代價函式來度量 錯誤的程度。1 幾種損失函式...

機器學習 機器學習基礎

資料集劃分的api 返回值 訓練特徵,測試特徵,訓練目標,測試目標 方式1 獲取小規模的資料集 importsklearn.datasets as datasets iris datasets.load iris 提取樣本資料 feature iris data target iris target...