理論加案例,一文讀懂數據分析中的分類建模

一、什么是分類

分類,是數據建模領域的重要分支,你每天也都會接觸。

手機垃圾短信過濾,就是分類算法給短信打的標簽,比如0代表正常短信,1代表垃圾短信。

1.png

在醫學領域,根據影像檢查判斷腫瘤是良性還是惡性。在工業領域,根據設備工作特征做故障診斷。在材料領域,根據配方快速預測新材料的特性是否符合要求。

前面這些例子大多是二分類,即只有兩個標簽,更細的還有多分類。

比如電子郵件分為正常郵件、廣告郵件、垃圾郵件或釣魚郵件。貸款風險評估,分類為高風險中風險低風險。工廠的質量控制,分類為一級品、二級品以及廢品。

二、分類算法

分類算法的核心邏輯是找到數據中特征與標簽之間的映射關系。簡單來說,就是找到一個“函數”,根據輸入數據的特征,準確地判斷數據所屬的類別。

2.png

根據算法原理和實現方式,分類算法可以分為線性算法,非線性算法和集成學習算法。這三類算法分別適合不同的建模場景,訓練出的模型復雜度一般也越來越高。

針對每一大類,數據建模軟件DTEmpower也內置了多種算法。

3.png

比如線性算法里的邏輯回歸算法Logistic,它的優點是簡單高效計算成本低,且可解釋性強,比如你能通過模型看出某個特征的重要性。

但線性算法更適合特征與目標變量之間存在線性關系的場景。所謂線性關系,就是因變量y可以寫成y=ax1+bx2+cx3...這種形式。

4.png

非線性分類算法里的比較著名的KNN,K近鄰算法。它的優點是原理簡單且能處理非線性數據,對異常值不敏感。但缺點就是計算效率低,處理大數據時比較慢,因此也更適合數據量不大且數據集維度不高的情況。

集成學習算法里,RandomForest隨機森林算法很有代表性,它最顯著的優點是抗過擬合能力強。

所謂過擬合,指的是模型在訓練數據上表現非常好,精度很高。但遇到新數據,精度就崩了。

除了抗過擬合,隨機森林算法的魯棒性也很強。如果數據存在異常值,模型也不會有明顯的精度下降。

當然凡事都有兩面性。隨機森林算法的缺點之一就是模型訓練過程的計算量大,而且得到的模型是一個黑箱模型。

相比線性模型,黑箱模型的可解釋性差多了,你給它輸入,它給你輸出。這個結果的精度可能很高,但如果我問你它為什么輸出這個結果,你很難解釋清的。

下面我列出常見分類算法的優缺點以及適用場景,就不逐個介紹了。

5.png

之所以不逐個介紹,第一是我怕你睡著。

第二,即使你知道了每種算法的優缺點,當接觸一個新場景或者拿到一組新數據,你也還依然不知道用什么算法。

比如我給你一個數據集,你怎么會知道變量之間是線性還是非線性關系呢?

6.png

實際的算法選擇過程,都有一定的嘗試成分。從易到難,從簡到繁,最終在模型精度和計算量之間做權衡。

在實際操作時,我們推薦邏輯回歸和決策樹這兩個基線算法。它們操作簡單,易上手且性能尚可。當你不知道用什么算法時,就可以嘗試用基線算法。

7.png

如果基線算法不滿足要求,或者你想做更進一步的探索,可以再嘗試其它的進階算法。

比如集成學習算法里的Bagging算法,就可以作為首選的進階算法。這種算法操作簡單,且魯棒性高,在處理高維度數據時表現不錯。

三、分類模型可視化工具

你多次嘗試之后,關鍵的問題來了,如何判斷模型的好壞呢?

接下來介紹決策邊界、混淆矩陣和ROC 曲線三個可視化工具,它們構成了判斷模型精度的“黃金三角”。

第一個,決策邊界

假設你有一堆手辦,共分為兩種,一種會打籃球,一種不會。現在你畫一條線,把它們分成了兩類。這條線,就是我們今天要講的決策邊界。

8.png

簡單來說,決策邊界就是分類模型用來區分不同類別數據的“分界線”。

第二個,混淆矩陣。

混淆矩陣其實是一個表格,展示了分類模型預測標簽和實際標簽之間的關系。

9.png

對于二分類,它就是一個2X2的表格,左上表示實際為正,預測也為正,預測對了,True Positive,簡稱TP。

右下表示實際為負,預測也為負數,也預測對了,True Negative, 簡稱TN。

那么另外兩個區域,就表示預測錯了,一個叫False Negative, FN。另一個叫False Positive, FP。

顯然,TP+TN通常越大越好。因此判定模型的好壞,也有一個定量指標叫準確率。另外還有精確率、召回率和F1分數這幾個指標,也都比較常用。

10.png

第三個,ROC曲線,全稱叫受試者工作特征曲線(Receiver Operating Characteristic Curve)。

ROC曲線所在坐標的橫軸叫假陽性率,也就是實際為負,但被預測為正的比例。縱軸是召回率,也就是實際為正,且被預測為正的比例。

11.png

下面說說這個曲線是如何生成的。

分類模型在做預測分類時,你覺得它對預測結果有百分百的信心嗎?顯然不會。

它實際是通過概率判斷的,比如計算發現某個樣本屬于A類的概率是70%,你如果設置閾值是50%,那么你就可以輸出結果判定這個樣本屬于A類。

當然,如果計算之后發現這個樣本屬于A類的概率只有40%,那你就能輸出結果,判定它不屬于A類。

所以,你設定的閾值不同,模型的表現也不同。

OK,下面做三件事。

第一,選擇一系列不同的閾值。

第二,對于每一個閾值,計算出當前的假陽性率和召回率。

第三,把這些點連起來,就得到了ROC曲線。

12.png

如果你不做數據建模,而是隨機猜測的,也就是分類正確的概率是50%,那么生成的ROC曲線就是從(0,0)到(1,1)的一條直線。

從ROC曲線的定義可知,這個曲線越靠近左上角,表示模型精度越高。所以ROC曲線也有個定量值,叫曲線下面積,簡稱AUC。顯然,曲線下的面積AUC越大,也表示曲線越靠近左上角。

13.png

介紹完三種工具,那么最終如何判斷呢?

通常情況下,你看混淆矩陣時,左上角和右下角的數越大越好。看ROC曲線時,曲線上方的面積越小越好。

為什么說通常情況下?因為分類模型好壞的判斷,必須要結合業務背景。

舉個例子,在地震預測時,我們希望盡可能預測到所有的地震,哪怕這些預測到的地震中只有少數真正發生了,這個時候我們就可以犧牲精確率。寧愿發出100 次警報但只對 10 次,也不希望預測了 10 次,但只有 8 次正確而漏掉2次,因為只要有 1 次地震沒預測到都會造成巨大的損失。這是一個 “寧可抓錯,不可放過” 的場景。

但另一個場景,垃圾郵件分類,我們雖然希望模型能夠找到所有的垃圾郵件,但一旦有一封正常郵件被分到了垃圾信箱里,你肯定很生氣。所以這時候寧可漏掉垃圾郵件,也不能把正常郵件分錯。這就是一個“寧可放過,不可抓錯” 的場景。

14.png

能體會出來吧?在不同的場合,我們在建模時需要根據實際情況,通過查看不同的參數指標來判斷分類模型質量。

四、分類建模案例

理論部分講解差不多了,下面做一個實際的數據建模分類案例。

工程背景是某種新材料的研制,這種材料由很多種配方組成,不同的組成對應不同的材料性能。

工廠經過多年的積累,已經有了大量數據。其中前83列是原材料,后面幾列是配方對應的材料性能。而我們關心的是最后一列,耐彎折性。1表示耐彎折性達標,0表示不達標。

15.png

我們數據建模想做的事,是得到一個分類模型。基于這個模型,你輸入一種新的配方,讓模型判斷配方組成的新材料的耐彎折性是否達標,省去做實驗測試的過程。

開始操作。啟動DTEmpower,新建工程選擇專業模式,之后在畫布上依次拖入數據讀取、變量剔除、空值處理、變量設定、數據分割節點,然后依次連線,表示數據傳遞。

16.png

數據讀取、變量剔除就不解釋了,字面意思很簡單。

空值處理的作用是刪除存在空值的數據行,而數據分割是將數據分為訓練集和測試集,默認按照3:1的比例分割。訓練集用來訓練模型,測試集用來測試模型精度。

再然后,拖入分類算法節點。這里我拖入極端隨機樹算法,節點配置保持默認。

注意,軟件默認是打開交叉驗證的,交叉驗證是數據建模領域的一個重要概念,也是DTEmpower軟件的底層能力。

交叉驗證核心思想是:將數據集分成若干份,輪流使用其中一份作為驗證集,其余的作為訓練集,最后對模型進行多次的訓練和評估,以檢驗模型的泛化能力。當然,打開交叉驗證之后,也會增加訓練時間。

最后再拖入模型對比節點,模型對比節點能給出分類算法的定量精度值。而計算計算精度值時,基于的數據就是數據分割節點分出來的測試集。

17.png

模型訓練結束后,單擊得到的分類模型,能看到模型信息,包括決策邊界、ROC曲線以及混淆矩陣。

決策邊界,能看出來有一條曲線,把界面分成了兩部分,能大概展示模型對訓練集的擬合程度。

18.png

混淆矩陣,可以看出來實際為0且預測為0的數據有26個。實際為1預測也為1的值有36個。

19.png

ROC曲線,它繪制了兩條曲線,分別是0和1的。同時也給出了AUC的值,巧了,都是0.86。這個表現還不錯,說明模型具有良好的區分能力。

20.png

這就是我們用隨機樹算法訓練得到的分類模型,你如果感興趣的話,可以嘗試用其它算法試試,看能不能得到精度更高的模型。

歡迎前往天洑官網下載軟件,免費試用30天,即下即用。

21.png

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

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

相關文章

數組題解——二分查找【LeetCode】

704. 二分查找 算法邏輯分析 初始化邊界 left 設為0&#xff0c;right 設為len(nums)&#xff0c;表示左閉右開區間 [left, right)。這意味著搜索區間包含下標left&#xff0c;但不包含下標right。 循環條件 while left < right:&#xff0c;只要left小于right&#xff0c…

Function AI 工作流發布:以 AI 重塑企業流程自動化

作者&#xff1a;寒斜 在 AI 技術飛速發展的今天&#xff0c;企業的流程自動化方式也正在發生深刻變革。過去&#xff0c;流程自動化往往依賴于人工配置和固定規則&#xff0c;難以適應復雜、多變的業務場景。而如今&#xff0c;隨著 LLM&#xff0c;Agent&#xff0c;MCP 等節…

【單元測試】單元測試的定義和作用

介紹 ?單元測試不僅是對函數進行測試&#xff0c;還包括對類、組件等最小可測試單元的測試?。單元測試是對軟件中的最小可測試單元進行驗證的過程&#xff0c;這些單元可以是函數、方法、類或組件等。單元測試的主要目的是確保這些最小單元在隔離的環境中能夠正確地實現其功…

AI 輔助生成 Mermaid 流程圖

文章目錄 背景Mermaid使用 AI 編寫 Mermaid應用 背景 在 markdown 文檔中雖然可以插入圖片&#xff0c;但是也需要管理圖片&#xff0c;一旦圖片位置變了&#xff0c;文檔中的圖片就無法顯示。圖片占用空間較大&#xff0c;對于在線文檔&#xff0c;為了加載速度&#xff0c;能…

定位坐標系深度研究報告

一、引言 定位坐標系是用于描述地理位置的數學工具&#xff0c;其發展與人類對地球形狀的認知和技術需求密切相關。早期的定位依賴于天文觀測&#xff08;如經緯度&#xff09;&#xff0c;現代則結合衛星技術&#xff08;如GPS&#xff09;和數學投影方法&#xff08;如墨卡托…

數字孿生技術引領UI前端設計潮流:沉浸式體驗的新篇章

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 當虛擬世界與物理現實的邊界逐漸模糊&#xff0c;數字孿生技術正以燎原之勢重構 UI 前端設計的…

VR油庫虛擬仿真系統:開啟智慧油庫新時代

在科技快速發展的當下&#xff0c;VR 技術在多行業廣泛應用&#xff0c;以沉浸式等特點重塑行業模式。油庫作為石油儲存與轉運關鍵樞紐&#xff0c;傳統運營管理依賴人工經驗和常規設備&#xff0c;存在安全風險高、培訓成本大等問題。在此背景下&#xff0c;油庫引入 VR 虛擬仿…

Oracle獲取前100條記錄

在Oracle數據庫中&#xff0c;獲取前100條記錄可以通過多種方式實現&#xff0c;最常見的方法是使用ROWNUM或者在較新版本的Oracle中使用FETCH FIRST子句。以下是幾種常見的方法&#xff1a; 方法1&#xff1a;使用ROWNUM ROWNUM是Oracle特有的一個偽列&#xff0c;用于為結果…

【開源庫 | libpng】使用 libpng 讀寫 png 文件詳細教程(附帶源碼)

&#x1f601;博客主頁&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客內容&#x1f911;&#xff1a;&#x1f36d;嵌入式開發、Linux、C語言、C、數據結構、音視頻&#x1f36d; &#x1f923;本文內容&#x1f923;&a…

Nuttx之nxsched_add_readytorun(non-SMP)

聲明&#xff1a;此處代碼分析&#xff0c;來源與 nuttx 12.8.0版本。 在分析之前&#xff0c;需要一圖鎮樓。 /***************************************************************************** Name: nxsched_add_readytorun** Description:* This function adds a TCB …

Nuttx之nxsched_add_blocked

聲明&#xff1a;此處代碼分析&#xff0c;來源與 nuttx 12.8.0版本。 在分析之前&#xff0c;需要一圖鎮樓。 /***************************************************************************** Name: nxsched_add_blocked** Description:* This function adds a TCB to o…

python 包含虛擬環境venv項目的移動

python 包含虛擬環境venv項目的移動 在ubuntu環境下&#xff0c;移動一個包含venv虛擬環境的項目后&#xff0c;在執行時會報錯: 錯誤1&#xff1a; Traceback (most recent call last):File "app.py", line 2, in <module>from flask import Flask, request…

WPF中實現TreeView的SelectedItem雙向綁定到ViewModel

WPF中實現TreeView的SelectedItem雙向綁定到ViewModel WPF中實現TreeView的SelectedItem雙向綁定到ViewModel問題背景解決方案一&#xff1a;附加行為&#xff08;推薦&#xff09;實現步驟優點 解決方案二&#xff1a;通過IsSelected屬性綁定實現步驟注意事項 兩種方案對比補充…

類型轉換運算符重載

C 類型轉換函數詳解 類型轉換函數是C中用于實現類類型與其他類型之間相互轉換的特殊成員函數&#xff0c;分為兩種主要形式&#xff1a;轉換構造函數和類型轉換運算符。 1. 轉換構造函數 (Conversion Constructor) 基本概念 轉換構造函數是一種特殊的構造函數&#xff0c;它…

ES10(ES2019)新特性整理

一、Array.prototype.flat() 和 flatMap()&#xff08;數組扁平化&#xff09; &#xff08;1&#xff09;flat(depth) 將嵌套數組“拉平”到指定深度&#xff08;默認 depth1&#xff09;。 const arr [1, [2, [3]]]; arr.flat(); // [1, 2, [3]]&#xff08;默認深度 …

基于 LCD1602 的超聲波測距儀設計與實現:從原理到應用

具體材料可在主頁資源里下載 超聲波測距技術作為非接觸式測量的重要手段&#xff0c;在工業檢測、智能家居、機器人避障等領域有著廣泛應用。本文將詳細介紹一款基于 STC89C51 單片機與 LCD1602 顯示屏的超聲波測距系統&#xff0c;從硬件架構到軟件實現&#xff0c;完整呈現一…

2.5G/5G/10G自協商An

IEEE 802.3 協議中&#xff0c;**2.5GBASE-T、5GBASE-T 和 10GBASE-T** 的鏈路自協商&#xff08;auto-negotiation&#xff0c;簡稱 AN&#xff09;是在物理層&#xff08;PHY&#xff09;完成的。它的作用是&#xff1a; * **讓連接雙方&#xff08;主機和對端&#xff09;自…

閑庭信步使用SV搭建圖像測試平臺:第五課——使用task

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊top_tb.bat文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程…

Android數據庫GreenDao的使用

簡介 GreenDao 是一個輕量級的對象關系映射&#xff08;ORM&#xff09;庫&#xff0c;用于簡化 Android 應用中的數據庫操作。它提供了以下主要功能&#xff1a; 簡化數據庫操作&#xff1a;通過注解定義實體類&#xff0c;GreenDao 自動生成 DAO&#xff08;數據訪問對象&a…

24小時留言板

title: 24小時留言板 date: 2025-06-25 23:32:53 tags: 代碼工具 24小時留言板 核心效果如圖所示 代碼解析 # TodoController 代碼解析## 整體架構 這是一個基于Spring WebFlux的響應式控制器&#xff0c;結合Redis發布\訂閱機制實現實時更新的待辦事項系統。關鍵組件包括&a…