機器學習之數據預處理學習總結

在機器學習中,數據預處理是模型訓練前至關重要的環節,直接影響模型的性能和準確性。通過本次學習,我系統掌握了數據預處理的核心方法與工具,現將主要內容總結如下:

一、缺失值處理

缺失值是實際數據中常見的問題,處理方式主要包括以下幾種:

  1. Pandas 中的缺失值處理

    • 識別缺失值:使用isnull()函數判斷單元格是否為空,可直觀查看數據缺失情況。
    • 自定義缺失值標識:通過na_values參數指定 “n/a”“na” 等字符串作為缺失值標識,確保數據一致性。
    • 刪除缺失值dropna()函數可刪除包含空字段的行,參數axis(默認 0,刪除行)、how(“any” 有一個空即刪除,“all” 全為空才刪除)等可靈活控制刪除規則。
    • 填充缺失值fillna()函數用指定值替換空字段,常見方式包括:
      • 固定值填充(如用 666 填充);
      • 均值填充(mean())、中位數填充(median()),適用于數值型數據,能保留數據整體分布特征。
  2. Scikit-learn 中的缺失值處理

    • SimpleImputer是處理缺失值的常用工具,支持多種策略:
      • 均值填補(strategy="mean");
      • 中位數填補(strategy="median");
      • 常數填補(strategy="constant",需指定fill_value);
      • 眾數填補(strategy="most_frequent"),適用于分類特征(如 “Embarked” 港口信息)。

二、數據標準化

標準化的核心是將數據轉換為統一規格,消除量綱影響,常見方法包括:

  1. 最大最小值標準化(MinMaxScaler)

    • 將數據縮放到指定范圍(默認 [0,1]),公式為:Xscaled?=Xmax??Xmin?X?Xmin??。
    • 通過feature_range參數可自定義縮放范圍(如 [5,10])。
  2. Z 值標準化(StandardScaler/scale ())

    • 將數據轉換為均值為 0、標準差為 1 的標準正態分布,公式為:Xscaled?=σX?μ?。
    • scale()函數直接處理數據,StandardScaler以類的形式實現,支持保存均值和標準差用于新數據轉換。
  3. 其他標準化方法

    • MaxAbsScaler:按絕對值最大值縮放,使數據落在 [-1,1] 區間,適用于稀疏數據。
    • RobustScaler:基于中位數和四分位距處理,抗離群值能力強。
    • QuantileTransformer:通過分位數信息將數據映射為均勻或正態分布,適用于偏態數據。
    • PowerTransformer:通過冪變換(如 Box-Cox 變換)將數據映射為近似正態分布,適合需正態假設的模型。

三、特征編碼

將分類特征轉換為數值形式是預處理的關鍵步驟,根據特征類型可分為:

  1. 獨熱編碼(OneHotEncoder)

    • 為每個類別創建二進制特征,適用于無順序關系的名義變量(如血型 “A/B/AB/O”)。
    • 避免模型誤解類別間的數值關聯,如將 “A” 編碼為 (1,0,0,0),“B” 編碼為 (0,1,0,0) 等。
  2. 序號編碼(OrdinalEncoder)

    • 將有序分類特征轉換為有序整數(如 “高 / 中 / 低” 編碼為 3/2/1),保留類別間的順序關系。
  3. 標簽編碼(LabelEncoder)

    • 用于一維目標標簽(如 “男 / 女”),轉換為 0/1 等整數,不建議用于輸入特征。
  4. 其他編碼方式

    • MultiLabelBinarizer:對多標簽數據(如一篇文章的多個類別)進行二值化編碼。
    • 目標標簽編碼:處理無大小關系的目標值,用 0 到 n_classes-1 編碼,但數值本身無實際含義。

四、數據轉換與離散化

  1. 數據二值化(Binarizer)

    • 根據閾值將數據分為 0 或 1(如年齡 > 30 為 1,否則為 0),簡化特征表示。
  2. 連續數據離散化(KBinsDiscretizer)

    • 將連續特征劃分為多個區間(分箱),支持均勻分箱、分位數分箱等策略,可轉換為整數或獨熱編碼。
  3. 多項式特征生成(PolynomialFeatures)

    • 生成特征的平方項、交叉項等,捕捉特征間的非線性關系,如將 (x1, x2) 擴展為 (1, x1, x2, x12, x1x2, x22)。
  4. 自定義特征處理(FunctionTransformer)

    • 將自定義函數(如對數變換、平方運算)封裝為轉換器,靈活滿足特定處理需求。

五、總結與應用

數據預處理的核心目標是提升數據質量,使數據更適合模型輸入。實際應用中需根據數據特點選擇合適方法:

  • 數值型數據常需標準化或歸一化;
  • 分類特征需根據是否有序選擇編碼方式;
  • 缺失值和離群值需針對性處理,避免影響模型學習。

掌握scikit-learnpreprocessing模塊和pandas的相關工具,能高效完成預處理流程,為后續模型訓練奠定堅實基礎。

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

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

相關文章

在完全沒有無線網絡(Wi-Fi)和移動網絡(蜂窩數據)的環境下,使用安卓平板,通過USB數據線(而不是Wi-Fi)來控制電腦(版本2)

在完全沒有無線網絡(Wi-Fi)和移動網絡(蜂窩數據)的環境下,要實現用安卓手機通過USB數據線控制電腦,核心思路是:利用USB數據線創建一個純粹的、本地的有線網絡連接。 這不僅是可行的,…

Ubuntu22.04配置網絡上網

前言 安裝Ubuntu系統后,有時會遇到無法聯網、無法使用瀏覽器的問題。然而當宿主機已連接網絡時,虛擬機通常也能聯網,需要進行一些配置,現在就以Ubuntu22.04為例。 VMware配置打開虛擬網絡編輯器 啟動VMWare點擊編輯,并…

網絡協議之TCP和UDP

寫在前面 本文來看下TCP和UDP協議。 我們接觸這兩個協議最多的應該就是在面試中了,經典題目就是“TCP和UDP有什么區別?”,而最常得到的答案就是TCP是面向連接的,而UDP是面向無連接的。 那么這里的連接到底是什么呢?難…

Qt音樂播放器項目實踐:本地持久化與邊角問題處理

本音樂播放器完整項目源碼(包含各個按鈕的圖片文件): ly/Project-Code - Gitee.com 一.本地持久化 請注意,學習此部分之前需要讀者具有一定的Mysql基礎。如果讀者能夠接受無法本地持久化,那么可以跳過這部分內容,直接去看邊角問題處理。我…

基于NB-IoT技術的寵物定位跟蹤系統設計#基于STM32\物聯網\單片機技術的寵物定位跟蹤系統

基于NB-IoT技術的寵物定位跟蹤系統設計#基于STM32\物聯網\單片機技術的寵物定位跟蹤系統在設計基于NB-IoT技術的寵物定位跟蹤系統時,首先明確了系統分為感知層、網絡層和應用層三個部分。在感知層,考慮到需要獲取寵物位置和運動狀態,選用GPS定…

【入門級-算法-3、基礎算法:遞歸法】

遞歸是一種非常重要的算法思想,它指的是函數調用自身的過程。遞歸通常包含兩個主要部分:基線條件(終止條件)和遞歸條件(調用自身的條件)。 下面通過例子來理解遞歸算法: 計算階乘 階乘的遞歸定義…

【CS創世SD NAND征文】存儲芯片在工業電表中的應用與技術演進

【CS創世SD NAND征文】存儲芯片在工業電表中的應用與技術演進1.工業電表的市場背景2.技術方案分析3.核心技術特性3.1.主控芯片:APM32F465VET63.3.存儲芯片:CSNP4GCR01-DPW3.3.1. 基本概述3.3.2. 核心特性3.3.3. 優勢特點3.3.4 四大管理算法4.存儲芯片性能…

建筑施工遮擋場景漏檢率↓76%:陌訊動態融合算法實戰解析

原創聲明 本文為原創內容,技術參數及架構解析引用自《陌訊技術白皮書》,未經授權禁止轉載。 一、行業痛點:建筑施工安全監控的 "看得見" 與 "看不準" 建筑施工場景的安全監控長期面臨雙重挑戰:一方面&…

【LeetCode題解】LeetCode 209. 長度最小的子數組

【題目鏈接】 209. 長度最小的子數組 【題目描述】 【題解】 方法一:滑動窗口 本題可以使用雙指針算法,定義兩個指針l和r分別表示子數組的開始位置和起始位置,sum數組存儲的從l到r區間內所有元素的和。初始狀態下,l和r都指向下…

2025-08-21 Python進階6——迭代器生成器與with

文章目錄1 迭代器與生成器1.1 迭代器1.1.1 基本使用1.1.2 手動迭代(帶異常處理)1.1.3 自定義迭代器1.2 生成器1.2.1 工作原理1.2.2 斐波那契數列示例1.3 推導式1.3.1 列表推導式1.3.2 字典推導式1.3.3 集合推導式1.4.4 元組推導式(生成器表達…

C++——C++重點知識點復習2(詳細復習模板,繼承)

目錄 模板 函數模板 類模板 非類型模板參數 模板的特化 函數模板特化 類模板的特化 為什么普通函數可以分離? 繼承 繼承概念 基類和派生類對象賦值轉換(切割,切片) 隱藏 派生類的默認成員函數 .復雜的菱形繼承及菱形…

python 項目編號 2025821 有關于中英文數據的收集、處理

python專欄記錄:前言 批量讀取單詞 JSON 文件 → 解析出單詞、釋義、例句、短語 → 數據清洗(去掉特殊符號) → 同步更新到 MySQL 數據庫。 內容 import json import pymysql import re import time from pymysql.converters import escape_s…

Document Solutions .NET Bundle 8.2.0

Document Solutions .NET Bundle 8.2.0MESCIUS 的 Document Solutions .NET Bundle 是一套完整的 API 和查看工具,可增強文檔處理并提高效率。它包含 Excel、Word、PDF 和圖像文檔,以及 PDF 查看器、數據查看器和圖像查看器的標準許可證。它將強大的 .NE…

在職老D滲透日記day20:sqli-labs靶場通關(第27關)get報錯注入 過濾select和union ‘閉合

5.27.第27關 get報錯注入 過濾select和union 閉合function blacklist($id) { $id preg_replace(/[\/\*]/,"", $id); //strip out /* $id preg_replace(/[--]/,"", $id); //Strip out --. $id preg_replace(/[#]/,"", $id); //Strip out #. $…

Go 并發編程-channel

channel 文章目錄channel簡介基本概念類型表示法值表示法操作的特性初始化通道接收元素值Happens before發送值例1核心組件關鍵執行順序輸出示例(可能順序)設計要點例2例3關閉通道長度與容量單向通道主要用途增強代碼表達性和安全性(最重要的…

開源和免費一樣嗎?以商城系統為例為您分析~

開源和免費并不完全一樣,二者在核心定義、權利范圍和實際應用中存在顯著區別,具體可以從以下幾個方面理解: 1. 核心定義不同開源(Open Source): 指軟件的源代碼是公開可獲取的,任何人都可以查看…

CMOS知識點 MOS管飽和區電流公式

知識點16&#xff1a;同上篇一樣&#xff0c;MOS管主要有3個工作區域&#xff1a;截止區&#xff08;Cut-off Region&#xff09;&#xff1a; < &#xff0c;沒有溝道形成&#xff0c;幾乎沒有電流。線性區/三極管區&#xff08;Triode Region&#xff09;&#xff1a; &g…

【集合框架LinkedList底層添加元素機制】

在 Java 集合框架中&#xff0c;LinkedList 與 ArrayList 是兩種截然不同的線性表實現。如果說 ArrayList 像一個可以伸縮的“盒子陣列”&#xff0c;那么 LinkedList 就像一條由“節點”串聯而成的“雙向鏈條”。今天&#xff0c;我們將深入 LinkedList 的源碼&#xff0c;一步…

《P2700 逐個擊破》

題目背景三大戰役的平津戰場上&#xff0c;傅作義集團在以北平、天津為中心&#xff0c;東起唐山西至張家口的鐵路線上擺起了一字長蛇陣&#xff0c;并企圖在潰敗時從海上南逃或向西逃竄。為了就地殲敵不讓其逃走&#xff0c;指揮官制定了先切斷敵人東西兩頭退路然后再逐個殲滅…

C6.0:晶體管放大器的原理與應用(基極偏置篇)

將晶體管Q點偏置在負載線中點附近后&#xff0c;如果將一個小的交流信號耦合到基極上&#xff0c;便會產生一個交流的集電極電壓&#xff0c;交流集電極電壓與交流基極電壓波形相似&#xff0c;但是幅度要大了很多&#xff0c;即交流集電極電壓是對交流基極電壓的放大。本篇學習…