機器學習數據預處理學習報告

一、學習背景與目的

在機器學習流程中,數據預處理是保障模型訓練效果的關鍵環節。原始數據常存在缺失值、量綱不一致、特征格式不匹配等問題,直接影響模型對數據規律的學習。本次學習圍繞 Pandas 與 Scikit-learn(sklearn)工具庫,系統掌握數據預處理的核心技術,包括缺失值處理、數據標準化、特征編碼及數據二值化,為后續機器學習建模奠定基礎。

二、核心知識點總結

(一)缺失值處理

缺失值是數據集中常見問題,需先識別再通過刪除或填充解決,核心工具包括 Pandas 內置函數與 sklearn 的SimpleImputer

1. 缺失值識別(Pandas)
  • 關鍵函數isnull() 功能:判斷數據框(DataFrame)或 Series 中每個單元格是否為空,返回布爾值(True表示空值,False表示非空值)。 注意事項:Pandas 默認僅識別NaN為缺失值,需通過na_values參數手動指定其他缺失值格式(如"n/a""na""-"),確保識別全面性。 示例代碼:

    python

    運行

    import pandas as pd
    missing_values = ["n/a", "na", "-"]
    df = pd.read_csv('property-data.csv', na_values=missing_values)
    print(df['NUM_BEDROOMS'].isnull())  # 查看該列空值情況
    
2. 缺失值處理方法
處理方式工具 / 函數核心邏輯適用場景
刪除法Pandas?dropna()刪除包含空值的行 / 列,參數how="any"(有一個空值即刪)、how="all"(全為空才刪)數據量較大、空值占比低,且刪除后不影響數據分布
填充法 - Pandasfillna()用指定值(如常數666)、均值(mean())、中位數(median())填充空值數據量較小,需保留樣本完整性
填充法 - sklearnSimpleImputer支持 4 種策略: -?strategy="mean"(均值填充,適用于正態分布數據) -?strategy="median"(中位數填充,適用于含異常值數據) -?strategy="constant"(常數填充,需指定fill_value) -?strategy="most_frequent"(眾數填充,適用于分類數據)標準化處理流程,適配 sklearn 建模 pipeline

(二)數據標準化

標準化旨在解決 “不同特征量綱不一致導致模型偏向方差大的特征” 問題,核心是將數據轉換為統一規格(無量綱化),常用兩種方法。

1. 核心概念
  • 定義:將特征分布調整為特定形式(如標準正態分布),消除量綱影響,使不同特征具備可比性。
  • 無量綱化類型
    • 中心化:數據平移(減去固定值,如均值);
    • 縮放:數據壓縮 / 擴張(除以固定值,如標準差、最大值)。
2. 常用標準化方法
方法工具 / 函數計算公式特點
最大最小值標準化preprocessing.MinMaxScaler()\(X_{scaled} = \frac{X - X_{min}}{X_{max} - X_{min}}\)可通過feature_range指定目標范圍(默認[0,1]),適用于需要固定數據范圍的場景(如神經網絡輸入)
Z 值標準化preprocessing.StandardScaler()\(X_{scaled} = \frac{X - \mu}{\sigma}\)(\(\mu\)為均值,\(\sigma\)為標準差)轉換后數據均值為 0、方差為 1,保留原始數據分布關系,適用于線性模型(如邏輯回歸、SVM)

(三)特征編碼

將非數值型分類特征轉換為數值型,根據特征類型(名義 / 有序 / 有距)選擇不同編碼方式。

1. 特征類型劃分
  • 名義變量:無順序關系(如性別:男 / 女、血型:A/B/AB/O);
  • 有序變量:有順序但不可計算(如學歷:小學 < 初中 < 高中);
  • 有距變量:有順序且可計算(如分數:100/90/60)。
    2. 核心編碼方法
    編碼方式工具 / 函數適用特征類型原理與示例
    獨熱編碼preprocessing.OneHotEncoder()名義變量用 N 位二進制向量表示 N 個類別(如血型 A→[1,0,0,0],B→[0,1,0,0]),避免引入虛假順序關系
    序號編碼preprocessing.OrdinalEncoder()有序變量將類別按順序映射為整數(如學歷:小學→1,初中→2,高中→3),保留原有順序
    目標標簽編碼preprocessing.LabelEncoder()目標變量(y)將目標標簽映射為 0~n_classes-1 的整數(如 “存活”→1,“死亡”→0),僅用于目標值,不用于輸入特征(X)

    (四)數據二值化

  • 定義:根據閾值將連續數據分為兩類(0 或 1),實現 “非黑即白” 的簡化表達。
  • 工具 / 函數preprocessing.Binarizer()
    核心參數:threshold(閾值,大于閾值為 1,否則為 0)。
    示例:將年齡二值化(閾值 30),年齡 > 30→1,年齡≤30→0:

    python

    運行

    from sklearn.preprocessing import Binarizer
    X = data.iloc[:,0].values.reshape(-1,1)  # 年齡列
    transformer = Binarizer(threshold=30).fit_transform(X)
    
  • 三、關鍵工具函數速查表

    工具庫函數核心功能
    Pandasisnull()識別缺失值(布爾判斷)
    Pandasdropna()刪除含空值的行 / 列
    Pandasfillna()填充缺失值(常數 / 均值 / 中位數)
    sklearn.preprocessingMinMaxScaler()最大最小值標準化
    sklearn.preprocessingStandardScaler()Z 值標準化(均值 0、方差 1)
    sklearn.preprocessingOneHotEncoder()名義變量獨熱編碼
    sklearn.preprocessingOrdinalEncoder()有序變量序號編碼
    sklearn.preprocessingLabelEncoder()目標標簽編碼
    sklearn.preprocessingBinarizer()數據二值化
    sklearn.imputeSimpleImputer()標準化填充缺失值(均值 / 中位數 / 眾數 / 常數)

    四、學習總結與應用建議

  • 流程優先級:數據預處理需遵循 “先識別缺失值→處理缺失值→標準化→特征編碼” 的順序,確保每一步輸出符合下一步輸入要求。
  • 方法選擇原則
    • 缺失值:數據量大用刪除法,數據量小用填充法(正態分布用均值,異常值多用中位數,分類數據用眾數);
    • 標準化:線性模型用 Z 值標準化,神經網絡用 MinMaxScaler;
    • 編碼:名義變量用獨熱編碼,有序變量用序號編碼,目標值用 LabelEncoder。
  • 工具適配:Pandas 適合快速數據清洗(如缺失值初步處理),sklearn 適合標準化流程(便于與后續建模整合為 pipeline)。

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

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

相關文章

git舊倉庫遷移到新倉庫

git舊倉庫遷移到新倉庫 A倉庫(舊倉庫)&#xff1a;git172.16.21.21:xxxx_software/Ni-Handler-Mgr.git B倉庫(新倉庫)&#xff1a;git172.16.11.11:yyyy/hostpc/ni-handler-mgr.git Step1 新建新倉庫 創建新 GitHub 倉庫? 在 GitHub 頁面點擊 “New repository”&#xff0c;命…

YOLO --- YOLOv5模型以及項目詳解

YOLO — YOLOv5模型以及項目詳解 文章目錄YOLO --- YOLOv5模型以及項目詳解一&#xff0c;開源地址二&#xff0c;改進點Focus 模塊三&#xff0c;網絡結構3.1 CSP1_X 與 CSP2_X3.2 自適應Anchor的計算3.3 激活函數3.3.1 SiLU3.3.2 Swish3.4 Bottleneck3.5 C33.5.1 BottleneckC…

Linux文本三劍客的使用及常見重點操作

文本三劍客指 Linux環境下的 grep&#xff08;搜索&#xff09;、sed&#xff08;編輯&#xff09;、awk&#xff08;分析&#xff09;三款用于文本處理的核心命令&#xff0c;三者分工明確、功能互補&#xff0c;是處理日志、配置文件、結構化數據等場景的 “剛需工具”。一、…

??《開源字幕神器VideoCaptioner實戰:基于Whisper+LLM的全鏈路方案,免費平替剪映會員》??

&#x1f4cc; 大家好&#xff0c;我是智界工具庫&#xff0c;每天分享好用實用且智能的開源項目&#xff0c;以及在JAVA語言開發中遇到的問題&#xff0c;如果本篇文章對您有所幫助&#xff0c;請幫我點個小贊小收藏小關注吧&#xff0c;謝謝喲&#xff01;&#x1f618; 博主…

redisIO模型

??1. 總述核心??“Redis采用了??單線程的Reactor模型??來處理網絡IO和命令請求。其核心在于&#xff0c;??它使用一個主線程通過IO多路復用機制來并發地處理大量的客戶端連接&#xff0c;而實際的命令解析和執行則是單線程的??。”這句話非常重要&#xff0c;它直接…

視覺采集模塊的用法

一、圖像源模塊用法采集模塊中最基礎的單元就是圖像源模塊&#xff0c;其中圖像的輸入方式包括相機輸入、本地圖像、SDK三種。添加圖像源后&#xff0c;需要對內部的參數進行對應的配置&#xff0c;正常我們連接相機后圖像源選擇我們對應的連接相機。配置所需要的相機參數&…

Linux下基于Electron的程序ibus輸入法問題

Linux下基于Electron的程序ibus輸入法問題 最近想體驗一下KDE Plasma桌面&#xff0c;遇到一個問題&#xff0c;就是瀏覽器輸入不了中文&#xff0c;Edge、Chrome都一樣&#xff0c;當然它們都是基于Chromium的&#xff0c;出同樣的問題很正常。后面發現Visual Code也有同樣的問…

Ubuntu20系統上離線安裝MongoDB

Ubuntu20系統上離線安裝MongoDB 準備工作&#xff1a;下載安裝包及依賴? 下載MongoDB二進制包? 在聯網環境中訪問MongoDB官網&#xff0c;選擇以下配置&#xff1a; 下載地址&#xff1a;https://www.mongodb.com/try/download/community ?Version?&#xff1a;需與目標系統…

K-Means 聚類算法如何選擇初始點

n_clusters 參數是告訴 K-Means 算法對 整個數據集 (X_scaled) 進行分簇。讓我們分解一下這個過程的邏輯&#xff1a;目標&#xff1a;我們的目標不是要對數據進行分類&#xff0c;而是要從成百上千個數據點中&#xff0c;智能地挑選出大約30個點作為貝葉斯優化的“起點”。這些…

聚銘安全管家平臺2.0實戰解碼 | 安服篇(四):重構威脅追溯體系

在企業安全運營中&#xff0c;兩類問題常常讓團隊陷入被動 1、“看得見威脅&#xff0c;卻追不到源頭” 明明檢測到多臺內網設備遭攻擊&#xff0c;卻遲遲找不到攻擊源頭&#xff0c;更說不清攻擊者用了什么手法&#xff0c;導致無法及時封禁或隔離。 2、“找到了源頭&#xff…

【Microi吾碼】:低代碼加速業務和技術深度融合

目錄 一.低代碼優勢&#xff1a; 1.1低代碼平臺和傳統代碼開發&#xff1a; 1.2低代碼和0代碼平臺&#xff1a; 1.3低代碼平臺&#xff1a;Microi吾碼 二.關于開源低代碼平臺&#xff1a;Microi吾碼 2.1Mircroi吾碼介紹&#xff1a; 2.2產品特點&#xff1a; 2.3產品團…

Mongodb操作指南

一、數據庫操作1. 展示所有非空數據庫show dbs該命令會列出所有包含數據的數據庫。2. 顯示當前數據庫db此命令用于查看當前正在使用的數據庫。3. 切換或創建數據庫use 數據庫名如果指定的數據庫不存在&#xff0c;MongoDB 會在首次插入數據時自動創建它。如果已存在&#xff0c…

線性回歸計算

一、理論&#xff1a;明確線性回歸的核心邏輯模型本質&#xff1a;線性回歸是通過屬性的線性組合實現預測的模型&#xff0c;核心目標是找到最優的直線&#xff08;單變量&#xff09;、平面&#xff08;雙變量&#xff09;或超平面&#xff08;多變量&#xff09;&#xff0c;…

pnpm : 無法加載文件 C:\Program Files\nodejs\pnpm.ps1,因為在此系統上禁止運行腳本。

解決辦法 1、以管理員身份運行window powershell 2、執行Get-ExecutionPolicy&#xff0c;顯示Restricted 3、執行set-ExecutionPolicy&#xff0c;會提示輸入參數&#xff0c;此時輸入RemoteSigned回車 4、執行y回車

[特殊字符] TTS格局重塑!B站推出Index-TTS,速度、音質、情感表達全維度領先

B站維度之言&#xff1a;B 站 2025 新聲計劃&#xff1a;IndexTTS 全維度拆解 ——從開源血統到中文特調的架構復盤1&#xff1a;打破邊界&#xff1a;Index-TTS 的技術動因場景野心&#xff1a;直播實時口播、無障礙字幕、AI 虛擬 UP 主……B 站需要一把“聲音瑞士軍刀”&…

第5.3節:awk數據類型

1 第5.3節&#xff1a;awk數據類型 awk并沒有非常嚴格的數據類型&#xff0c;但在編寫代碼的過程中&#xff0c;大致可以分為以下數據類型&#xff1a; 1.1 數字型 #普通表示法 a 123 b 123.333 #科學表示法 c 1.33e13 d 1.05e-5代碼示例&#xff1a; $ echo |awk { >…

基于coco和kitti數據集訓練YOLOX

原文發表在知乎&#xff0c;辛苦移步&#xff5e;&#xff5e; 《基于coco和kitti數據集訓練YOLOX》 yolox官方的指標數據是在coco數據集上訓練出來的&#xff0c;yolox-s模型在11萬coco數據集上訓練后&#xff0c;mAP(0.5-0.95)40.5。手頭有kitti的數據集&#xff0c;所以在…

聲網AI語音體驗太絲滑,支持隨時打斷提問

我們教培團隊近期測試了一款整合聲網語音引擎的對話式 AI 教學工具&#xff0c;體驗遠超預期。原本以為它僅適用于 1v1 口語練習&#xff0c;沒想到已能支持小班課 —— 實測 3 人課堂中&#xff0c;學生輪流發言、提問、插話&#xff0c;AI 都能緊跟節奏&#xff0c;不打斷討論…

【GaussDB】內存資源告急:深度診斷一起“memory temporarily unavailable”故障

一、背景在客戶測試環境中&#xff08;GaussDB 506.0 SPC0100 集中式&#xff09;&#xff0c;一個重度使用存儲過程的系統&#xff0c;頻繁出現內存臨時不可用的問題(ERROR: memory is temporarily unavailable)。令人困惑的是&#xff0c;這個環境配置的內存大小已經數十倍于…

LeeCode 40.組合總和II

給定一個候選人編號的集合 candidates 和一個目標數 target &#xff0c;找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用 一次 。注意&#xff1a;解集不能包含重復的組合。 示例 1:輸入: candidates [10,1,2,7,6,1,5], t…