Python 數據建模與分析項目實戰預備 Day 6 - 多模型對比與交叉驗證驗證策略

? 今日目標

  • 引入多種常見分類模型(隨機森林、支持向量機、K近鄰等)
  • 比較不同模型的訓練效果
  • 使用交叉驗證提升評估穩定性

🧾 一、對比模型列表

模型類名(sklearn)適用說明
邏輯回歸LogisticRegression基礎線、易于解釋
KNNKNeighborsClassifier基于鄰近數據點
決策樹DecisionTreeClassifier可視化,易過擬合
隨機森林RandomForestClassifier綜合表現較優,抗過擬合
支持向量機SVC高維表現好,耗時較久(適合小數據)

🧪 二、交叉驗證策略

使用 cross_val_score 進行 K 折交叉驗證,常用 cv=5

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5, scoring="accuracy")

還可以比較不同模型的:

  • accuracy
  • roc_auc
  • f1_macro 等指標

🧪 今日練習任務

編寫腳本 model_compare_cv.py,實現:

  • 加載 processed_X_train.csv 與標簽

  • 初始化多個模型

  • 對每個模型進行 5 折交叉驗證

  • 輸出每個模型的平均準確率和 AUC

    # model_compare_cv.py - 多模型比較與交叉驗證(優化版)import pandas as pd
    import numpy as np
    import warnings
    from sklearn.model_selection import cross_val_score
    from sklearn.preprocessing import StandardScaler
    from sklearn.linear_model import LogisticRegression
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.svm import SVC# 忽略數值計算警告
    warnings.filterwarnings("ignore", category=RuntimeWarning)# 讀取訓練數據
    X = pd.read_csv("./data/stage4/processed_X_train.csv")
    y = pd.read_csv("./data/stage4/processed_y_train.csv").values.ravel()# 檢查數值問題
    print("🔎 是否包含 NaN:", X.isna().sum().sum())
    print("🔎 是否包含 Inf:", (~np.isfinite(X)).sum().sum())
    print("🔎 特征最大值:", X.max().max())
    print("🔎 特征最小值:", X.min().min())# 標準化所有特征
    scaler = StandardScaler()
    X_scaled = pd.DataFrame(scaler.fit_transform(X), columns=X.columns)# 定義模型集合
    models = {"Logistic Regression": LogisticRegression(max_iter=1000, random_state=42),"K-Nearest Neighbors": KNeighborsClassifier(),"Decision Tree": DecisionTreeClassifier(random_state=42),"Random Forest": RandomForestClassifier(random_state=42),"SVM": SVC(probability=True, random_state=42),
    }# 定義評價指標
    scoring = ["accuracy", "roc_auc"]# 逐模型評估
    for name, model in models.items():print(f"🔍 模型:{name}")for score in scoring:cv_scores = cross_val_score(model, X_scaled, y, cv=5, scoring=score)print(f"  [{score}] 平均得分: {cv_scores.mean():.4f} ± {cv_scores.std():.4f}")print("-" * 40)print("? 所有模型交叉驗證完畢。")
    

    運行輸出:

    🔎 是否包含 NaN: 0
    🔎 是否包含 Inf: 0
    🔎 特征最大值: 1.6341648019019988
    🔎 特征最小值: -1.6565987890014815
    🔍 模型:Logistic Regression[accuracy] 平均得分: 0.7500 ± 0.0988[roc_auc] 平均得分: 0.8409 ± 0.0656
    ----------------------------------------
    🔍 模型:K-Nearest Neighbors[accuracy] 平均得分: 0.6875 ± 0.0906[roc_auc] 平均得分: 0.7469 ± 0.0751
    ----------------------------------------
    🔍 模型:Decision Tree[accuracy] 平均得分: 0.6438 ± 0.0829[roc_auc] 平均得分: 0.6442 ± 0.0829
    ----------------------------------------
    🔍 模型:Random Forest[accuracy] 平均得分: 0.6937 ± 0.0696[roc_auc] 平均得分: 0.7739 ± 0.0815
    ----------------------------------------
    🔍 模型:SVM[accuracy] 平均得分: 0.6813 ± 0.0914[roc_auc] 平均得分: 0.7829 ± 0.0867
    ----------------------------------------
    ? 所有模型交叉驗證完畢。
    

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

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

相關文章

xss-labs 1-8關

level1打開檢查&#xff0c;發現test直接放入h2標簽中此時通過script繞過h2標簽構造payload127.0.0.1/xss-labs/lvel1.php?name<script>alert(111)</script>直接使用script標簽繞過h2,并執行alert,通過level2打開檢查&#xff0c;輸入的123被放在input標簽里面的v…

Conda 核心命令快速查閱表

本表旨在提供一個簡潔、高效的 Conda 命令參考&#xff0c;專注于最常用功能的快速查找。 1. 環境管理 (Environment Management)功能 (Function)命令 (Command)示例 (Example)創建新環境conda create -n <env_name> [packages...]conda create -n myenv python3.9 panda…

音視頻學習(三十九):IDR幀和I幀

主要區分&#xff1a;I 幀 是幀內編碼幀&#xff0c;IDR 幀 是一種特殊的 I 幀&#xff0c;它是“清除參考幀鏈的強制切斷點”。H.264 視頻結構 結構 H.264 視頻由多個 NAL&#xff08;Network Abstraction Layer&#xff09;單元 構成&#xff0c;每一幀圖像可由一個或多個 NA…

人工智能與機器學習暑期科研項目招募(可發表論文)

人工智能與機器學習暑期科研項目招募 華中科技大學博士論文指導我是計算機專業的研二學生&#xff1a;從大二開始接觸科研&#xff0c;至今已發表1篇CCF-A類會議論文、1篇CCF-B類會議論文&#xff0c;以及2篇Top期刊論文。正是這段從本科開始的科研經歷&#xff0c;讓我在保研和…

C盤爆滿?一鍵清理恢復極速體驗!“小番茄C盤清理”徹底解放你的電腦

目錄 前言 C盤變紅&#xff1f;&#xff01;那么你的電腦將會出現下面糟糕的情況&#xff1a; 一、小番茄C盤清理介紹——拯救你的C盤爆紅&#xff01; 二、安裝登錄小番茄C盤清理 2.1 安裝小番茄C盤清理 2.2 登錄—擁有專屬自己電腦的小番茄C盤清理 三、手把手教你深度…

UI前端大數據可視化實戰技巧:如何利用數據故事化提升用戶參與度?

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;從 “圖表堆砌” 到 “故事共鳴” 的可視化革命當企業管理者面對布滿折線…

CSS基礎1.1

HTML骨架<!DOCTYPE html> <!-- 中文網站 --> <html lang"zh-CN"> <head><!--charset"UTF-8" 規定網頁的字符編碼 --><meta charset"UTF-8"><!-- ie(兼容性差) / edge --><meta http-equiv"X…

前端基礎JavaScript 筆記

本文是基于 B 站 pink 老師前端 JavaScript 課程整理的學習筆記 JS簡介 JavaScript是一種運行在客戶端&#xff08;瀏覽器&#xff09;的編程語言 作用&#xff1a;1.網頁特效(監聽用戶的一些行為讓網頁作出對應的反饋) 2.表單驗證(針對表單數據的合法性進行判斷) 3.數據交互…

「小程序開發」項目結構和頁面組成

微信小程序目錄 微信小程序的目錄,每種文件都有特定用途,組合起來才能構建完整應用。 小程序最基本的目錄結構通常包含這些部分: my-miniprogram/ ├── pages/ // 存放所有頁面 │ ├── index/ // 存放index頁面的邏輯文件 │ └── logs/ …

[element-ui]el-table在可視區域底部固定一個橫向滾動條

背景當el-table的列太多時&#xff0c;得拖動橫向滾動條才能看到&#xff0c;但如果內容也很多&#xff0c;可能橫向滾動條還看不到&#xff0c;又得滑到最下方才能拖動滾動條&#xff0c;這樣不太方便。若內容過多時&#xff0c;有個固定在可視區域的橫向滾動條就好了&#xf…

大模型核心組件結構與計算順序詳解(Embedding/FFN/LayerNorm等)

在大模型&#xff08;如GPT、BERT、LLaMA等&#xff09;的架構設計中&#xff0c;各個組件的協同工作是模型性能的核心保障。本文將詳細解析大模型中Embedding、前饋神經網絡&#xff08;FFN&#xff09;、LayerNorm、Softmax、MoE、殘差連接的作用及計算順序&#xff0c;幫助理…

希爾排序:突破傳統排序的邊界

一、算法思想希爾排序&#xff08;Shell Sort&#xff09;&#xff0c;也被叫做縮小增量排序&#xff0c;是插入排序的一種改進版本。希爾排序的核心在于先將整個待排序的記錄序列分割成若干個子序列&#xff0c;分別進行直接插入排序。隨著增量逐漸減小&#xff0c;子序列的長…

Kafka事務消息與Exactly-Once語義實戰指南

Kafka事務消息與Exactly-Once語義實戰指南 在分布式微服務或大數據處理場景中&#xff0c;消息隊列常被用于異步解耦、流量削峰和系統伸縮。對于重要業務消息&#xff0c;尤其是金融、訂單、庫存等場景&#xff0c;消息的精確投遞&#xff08;Exactly Once&#xff09;和事務一…

26.將 Python 列表拆分為多個小塊

將 Python 列表拆分為多個小塊(Chunk a List) ?? 場景 1:按份數 chunk_into_n(lst, n) 將一個列表平均拆分為 n 個塊。如果不能整除,最后一塊會包含剩余元素。 ? 示例代碼 from math import ceildef chunk_into_n(lst, n):size = ceil(len

18.理解 Python 中的切片賦值

1. 切片語法回顧 標準切片語法格式為: [start_at : stop_before : step]start_at:起始索引(包含)stop_before:結束索引(不包含)step:步長(默認為 1)例如: lst = [1, 2,

論文 視黃素與細胞修復

王偉教授發布&#xff0c;通過對比兔子和老鼠耳朵穿孔后的復原&#xff0c;控制變量法發現了 視黃素對細胞修復的影響

JavaScript 的執行上下文

當 JS 引擎處理一段腳本內容的時候,它是以怎樣的順序解析和執行的?腳本中的那些變量是何時被定義的?它們之間錯綜復雜的訪問關系又是怎樣創建和鏈接的?要解釋這些問題,就必須了解 JS 執行上下文的概念。 JavaScript引擎: JavaScript引擎是一個計算機程序,它接收JavaScri…

掉線監測-tezos rpc不能用,改為殘疾網頁監測

自從有了編程伴侶&#xff0c;備忘的需求變得更低了&#xff0c;明顯不擔心記不住語法需要記錄的情景。然而還是保持習慣&#xff0c;就當寫日記吧&#xff0c;記錄一下自己時不時在瞎搗騰啥。tm&#xff0c;好人誰記日記。就是監控灰色各自前緊挨著出現了多少紅色格子。一共查…

Spark Expression codegen

Expression codegen src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala def genCode(ctx: CodegenContext): ExprCode = {ctx.subExprEliminationExprs.get(ExpressionEquals(

Axios方法完成圖書管理頁面完整版

一、目的 需要實現的功能有包括&#xff1a; 從服務器發送請求&#xff0c;獲取圖書列表并渲染添加新圖書編輯現有圖書信息刪除圖書以上每一步都實現與服務器存儲數據同步更改 二、基礎配置 引入Axios庫&#xff1a; <script src"https://cdn.jsdelivr.net/npm/ax…