機器學習中的數據處理技巧

一、Pandas處理丟失數據

(一)判斷缺失值

  • ??isnull()函數??:用于判斷數據框(DataFrame)中各個單元格是否為空,可幫助我們識別出存在缺失數據的單元格位置。

(二)處理缺失值的方法

  1. ??刪除包含空字段的行??

    • ??dropna()函數??

      • ??語法格式??:DataFrame.dropna(axis = 0, how = 'any', thresh = None, subset = None, inplace = False)

      • ??作用??:通過該函數可以刪除包含空字段(缺失值)的行,可根據具體需求設置參數,如axis指定刪除行還是列(0為行,1為列),how決定刪除規則(如'any'表示只要存在缺失值就刪除該行/列,'all'表示該行/列全部為缺失值才刪除等),thresh可設置保留行/列所需的最少非缺失值數量等。

  2. ??填充空字段??

    • ??fillna()函數??:用指定內容來替換數據框中的空字段,可根據實際情況選擇合適的填充值,如固定數值、均值、中位數等。

    • ??mean()函數??:計算列的均值,常可將該均值作為填充值,用于替換對應列中的空單元格,使數據在數值上保持一定的統計特性。

    • ??median()函數??:計算列的中位數,同樣可作為填充空單元格的合適值,尤其適用于數據存在偏態分布等情況,能避免極端值對填充結果的影響。

二、缺失值處理(Impute.SimpleImputer()相關)

(一)使用均值填補

  • 通過Impute.SimpleImputer()相關功能,可采用數據列的均值來填補缺失值,在數據整體分布相對較為均衡、無明顯偏態且缺失值不是集中在某一特殊群體等情況下,使用均值填補能在一定程度上維持數據的整體統計特征,使后續分析或建模不受缺失值的過多干擾。

(二)使用中位數填補

  • 利用Impute.SimpleImputer()以數據列的中位數進行缺失值填補,當數據存在一定偏態分布或者有少數極端值時,中位數相較于均值受極端值影響更小,用其填補缺失值可使填補后的數據更能代表數據的中間水平,保證數據在后續處理過程中的穩定性和可靠性。

(三)使用常數填補

  • 借助Impute.SimpleImputer(),能夠選擇一個特定的常數來填充缺失值,這個常數可以根據業務背景、數據含義等來靈活確定,比如對于某些表示狀態或分類相關的變量,若缺失值有其特定的默認狀態含義,就可以用對應的常數進行填補。

(四)使用眾數填補

  • 通過Impute.SimpleImputer()采用數據列的眾數(即出現頻率最高的數值)來填補缺失值,對于一些離散型變量或者具有明顯集中趨勢的變量,眾數能很好地反映數據的常見取值情況,用眾數填補缺失值可以讓數據在填補后更符合數據原本的集中特征,有助于后續分析的準確性。

三、數據標準化

(一)標準化定義及原因

  • ??標準化定義??:對數據進行標準化處理,主要是為了消除不同特征之間因量綱、數量級等差異而可能對數據分析、模型訓練等造成的不良影響,使各個特征處于同一尺度下,提升模型性能以及數據分析結果的可靠性。

  • ??原因??:不同特征可能具有不同的單位(如身高用厘米、體重用千克)、不同的取值范圍(如年齡范圍是0 - 100,收入范圍可能是幾萬到上百萬)等,如果不進行標準化,這些差異可能會導致在模型訓練過程中某些特征對結果的影響過大,而標準化后能讓各個特征公平地參與到后續的分析和建模過程中。

(二)無量綱化相關概念

  • ??無量綱化定義??:將不同規格的數據轉換到同一規格,或不同分布的數據轉換到某個特定分布的需求,稱為將數據“無量綱化”,其目的是讓數據在統一的標準下進行分析和處理。

  • ??無量綱化類型??

    • ??線性無量綱化??:包括中心化處理和縮放處理。

      • ??中心化本質??:讓所有記錄減去一個固定值,也就是讓數據樣本數據平移到某個位置,通常是將數據的均值作為這個固定值,使得處理后的數據均值為0,便于后續分析和比較。

      • ??縮放本質??:通過除以一個固定值,將數據固定在某個范圍之中,比如常見的將數據縮放到0 - 1范圍等,取對數也算是一種縮放處理,可對數據的分布形態進行調整,使其更符合后續處理要求。

(三)具體的標準化方法

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

    • 該方法通過對數據進行線性變換,將數據縮放到指定的范圍(通常是0 - 1范圍),其計算方式是先找出數據列中的最小值和最大值,然后根據公式將每個數據點映射到指定區間內,使得數據在不同特征之間具有可比性,常用于需要將數據限制在特定范圍的情況,比如神經網絡等模型的輸入數據要求。

  2. ??preprocessing.StandardScaler()(Z值數據標準化)??

    • 該方法也稱為Z - score標準化,它會將數據轉換為均值為0、標準差為1的標準正態分布,計算時是先求出數據列的均值和標準差,然后根據公式對每個數據點進行轉換,使得數據在各個特征維度上具有相同的均值和方差,這種標準化方式在很多機器學習算法中廣泛應用,尤其是那些對數據的分布形態較為敏感的算法。

四、特征編碼

(一)特征類型介紹

  1. ??名義變量??

    • 數值之間相互獨立,彼此沒有聯系,例如性別(男、女),這些不同的取值只是類別標識,不存在大小、順序關系,不能進行常規的數學計算。

  2. ??有序變量??

    • 數值之間有順序,但不能進行計算,比如學歷(小學、初中、高中),雖然有從低到高的順序關系,但不同學歷之間的差值等數學運算沒有實際意義。

  3. ??有距變量??

    • 數值之間有聯系且可以計算,例如分數(100、90、60),這些數值之間不僅可以比較大小,還能進行諸如求差值、平均值等數學運算,反映了數據在數值上的實際關聯和可度量性。

(二)特征編碼方法

  1. ??獨熱編碼(OneHotEncoder)??

    • 主要用于處理名義變量等類型的數據,它將每個類別轉換為一個獨立的二進制特征(0或1),從而將類別型數據轉換為適合機器學習模型處理的形式,避免了模型將類別數值誤當作具有數學意義的數值進行處理,保證了模型對這類數據的正確理解和處理。

  2. ??序號編碼??

    • 針對有序變量,按照其順序關系為每個類別賦予一個序號,使得數據在保留順序信息的同時,能夠以數值形式參與到后續的分析和建模中,序號的賦予要遵循其原本的順序邏輯,以便模型能正確捕捉到這種順序關系。

  3. ??目標標簽編碼??

    • 通常用于將目標變量(標簽)進行編碼,將其轉換為適合模型訓練和評估的數值形式,根據目標變量的具體類型(如分類目標變量等)和模型要求,選擇合適的編碼方式,以便模型能夠準確地對目標進行學習和預測。

  4. ??數據二值化??

    • 根據數值是否大于某個閾值,將數據分為兩類0或1,這種編碼方式常用于將連續型數據或具有一定取值范圍的數據轉換為簡單的二分類形式,便于在一些只關注數據是否超過特定界限等場景下進行后續分析和建模,比如判斷某個指標是否達標等情況。

五、課堂總結

本次內容主要圍繞機器學習中的數據處理展開,涵蓋了使用Pandas處理數據缺失值(判斷、刪除、填充等),利用Impute.SimpleImputer()進行多種方式的缺失值填補,闡述數據標準化(包括定義、原因、無量綱化概念及具體的最大最小值標準化、Z值數據標準化等方法),介紹特征編碼(不同特征類型及對應的獨熱編碼、序號編碼、目標標簽編碼、數據二值化等編碼方法),這些數據處理技巧是機器學習流程中至關重要的前期準備工作,能為后續的模型訓練、分析和預測提供高質量、可靠的數據基礎,幫助提升整個機器學習項目的效果和準確性。

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

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

相關文章

田野科技“一張皮”,“AI+虛擬仿真”推動考古教學創新發展

文運同國運相牽,文脈同國脈相連。考古不僅關系到我們對古代文化的認知、發掘、保護、利用,關系到考古學學科體系、學術體系、話語體系的建設,更是關系到我國考古學的國際影響力,對增強世界不同地區古代文明的比較研究有著十分重要…

為什么我的UI界面會突然卡頓,失去響應

有操作都應是“非阻塞”的,以確保能隨時響應用戶的輸入。導致主線程阻塞的常見“元兇”主要涵蓋五個方面:主線程被“長時間”的同步計算所“阻塞”、單次渲染的界面節點過多或過于復雜、內存中存在“未釋放”的巨大對象或“內存泄漏”、響應了“高頻率”…

大規模IP輪換對網站的影響(服務器壓力、風控)

在當下的互聯網環境中,代理IP輪換已經成為爬蟲、SEO、數據采集等行業的常見手段。尤其是大規模數據抓取時,通過代理池實現IP輪換,可以有效避免因單一IP請求過于頻繁而被目標網站封禁。 然而,大規模IP輪換雖然對采集方有利&#xf…

4. STM32 vscode 環境, 官方插件

文章目錄1. 新建配置2. 安裝插件3. 新建工程1. 新建配置 新建vscode 配置, 因為stm32插件比較多, 避免和其他插件沖突。 激活環境: 這里可快速切換: 2. 安裝插件 可選擇安裝最新預覽版: 等待依賴安裝完成后重啟…

【動態規劃:路徑問題】最小路徑和 地下城游戲

最小路徑和(medium) 64. 最小路徑和 ? 給定一個包含非負整數的 m x n 網格 grid ,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。 ? **說明:**每次只能向下或者向右移動一步。 示例 1&#xff…

SQL詳細語法教程(七)核心優化

以下對 SQL 優化 涉及的關鍵場景(含 update 行鎖優化)進行極致詳細的拆解,從底層原理、執行流程到實戰代碼、避坑指南全維度覆蓋,搭配表格對比讓邏輯更清晰:一、SQL 優化 - COUNT 優化1. 底層原理:COUNT() …

Tomcat 的核心腳本catalina.sh 和 startup.sh的關系

catalina.sh 和 startup.sh 都是 Tomcat 的核心腳本,但它們的角色和使用場景有所不同。以下是它們的主要區別和適用場景:1. 功能區別腳本主要用途底層調用關系startup.sh一個快捷入口腳本,用于快速啟動 Tomcat(后臺模式&#xff0…

飛算JavaAI:簡易貪吃蛇小游戲

目錄先確定核心功能技術選型核心功能實現過程1. 數據模型設計2. 游戲界面和繪制邏輯3. 游戲主框架和事件處理飛算JavaAI在開發中的應用體驗可以進一步優化的地方作為Java課程的小作業,不想做太復雜的管理系統,就選了貪吃蛇這個經典小游戲。全程用Swing做…

如何保障內部網絡安全前提下,實現與外部互聯網之間的文件傳輸?

在數字化時代,企業網絡環境日益復雜,普遍采用“內外網隔離”的安全架構:內部辦公網承載業務系統與數據,外部互聯網則用于對外溝通與信息獲取。這種隔離有效抵御了外部攻擊,但也帶來了“信息孤島”問題——如何在保障內…

計算機視覺 圖片處理 在骨架化過程中,每次迭代都會從圖像的邊緣移除一層像素,直到只剩下單像素寬度的骨架

你說得對,if cv2.countNonZero(binary) 0: break 這個條件確實表示圖像中已經沒有非零像素,即圖像完全變為空白。這并不是骨架化完成的標志,而是表示圖像已經被腐蝕到沒有任何內容了。 在骨架化過程中,我們需要一個更合適的停止條…

rt-thread audio框架移植stm32 adc+dac,用wavplayer錄音和播放

D1 參考 rt-thread官方sdk中,正點原子stm32f429-atk-appollo的board中有audio文件夾,包括了mic/play的程序,wm8978的庫文件因為我們基于stm32h750內置adcdac設計,所以不需要wm8978.c/h。只需要移植drv_sound.c和drv_mic.c D2 工程…

AI重塑軟件測試:質量保障的下一站

軟件開發的世界變化飛快,系統越來越復雜,用戶的胃口越來越大,產品上線的壓力也越來越大。作為測試工程師,你是不是常常覺得傳統測試已經跟不上節奏了?手工測試累死人,自動化腳本維護到崩潰,測試…

【前端基礎知識系列六】React 項目基本框架及常見文件夾作用總結(圖文版)

在 React 開發中,一個清晰合理的項目結構不僅能提高開發效率,還能讓代碼更易于維護和擴展。尤其是在團隊協作中,統一的項目結構規范至關重要。本文將通過圖文結合的方式,詳細介紹 React 項目的基本框架以及常見文件夾的定義與作用…

0815 UDP通信協議TCP并發服務器

Part 1.思維導圖一.UDP通信協議1.原理服務器端:1.用socket函數創建一個套接字文件2.創建服務器端地址結構體并賦值3.用ford函數將套接字文件與地址結構體綁定4.創建接收客戶端地址結構體5.利用sendto和recvfrom函數傳輸和接收信息客戶端:1.用socket函數創…

一個基于純前端技術實現的五子棋游戲,無需后端服務,直接在瀏覽器中運行。

一 功能特性1.1 核心游戲功能- **標準五子棋規則**:1515棋盤,黑子(玩家)先手 - **AI對戰模式**:白子AI具有中等難度,會進行智能進攻和防守 - **勝負判定**:支持橫向、縱向、斜向五子連線獲勝 - **平局檢測**&#xff1…

HBuilderX升級,Vue2 scss 預編譯器默認已由 node-sass 更換為 dart-sass

目錄 一、問題描述 二、問題原因 三、問題解析及解決方案 一、問題描述 最近開發新項目,升級了HBuilderX版本到4.75,最近要在之前的項目添加功能的時候發現報錯,錯誤如下:Vue2 scss 預編譯器默認已由 node-sass 更換為 dart-sa…

像素風球球大作戰 HTML 游戲

像素風球球大作戰 HTML 游戲 下面是一個簡單的像素風格球球大作戰 HTML 游戲代碼&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

文件導出時無法獲取響應頭Content-Disposition的文件名

1. 為什么Content-Disposition無法獲取&#xff1f; 要拿到 Content-Disposition 里的 filename&#xff0c;可以用正則或者簡單的字符串解析。 瀏覽器默認不讓前端訪問非標準響應頭&#xff0c;Content-Disposition 需要后端顯式暴露。 在瀏覽器開發者工具 → Network → Re…

Leetcode 128. 最長連續序列 哈希

原題鏈接&#xff1a; Leetcode 128. 最長連續序列 解法1: map&#xff0c;不符合要求 class Solution { public:int longestConsecutive(vector<int>& nums) {if (nums.size()0) return 0;map<int,int> mp;for(auto x: nums){mp[x];}int pre;int l0,r0,res0;…

禾賽激光雷達AT128P/海康相機(2):基于歐幾里德聚類的激光雷達障礙物檢測

目錄 一、參考連接 二、實驗效果?編輯 三、安裝相應的 ros 依賴包 四、代碼驅動 4.1 代碼下載 4.2 代碼文件放置(請按照這個命名放置代碼) 4.3 代碼編譯 4.4 報錯 一、參考連接