如何尋找合適的模型參數

2021-01-07 AI火箭營

如果大家一直在從事有關數據科學或機器學習的知識的研究,那麼大家肯定遇到過使用MNIST數據集的文章及項目。該數據集一共包括70,000張圖像,其中每個圖像是0到9十個手寫數字中的一個。我們使用相同的數據集來探索在微調機器學習模型參數時產生的前後差異。

本文我們結合代碼詳細的解釋了如何使用GridSearchCV來找到該數據集的最佳擬合參數,並使用它們來提高模型的預測準確性並改善混淆矩陣。

GridSearchCV

首先我們介紹一下GridSearchCV,GridSearchCV是一種調參手段;實質上是通過窮舉搜索:在所有候選的參數選擇中,通過循環遍歷,嘗試每一種可能性,表現最好的參數就是最終的結果。其原理就像是在數組裡找最大值。

為什麼叫網格搜索?以有兩個參數的模型為例,參數a有3種可能,參數b有4種可能,把所有可能性列出來,可以表示成一個3*4的表格,其中每個cell就是一個網格,循環過程就像是在每個網格裡遍歷、搜索,所以叫grid search。

導入庫和數據集

工程開始之前我們首先導入必要的庫並將訓練和測試數據作成.csv格式的文件。數據集中的每一行均由一個標籤和784個像素值組成,表示為28x28的圖像尺寸。

整個訓練集數據包括60,000張圖像,而測試數據集包括10,000張圖像。一旦我們有數據,我們便可以將它的特徵和標籤分別存儲在train_X,train_y,test_X和test_y中。

探索數據集

分析類的分布

正如我們在之前的文章中所討論的那樣,每個類的數據應該大致相同,以確保合適的模型訓練且基本沒有其他噪聲引起的偏差。

通過上圖我們發現每個數字的數量會有一些差異。然而,這些差異並不是太大,深度學習模型

查看訓練圖像

讓我們看看真實的圖像是什麼樣的。我們從訓練數據中隨機選擇10個圖像並使用plt.imshow()進行顯示。

從數據集中隨機選擇的圖像

我們在這10個隨機圖像中立即看到的是任何一種類型的數字之間的差異。看上面10張圖片中的所有數字為4的圖片。其中第一個是粗體和直線,第二個是粗體和對角線,而第三個是細和對角線。如果模型可以從數據中學習並實際檢測出所有不同的樣式的4,那將是非常了不起。

應用機器學習

我們決定使用隨機森林分類器訓練數據並預測測試數據。首先我們使用了所有參數的默認值。

接下來,使用預測,我們計算了準確度和混淆矩陣。

通過觀察我們發現該模型的預測準確率已經達到94.4%。混淆矩陣表明該模型能夠正確預測大量的圖像。接下來,我們決定調整模型參數以嘗試改進結果。

5. 參數調整

為了確定模型的最佳參數值組合,我們使用了GridSearchCV。這是一個由sklearn庫提供的方法,它允許我們定義一組我們希望為給定模型嘗試的可能值,通過它訓練數據並從參數值的組合中得到最佳估計器。

在這種特殊情況下,我們決定為一些參數選擇一系列估計值。估計值的數量可以是100或200,最大深度可以是10,50或100,最小樣本分為2或4,最大特徵可以基於sqrt或log2。

通過GridSearchCV,我們使用的例子是random_forest_classifier。我們將可能的參數值傳遞給param_grid,並將交叉驗證的值設置為5。設置verbose為5將日誌輸出到控制臺,並且njobs為-1使模型使用機器上的所有核心。然後,我們訓練這個網格,並用它來找到最好的估計。

最後,我們使用這個最佳模型來預測測試數據。

看一下上面的準確性,我們看到通過改變模型的參數,精度從94.42%提高到97.08%。混淆矩陣還表明更多圖像被正確分類。

機器學習不僅僅是讀取數據並應用多種算法,直到我們得到一個好的模型才能使用,但它還涉及對模型進行微調以使它們最適合當前的數據。

確定正確的參數是決定使用哪種算法並根據數據充分利用它的關鍵步驟之一。

結論

在本文中,我們討論了一個項目,我們通過選擇最佳的參數值組合來提高隨機森林分類器的準確性GridSearchCV。我們使用MNIST數據集並將準確度從94.42%提高到97.08%。

相關焦點

  • Bray博士JCIM發文:利用機器學習方法自動尋找粗粒化模型分子力場參數
    在DPD模型中,耗散粒子不對應某個真實的粒子,其分身就是一系列原子或顆粒的集合表示。由於體系中已有正構烷烴及一級醇類,因此作者選取了甲基(CH3)、亞甲基(CH2)、羥甲基(CH2OH)以及2個水分子(2H2O)作為粗粒化的粒子單元。此外,作者選取了15個實驗測量的log P作為訓練用的數據集(表-1)。
  • 交叉驗證和超參數調整:如何優化你的機器學習模型
    在第2部分中,我們看到使用隨機森林和xgboost默認超參數,並在驗證集上評估模型性能會導致多元線性回歸表現最佳,而隨機森林和xgboost回歸的表現稍差一些。在本文的這一部分中,我將討論只使用一個驗證集的缺點。除此之外,我們還會談到如何解決這些缺點以及如何調優模型超參數以提高性能。就讓我們一探究竟吧。
  • 一個小小的網站,就能下載5000萬CAD模型,還能在線配置參數!
    卻發現在海量模型裡面怎麼也找不到!即使找到了也是諸多參數不合適,不得不修改修改在修改!其 實現在聰明的工程師都在線使用模型庫『搜索模型關鍵詞,在線修改參數,下載模型』輕鬆三步走,搞定!不信?現在就給你演示一下!
  • 兩個參數確定果蠅眼睛的數學模型
    許多研究人員試圖建立一個細胞如何組裝形成組織的數學模型,但大多數模型有很多不同的複雜參數,沒有一個模型具有普遍性的參數。 現在,美國西北大學的研究人員創造了一個只有兩個參數的函數方程,用來表示細胞如何組裝形成果蠅的眼睛。他們希望這個參數極少的函數方程,可適用於各種不同的組織,從而促進再生醫學的發展。
  • ANSYS如何創建實體圓錐彈簧模型
    最近這幾天想創建錐彈簧模型,搜索了一下也未解決。經過查閱機械設計和數學手冊等資料,發現其實比較容易,特留在這裡以供參考。(2)順彈簧受力方向-軸向坐標如何確定呢?假設每圈上升高度為h(專業名詞?),則不同角度時的hi按線性比例計算。(3)知道了空間坐標,在ANSYS中很容易創建關鍵點。(4)再創建線或樣條線就形成了錐彈簧中心線,亦可合併線。
  • 如何正確運用計量經濟模型進行實證分析 ——實證分析中的數據、模型與參數
    本文從數據、模型和參數等3個角度出發,分析應用精良經濟學模型在實證分析中需要注意的問題。文轉載 |【計量經濟學】公眾號(作者於曉華,為德國哥廷根大學農業經濟和農村發展系教授)計量經濟學作為實證分析的主要手法,已經被中國廣大經濟研究者接受。但是,正確運用計量經濟模型,得出一個穩定、合理以及可靠的參數估計值,還沒有一個很好的系統梳理。
  • 訓練模型讓你厭煩?莫慌,收下這篇深度學習模型超參數搜索指南
    乾明 整理編譯自 FloydHub Blog量子位 報導 | 公眾號 QbitAI在文章開始之前,我想問你一個問題:你已經厭倦了小心翼翼地照看你的深度學習模型嗎?如果是的話,那你就來對地方了。近日,FloydHub Blog發表了一篇文章,詳細討論了為深度學習模型尋找最佳超參數集的有效策略。
  • 算法模型自動超參數優化方法
    :estimator:所使用的模型,傳入除需要確定最佳的參數之外的其他參數。這意味著在優化過程中,我們使用選定的超參數值訓練模型並預測目標特徵,然後評估預測誤差並將其返回給優化器。優化器將決定要檢查哪些值並再次迭代。你將在一個實際例子中學習如何創建一個目標函數。3、fminfmin函數是對不同的算法集及其超參數進行迭代,然後使目標函數最小化的優化函數。fmin有5個輸入是:使用的搜索算法有隨機搜索、TPE(Tree-Parzen估計器)和自適應TPE。
  • 【乾貨分享】如何正確運用計量經濟模型進行實證分析 ——實證分析中的數據、模型與參數
    本文從數據、模型和參數等3個角度出發,分析應用精良經濟學模型在實證分析中需要注意的問題。(作者於曉華,為德國哥廷根大學農業經濟和農村發展系教授)計量經濟學作為實證分析的主要手法,已經被中國廣大經濟研究者接受。但是,正確運用計量經濟模型,得出一個穩定、合理以及可靠的參數估計值,還沒有一個很好的系統梳理。
  • 單一模型參數化優化設計全過程
    同時,參數化設計具有靈活性和適應性等優點。資料記載中很少有將所有設計過程集成到「單一模型」中以獲得更可靠設計過程的案例。本文結合一些實際案例,簡要介紹了Maffeis工程公司提出的「單一模型」策略。面對大型結構和一些獨特建築的設計挑戰,Maffeis工程公司採取了一種新的方法,叫做「單一模型」(OSM)。
  • 如何有效地對神經網絡參數進行初始化
    本文將解釋如何有效地對神經網絡參數進行初始化。 有效的初始化對構建模型至關重要 要構建機器學習算法,通常要定義一個體系結構(例如邏輯回歸,支持向量機,神經網絡)並對其進行訓練來學習參數。下面是訓練神經網絡的一些常見流程: 初始化參數 選擇優化算法 然後重複以下步驟: 1、向前傳播輸入 2、計算成本函數 3、使用反向傳播計算與參數相關的成本梯度 4、根據優化算法,利用梯度更新每個參數 然後,給定一個新的數據點,使用模型來預測其類型。
  • 基於深度神經網絡構建風電機組性能模型的超參數選擇
    上述研究的關注點主要在於深度神經網絡在具體場景中的實際應用,所構建的模型大多僅針對研究中所使用的特定風電機組。綜上,本文嘗試從深度神經網絡本身出發,探討其自身超參數的取值對最終風電機組性能模型的準確度的影響,同時將驗證以上超參數在參考風電機組訓練中得到的最優配置是否可以直接推廣應用於同一風電場同一型號的其他風電機組上。
  • 調整超參數:決定模型是「金子」還是「垃圾」!
    如下圖是建模流程的循環,特徵工程和訓練模型是兩個動態過程。通過特徵工程,選擇可能的重要特徵。通過參數調整,嘗試訓練可能的模型,從中選擇最佳的模型並調試參數。除了特徵工程以外,超參數的選擇也十分重要,它決定你的模型是「金子」還是「垃圾」,以及模型是否處於最優的表現並得到好的結果。
  • 萬能的三極體等效模型!幫你搞定各種參數分析
    打開APP 萬能的三極體等效模型! 1.4、有源負載放大電路 有源負載放大電路主要構成元件為電晶體、場效應管及若干電阻,這种放大電路以電流源電路作為有源負載,這樣在電源電壓不變的情況下,既可獲得合適的靜態電流
  • 如何選擇神經網絡的超參數
    神經元激活函數的種類,11.參加訓練模型數據的規模 這十一類超參數。  這些都是可以影響神經網絡學習速度和最後分類結果,其中神經網絡的學習速度主要根據訓練集上代價函數下降的快慢有關,而最後的分類的結果主要跟在驗證集上的分類正確率有關。因此可以根據該參數主要影響代價函數還是影響分類正確率進行分類,如圖1所示
  • 如何優化你的圖像分類模型效果?
    一種不錯的方式是先用小的尺寸,如64 x 64進行訓練,再用這個模型的參數,在128 x 128尺寸上進行訓練,如此以往。每個較大的模型都在其體系結構中包含以前較小的模型層和權重。 fastai有一種方法來找出合適的初始學習速率。這個技術被稱作循環學習率,我們用較低的學習率進行試驗,並以指數形式增加,記錄整個過程的損失。然後我們根據學習率繪製損失曲線,並選擇損失值最陡峭處的學習率。
  • 超越Google 快手落地業界首個萬億參數推薦精排模型
    精準的推薦系統模型是很多網際網路產品的核心競爭力 個性化推薦系統旨在根據用戶的行為數據提供「定製化」的產品體驗。國民級短視頻App快手 每天為數億用戶推薦百億的視頻 遇到的挑戰之一是推薦系統模型如何精準地描述與捕捉用戶的興趣。如今業內採用的解決方案通常為結合大量數據集和擬合參數來訓練深度學習模型 如此一來讓模型更加逼近現實情況。
  • NVIDIA解決方案架構師深度解析大規模參數語言模型Megatron-BERT
    我們之後會說到的Transformer模型會用到 Multi-head Attention和Self-Attention。首先說一下Self-Attention,Self-Attention是將原文中每個詞和該句子中所有單詞之間進行注意力的計算,主要是為了尋找原文內部的關係。對應到閱讀理解任務,這個模型就可以判定一篇文章中的兩段話是不是同一個意思。
  • NVIDIA解決方案架構師深度解析大規模參數語言模型Megatron-BERT...
    我們之後會說到的Transformer模型會用到 Multi-head Attention和Self-Attention。首先說一下Self-Attention,Self-Attention是將原文中每個詞和該句子中所有單詞之間進行注意力的計算,主要是為了尋找原文內部的關係。對應到閱讀理解任務,這個模型就可以判定一篇文章中的兩段話是不是同一個意思。
  • 如何使用Matlab編程進行參數擬合
    其他的不多說,言歸正傳,下面從原理和實例對如何使用Matlab編程進行參數擬合進行講解。2 基本概念和原理所謂參數擬合,就是已知試驗或者真實數據,然後尋找一個模型對其規律進行模擬,求取模型中未知參數的一個過程。