【機器學習】兩大線性分類算法:邏輯回歸與線性判別分析:找到分界線的藝術

文章目錄

  • 一、核心概念:數據分類的"切分線"
  • 二、工作原理:從"找分界線"理解
  • 二、常見算法
    • 1、邏輯回歸:二分類
    • 2、線性判別分析(LDA):分類與降維
    • 3、兩種算法對比分析
  • 三、實際應用:用代碼"切分"糖尿病數據
  • 四、應用場景:線性分類的"用武之地"

?

一、核心概念:數據分類的"切分線"

線性分類就像用一把刀"切蛋糕"。如果蛋糕只有兩種口味(比如巧克力味和草莓味),你只需要一刀就能把它們完美地分開。這"一刀"就是我們機器學習中的 “決策邊界” 。它是一條直線、一個平面,或者在更高維度上的一個超平面,用來區分不同的數據類別。

核心定義
線性分類算法通過學習數據特征,找到一個最佳的超平面,將不同類別的數據點分隔開。這個超平面就是模型的"分界線",它決定了新來的數據點屬于哪個類別。

?

二、工作原理:從"找分界線"理解

線性分類算法的工作流程可以簡單概括為以下幾步:

  1. 數據準備:首先,我們需要收集帶有明確標簽的數據。比如,如果你想識別貓和狗,就需要大量的貓圖片(標記為"貓")和狗圖片(標記為"狗")。

  2. 特征提取:計算機無法直接理解圖片或文字,所以我們需要將這些原始數據轉換為算法能理解的數字特征。比如,圖片的顏色、紋理、形狀等都可以轉化為數字向量

  3. 模型學習:算法會通過學習這些帶有標簽的特征,自動找到一條最佳的"切分線"(決策邊界),使得不同類別的數據點盡可能地被這條線分開。

  4. 預測分類:當有新的、未知的圖片(比如一張你不知道是貓還是狗的圖片)進來時,算法會根據它落在"切分線"的哪一邊,來判斷其類別。

?

二、常見算法

在眾多線性分類算法中,**邏輯回歸(Logistic Regression, LR)線性判別分析(Linear Discriminant Analysis, LDA)**是兩種非常經典且常用的方法。

1、邏輯回歸:二分類

LR 不直接預測類別,而是預測一個事件發生的概率。它通過一個特殊的"S"形函數(Sigmoid函數),將線性模型的輸出值映射到0到1之間,表示屬于某個類別的概率。

LR 假設數據服從伯努利分布(即只有兩種結果,成功或失敗),并且特征與對數幾率之間存在線性關系。當預測概率大于某個閾值(通常是0.5)時,就歸為一類;否則歸為另一類。這個閾值對應的就是它的決策邊界。

?

2、線性判別分析(LDA):分類與降維

核心思想
LDA是一個既做分類又做降維的算法。它的核心思想是:找到一個最佳投影方向,讓不同類別的數據投影后分得最清楚,同時讓同一類別的數據投影后聚得最緊。想象你有一堆不同顏色的球散落在三維空間里,LDA就是找到一個角度,從這個角度看過去,不同顏色的球能分得最清楚。

LDA用公式 類間距離類內距離\frac{\text{類間距離}}{\text{類內距離}}類內距離類間距離? 來衡量投影效果。它要最大化這個比值,讓分子(類間距離)越大越好,分母(類內距離)越小越好。通過求解這個優化問題,LDA找到最優的投影方向。

?
分類與降維
LDA既可以做二分類,也可以做多分類。在二分類中,它找到一個投影方向將數據投影到一條直線上;在多分類中,它找到多個投影方向將數據投影到低維空間。 同時,LDA還具有降維功能:二分類從任意維度降到1維,C分類從任意維度降到(C-1)維。

?
假設與應用條件
LDA假設數據像鐘形曲線一樣分布,且不同類別的"鐘形"形狀相同。 如果這個假設成立,LDA效果很好;如果不成立,效果就會變差。與邏輯回歸相比,LDA像是一個"幾何學家",專注于找到最好的觀察角度,而邏輯回歸像是一個"概率學家",專注于計算每個樣本屬于各類別的概率。

?

3、兩種算法對比分析

特性邏輯回歸 (LR)線性判別分析 (LDA)
核心預測概率,通過 Sigmoid 函數映射尋找最佳投影方向,最大化類間散度,最小化類內散度
輸出概率值 (0-1)判別函數值
假設數據服從伯努利分布,特征與對數幾率線性相關數據服從高斯分布,各類別協方差矩陣相同
優點簡單高效,輸出概率直觀,易于解釋在類別區分度高時表現良好,對多分類問題處理自然
缺點對異常值敏感,對數據分布有一定要求對數據分布(高斯分布、同協方差)有較強假設

?

三、實際應用:用代碼"切分"糖尿病數據

我們用 Python 的 scikit-learn 庫,在著名的 Pima Indians 糖尿病數據集上,實際操作一下線性分類算法。這個數據集包含了印第安女性的健康數據,目標是預測她們是否患有糖尿病。

from pandas import read_csv
from sklearn.model_selection import KFold, cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import pandas as pd# 1. 導入數據
filename = 'pima_data.csv' # 假設文件在當前目錄下
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)# 2. 將數據分為輸入特征 (X) 和輸出結果 (Y)
array = data.values
X = array[:, 0:8]  # 前8列是特征
Y = array[:, 8]    # 最后一列是目標變量 (是否患糖尿病)# 3. 設置交叉驗證 (KFold)
n_splits = 10 # 分成10份
seed = 7      # 隨機種子,確保每次運行結果一致
kfold = KFold(n_splits=n_splits, random_state=seed, shuffle=True)# 4. 創建模型并評估
models = {'LR': LogisticRegression(solver='liblinear', max_iter=200), # solver='liblinear' 適用于小數據集'LDA': LinearDiscriminantAnalysis()
}results = {}
for name, model in models.items():# 使用交叉驗證評估模型性能scores = cross_val_score(model, X, Y, cv=kfold, scoring='accuracy')results[name] = (scores.mean(), scores.std())# 5. 打印結果
print("模型準確率 (平均值 ± 標準差):")
for name, (mean, std) in results.items():print(f"{name}: {mean:.4f}{std:.4f})")# 示例輸出 
模型準確率 (平均值 ± 標準差):
LR: 0.7696 (±0.0495)
LDA: 0.7670 (±0.0480)

這告訴我們:

  • LR 模型在預測糖尿病方面的平均準確率約為 76.96%,其性能在不同數據子集上的波動(標準差)約為 4.95%
  • LDA 模型的平均準確率約為 76.70%,性能波動約為 4.80%

從結果來看,兩種線性分類模型在 Pima Indians 糖尿病數據集上的表現非常接近,準確率都在76%左右,且波動范圍不大。這意味著它們都能有效地對糖尿病進行初步預測。

你可以嘗試修改 LogisticRegression 中的 solver 參數(例如改為 'saga''lbfgs'),或者調整 max_iter(最大迭代次數),觀察模型性能是否會有變化。這能幫助你理解不同參數對模型訓練的影響。

?

四、應用場景:線性分類的"用武之地"

線性分類算法因其簡單、高效和易于解釋的特點,在許多實際場景中都有廣泛應用:

  • 實際案例1:垃圾郵件識別

    • 場景:你的郵箱每天都會自動將郵件分為"正常郵件"和"垃圾郵件"。
    • 選擇指導:邏輯回歸常用于此,因為它能給出郵件是垃圾郵件的概率。你可以根據這個概率設置一個閾值,比如概率超過80%就直接扔進垃圾箱,低于20%就肯定是正常郵件,中間的再人工判斷
  • 實際案例2:客戶流失預測

    • 場景:一家電信公司想知道哪些客戶可能很快會停止使用他們的服務(流失)。
    • 選擇指導:邏輯回歸可以根據客戶的通話時長、套餐類型、投訴記錄等特征,預測客戶流失的概率。公司可以根據這些概率,提前對高風險客戶采取挽留措施,比如提供優惠套餐。
  • 實際案例3:醫療診斷輔助

    • 場景:醫生根據患者的各項體征數據(如血壓、血糖、年齡等),輔助診斷某種疾病(如糖尿病、心臟病)。
    • 選擇指導:LR 和 LDA 都可以作為初步的診斷模型。LR 提供患病概率,便于醫生評估風險;LDA 在類別區分度高時,能更好地找到疾病和健康人群之間的界限

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

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

相關文章

靜態分析c/cpp源碼函數調用關系圖生成

calltree calltree 不好使用 Dpxygen https://www.doxygen.nl/download.html Graphviz https://graphviz.org/download/ 靜態代碼調用結構圖分析、構建、生成 doxygen doxygen在win和linux上均可運行,可以自動分析源碼,對c語言項目友好,預處…

使用 MySQL Shell 進行 MySQL 單機到 InnoDB Cluster 的數據遷移實踐

遷移背景與環境原來都是用mysqldump,DTS或者cdc遷移,這次8.0用了下新工具感覺挺好用的,簡單快捷,30G數據不到源環境:單機 MySQL 8.0,地址為 172.23.3.28目標環境:InnoDB Cluster 集群&#xff0…

淘寶商品API可以獲取哪些商品詳情數據?

商品詳情頁商品全部sku信息"skus": {"sku": [{"price": 45.6,"total_price": 0,"orginal_price": 45.6,"properties": "1627207:39617249736","properties_name": "1627207:39617249736…

新一代PLC控制軟件平臺EsDA-AWStudio

在工業自動化和智能制造領域,高效的軟件平臺是提升開發效率和系統性能的關鍵。ZLG致遠電子推出的EsDA-AWStudio平臺,憑借其強大的功能和靈活的設計,為工業控制和物聯網應用提供了全新的解決方案。一站式PLC工業控制軟件平臺EsDA-AWStudioZLG致…

基于深度學習的醫學圖像分析:使用MobileNet實現醫學圖像分類

前言 醫學圖像分析是計算機視覺領域中的一個重要應用,特別是在醫學圖像分類任務中,深度學習技術已經取得了顯著的進展。醫學圖像分類是指將醫學圖像分配到預定義的類別中,這對于疾病的早期診斷和治療具有重要意義。近年來,MobileN…

docker 容器常用命令

在平常的開發工作中,我們經常需要使用 docker 容器,那么常用的 docker 容器命令有哪些呢?今天簡單總結下。 一:查看容器查看運行的容器:docker ps查看所有的容器:docker ps a查看容器詳細信息&#…

重型機械作業誤傷預警響應時間縮短80%!陌訊多模態識別算法在工程現場的應用優化

一、行業痛點:機械作業場景的識別困境據《工程機械安全白皮書(2025)》統計,施工現場因機械盲區導致的工傷事故中??78.3%由識別延遲引發??。核心難點包括:??動態遮擋問題??:吊臂擺動導致目標部件部分…

2025年ESWA SCI1區TOP,強化學習多目標灰狼算法MOGWO-RL+分布式混合流水車間調度,深度解析+性能實測

目錄1.摘要2.問題描述和數學建模3.強化學習多目標灰狼算法MOGWO-RL4.結果展示5.參考文獻6.算法輔導應用定制讀者交流1.摘要 本文針對大規模個性化制造(MPM)中的調度問題,提出了一種新的解決方案。MPM能夠在確保大規模生產的前提下&#xff0…

Mac 系統下安裝 nvm

Mac 系統下安裝 nvm nvm 全稱為 node version manger,顧名思義就是管理 node 版本的一個工具,通過這個工具,我們可以在一臺計算機上安裝多個版本的 node,并且隨時進行無縫的切換。 1. 卸載原本的 node.js(重要&#xf…

變量篩選—隨機森林特征重要性

對于接觸算法模型不久的小伙伴來說,建模中海量變量篩選總是讓人頭疼,不知道如何把握。之前已經介紹了一些變量篩選的方法:變量篩選一張圖、【變量篩選】計算類別型變量IV值、KS值、一文囊括風控建模中的變量篩選方法、變量篩選—特征包含信息量。本文詳細介紹通過隨機森林算…

【設計模式】 3.設計模式基本原則

單一職責原則 對于一個類而言,有且僅有一個引起他變化的原因或者說,一個類只負責一個職責 如果一個類承擔的職責過多,那么這些職責放在一起耦合度太高了,一個職責的變化可能會影響這個類其他職責的能力。 所以我們在做軟件設計的時…

ABP VNext + Redis Bloom Filter:大規模緩存穿透防護與請求去重

ABP VNext Redis Bloom Filter:大規模緩存穿透防護與請求去重 🚀 📚 目錄ABP VNext Redis Bloom Filter:大規模緩存穿透防護與請求去重 🚀TL;DR ?1. 引言 🎉2. 環境與依賴 🛠?3. Bloom Filt…

構建工具和腳手架:從源碼到dist

構建工具和腳手架:從源碼到dist**1. 為什么需要工程轉換?****2. 構建工具的核心職責**為什么要求轉換**1)明確三種關鍵問題****(2)Webpack 的打包機制****3. 開發服務器(Webpack Dev Server)***…

數字化生產管理系統設計

下面提供一個基于Python的數字化管理系統框架,使用現代技術棧實現。這個系統將包含設備監控、故障管理、裝配配套表生成、生產計劃管理等功能。系統架構數字化生產管理系統 ├── 設備監控模塊 ├── 故障管理模塊 ├── 產品裝配管理模塊 ├── 生產計劃管理模…

【vue】創建響應式數據ref和reactive的區別

目錄 1、所謂響應式數據 2、ref創建基本類型響應式數據 3、reactive創建對象類型響應式數據 4、ref定義對象類型響應式數據 5、總結:ref和reactive對比 6、補充:toRefs與toRef 1、所謂響應式數據 所謂響應式數據就是,在vue頁面中&#…

YOLO12 改進、魔改|直方圖 Transformerm模塊HTB ,通過動態范圍特征分組、針對性注意力與多尺度融合,提高對遮擋以及多尺度目標的關注能力

在惡劣天氣(如雨、雪、霧)下的圖像恢復任務中,傳統 Transformer 模型為降低計算量,常將自注意力限制在固定空間范圍或僅在通道維度操作,導致難以捕捉長距離空間特征,尤其無法有效處理天氣退化像素&#xff…

涉水救援機器人cad【12張】三維圖+設計書明說

涉水救援機器人設計 摘 要 隨著城市化進度的加快,各種水上游樂設備的增多,水上災害和溺水事件頻繁發生,水上救援任務困難重重,特別是在一些水流湍急的環境下進行救援。傳統的水上救援工作比較緩慢,大多數是通過投射救…

電子病歷:現代HIS系統不可或缺的核心組成部分

一、電子病歷在 HIS 系統中扮演了一個什么角色?電子病歷在醫院信息系統(HIS)中扮演著核心、基礎且不可替代的角色,可以說是整個HIS系統的臨床信息中樞和業務驅動引擎。它的重要性體現在以下幾個方面:1、臨床診療活動的核心載體&a…

【深度學習】通俗易懂的基礎知識:指數加權平均

一、什么是指數加權平均? 指數在數學中表示一個數的冪次運算(如a?中的n),而在統計學中特指隨時間變化的幾何衰減系數,加權指對不同數據賦予不同權重,使重要數據對結果產生更大影響。指數加權平均指是一種時…

c++-list

C-list std::list是C標準模板庫(STL)提供的雙向鏈表容器&#xff0c;它提供了高效的插入和刪除操作&#xff0c;特別適合頻繁修改的序列。定義在 <list> 頭文件中&#xff0c;屬于 std 命名空間。該類的接口與常規容器接口基本一致。 模板原型&#xff1a; template <…