【Python機器學習】4.3. 模型優化

喜歡的話別忘了點贊、收藏加關注哦(關注即可查看全文),對接下來的教程有興趣的可以關注專欄。謝謝喵!(=・ω・=)
請添加圖片描述

4.3.1. 實戰中會遇到的問題

首先看一個例子:

根據任檢測數據x1x_1x1?x2x_2x2?及其標簽,判斷x1=6x_1 = 6x1?=6x2=4x_2 = 4x2?=4時所屬的類別。

圖像如下:
請添加圖片描述

我們接下來就需要選擇算法了,可選擇的有:

  • 邏輯回歸(詳見 1.6. 邏輯回歸理論)
  • KNN(詳見 2.2. 聚類分析算法理論)
  • 決策樹(詳見 3.1. 決策樹理論)
  • 神經網絡(之后會講)

選擇完算法之后我們還會遇到一個問題:具體算法的核心結構/參數如何選擇?

  • 如果選擇邏輯回歸:邊界函數用什么?用線性函數還是多項式?
  • 如果選擇KNN:核心參數n_neighbors(指定的K值)取多少合適?

最后,如果模型表現不佳,具體表現為

  • 訓練數據準確率太低(欠擬合)
  • 測試數據準確率下降明顯(過擬合)
  • 召回度/特異度/精確率低

這種情況下我該怎么辦呢?

這些情況匯總下來就是一個問題:如何提高模型表現

4.3.2. 數據決定上限

數據的質量決定了模型表現的上限。就算你用再強的模型/參數,只要你的數據質量差效果就好不起來。

建議在建模之前先檢查數據的以下方面:

  • 數據屬性的意義,是否為無關數據
  • 不同屬性數據的數量級差異性如何
  • 是否有異常數據
  • 采集數據的方法是否合理,采集的數據是否有代表性
  • 對于標簽結果,要確保標簽判定規則的一致性(統一標準)
對數據進行的操作好處
刪除不必要的屬性防止過擬合,節約運算時間
數據預處理:歸一化、標準化平衡數據影響,加快訓練收斂
確定是否保留或過濾掉異常數據提高實用性
嘗試不同的模型,對比模型表現幫助確定更合適的模型

以上文的例子來說,在我們獲得數據之后,我們要考慮以下問題:

  • 是否有需要剔除的異常數據?
  • 數據量級差異如何?
  • 是否需要降低數據維度?

對于檢查異常數據這一部分,我們學過異常檢測(詳見 3.3. 異常檢測(Anomaly Detection)理論),通過概率密度函數來找潛在的數據異常點。

對于數據量級差異的部分,我們要先看數據的分布,x1x_1x1?的數據分布在0.77~9.49,x2x_2x2?的數據分布在0.69~9.5。這兩個變量的數據分布基本相同,可以不做歸一化處理。

對于確認是否需要降低數據維度的部分,我們需要先對數據進行主成分分析(詳見 3.4. 主成分分析(PCA)理論)。由于例子中的數據只有2個維度,所以就不需要進行主成分分析來降維了,具體的操作見 3.7. 主成分分析(PCA)實戰。

4.3.3. 嘗試不同的模型

不同的模型通常會有不同的效果,你可以計算準確率并可視化出來,這里的數據使用的是 1.9. 邏輯回歸實戰 中的,我把.csv數據文件放在GitCode上了,點擊鏈接即可下載。
請添加圖片描述

你也可以通過混淆矩陣來計算其它參數,根據其他指數來決定要使用哪個模型。衡量指標的選擇取決于應用場景:

  • 垃圾郵件檢測(正樣本為“垃圾郵件“):希望普通郵件(負樣本)不要被判斷為垃圾郵件(正樣本),即:判斷為垃圾郵件的樣本都是判斷正確的,需要關注精確率;還希望所有的垃圾郵件盡可能被判斷出來,需要關注召回率
  • 異常交易檢測(正樣本為“異常交易”):希望判斷為正常的交易(負樣本)中盡可能不存在異常交易,還需要關注特異度

4.3.4. 其他調整

在確定了該使用什么模型之后,我們還需要對其他方面進行微調:

  • 遍歷核心參數組合,評估對應模型表現(比如:邏輯回歸邊界函數考慮多項式、KNN嘗試不同的n_neighbors值)
  • 擴大數據樣本
  • 增加或減少數據屬性
  • 對數據進行降維處理(主成分分析PCA)
  • 對模型進行正則化處理,調整正則項λ\lambdaλ的數值(詳見 4.1. 過擬合(overfitting)與欠擬合(underfitting) )

來看看KNN的n_neighbors值對結果的影響:
請添加圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90409.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Impact rating 影響等級定義(學習筆記)

影響等級可以通過四個方面定義,包含安全性safety,經濟型financial,操作性operational,和私密性privacy 即[S,F,O,P]這四個方面。每個方面又可以定義四個不同的等級,包含severe(嚴重的)&#xff…

同花順前端潛在面試題目與答案

潛在面試題目與答案 以下是根據您提供的“崗位職責”和“崗位要求”整理出的潛在面試題目和參考答案。請注意,這些答案僅供參考,您需要根據自己的實際經驗和理解進行更詳細和個性化的闡述。 一、基礎技術知識(Vue/前端工程化/HTML/CSS/JS&…

J2EE模式---組合實體模式

組合實體模式基礎概念組合實體模式(Composite Entity Pattern)是一種企業級設計模式,屬于 J2EE 模式的一種,其核心思想是將多個實體對象組合成一個更高層次的對象(組合實體),以簡化客戶端與這些…

基于CloudBase+React+CodeBudddy的云上智能睡眠應用開發實踐

本文詳細記錄了如何利用CloudBase云開發平臺、React前端框架和CodeBudddy智能編程技術棧,構建一個云端智能睡眠監測與分析系統。通過完整的項目實踐,探索AIoT時代健康管理應用的開發范式。一、智能睡眠監測:云時代的健康守護者在快節奏的現代…

QML 模型

QML模型基礎架構QML采用經典的Model-View-Delegate (MVD)?架構來分離數據與界面,這與MVC模式類似但更加適合聲明式UI開發。在這個架構中:?Model?:負責管理數據,可以是簡單的整數,也可以是復雜的C自定義模型?View?…

基于Trae IDE與MCP實現網頁自動化測試的最佳實踐

引言 在現代Web開發流程中,自動化測試已成為保障應用質量、提升開發效率的關鍵環節。Playwright作為一款新興的測試框架,因其出色的跨瀏覽器支持能力和豐富的API特性,正逐漸成為自動化測試領域的主流選擇。本文將詳細介紹如何在葡萄城Trae ID…

Android 動畫優化

動畫是提升 Android 應用用戶體驗的核心手段 —— 流暢的過渡動畫能讓頁面切換更自然,交互反饋動畫能讓操作更有質感。但動畫也是性能 “重災區”:掉幀、卡頓、內存暴漲等問題,往往源于對動畫原理和優化技巧的忽視。本文將從動畫性能的核心瓶…

Linux——進程間通信,匿名管道,進程池

文章目錄一、進程間通信(IPC)的理解1.為什么進程間要通信(IPC)2.如何進行通信二、匿名管道1.管道的理解2.匿名管道的使用3.管道的五種特性4.管道的四種通信情況5.管道緩沖區容量三、進程池1.進程池的理解2.進程池的制作四、源碼Pr…

深度分析Java內存回收機制

內存回收機制是Java區別于C/C等語言的核心特性之一,也是Java開發者理解程序性能、解決內存相關問題(如內存泄漏、OOM)的關鍵。 核心目標: 自動回收程序中不再使用的對象所占用的內存,防止內存耗盡,同時盡量…

uniapp “requestPayment:fail [payment支付寶:62009]未知錯誤“

解決方案:兄弟,有一種可能是你用測試機沒有安裝支付寶

分布在內側內嗅皮層(MEC)的帶狀細胞對NLP中的深層語義分析的積極影響和啟示

帶狀細胞(Band Cells)作為內側內嗅皮層(Medial Entorhinal Cortex, MEC)層Ⅱ/Ⅲ的核心空間編碼單元(如網格細胞、頭方向細胞等),其獨特的神經計算機制為自然語言處理(NLP&#xff09…

綜合實驗(4)

文章目錄 目錄 文章目錄 前言 實驗配置 實驗總結 總結 前言 Cisco IOS Site-to-Site VPN(虛擬專用網絡)是一種通過公共網絡(如互聯網)建立安全連接的技術,使不同地理位置的局域網(LAN)能夠安…

JavaSE:開發環境的搭建(Eclipse)

一、IDE概述與核心價值 集成開發環境定義 提供編譯器、調試器、項目管理工具的統一平臺,顯著提升開發效率。 Eclipse核心優勢: 免費開源 :社區驅動,無授權費用跨平臺支持 :Windows/Linux/macOS全兼容多語言擴展 &a…

使用LLaMA-Factory對大模型進行微調

之前了解過一些LLM從訓練到落地的過程; 其中一個重要的步驟就是微調; 預訓練:在大規模數據上學習通用語言知識。(使用海量無標注文本(TB級)) 微調:在預訓練基礎上,使用特定任務的標注數據進一步優化模型。(使用少量任務…

WxPython——一些最常見的錯誤現象及解決方法

一些最常見的錯誤現象及解決方法 有一些錯誤它們可能會發生在你的wxPython應用程序對象或初始的頂級窗口在創建時,這些錯誤可能是很難診斷的。下面我們列出一些最常見的錯誤現象及解決方法: 錯誤現象:程序啟動時提示“unable to import modul…

SparkSQL 子查詢 IN/NOT IN 對 NULL 值的處理

SparkSQL 子查詢 IN/NOT IN 對 NULL 值的處理 官網:https://spark.apache.org/docs/4.0.0/sql-ref-functions.html https://spark.apache.org/docs/4.0.0/sql-ref-null-semantics.html#innot-in-subquery Unlike the EXISTS expression, IN expression can return…

【安卓筆記】lifecycle與viewModel

0. 環境: 電腦:Windows10 Android Studio: 2024.3.2 編程語言: Java Gradle version:8.11.1 Compile Sdk Version:35 Java 版本:Java11 1. 本篇文章涉及到的內容 lifecycle livedata databinding viewModel 2. …

84、逆向工程開發方法

逆向工程開發方法是一種通過分析現有產品、系統或代碼來理解其設計原理、功能實現及潛在缺陷,并在此基礎上進行改進、復制或創新的技術過程。它廣泛應用于軟件、硬件、機械、電子等多個領域,尤其在缺乏原始設計文檔或需要快速掌握復雜系統時具有顯著優勢…

ospf單區域實驗

拓撲圖:AR1:[Huawei]ospf 1 router-id 1.1.1.1 [Huawei-ospf-1]area 0[Huawei-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255(1.當前網段會被ospf的進程1學習到然后通告出去;2.如果接口的IP地址處于這個網段中&#xff0c…

Linux命令基礎完結篇

用戶權限修改 chmod修改文件權限 文字設定法 u:所有者g:所屬組o:其他人a:所有:添加權限-:刪除權限:賦予權限數字設定法 r:4w:2x:1每一組權限:0~7舉…