亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 后端開發(fā) Python教程 ML 模型的數(shù)據(jù)預(yù)處理技術(shù)

ML 模型的數(shù)據(jù)預(yù)處理技術(shù)

Dec 03, 2024 am 10:39 AM

Data Preprocessing Techniques for ML Models

數(shù)據(jù)預(yù)處理是在將數(shù)據(jù)集用于機(jī)器學(xué)習(xí)或其他任務(wù)之前對數(shù)據(jù)集執(zhí)行某些操作或步驟的行為。數(shù)據(jù)預(yù)處理涉及清理、格式化或轉(zhuǎn)換數(shù)據(jù),以提高其質(zhì)量或確保其適合其主要目的(在本例中為訓(xùn)練模型)。干凈且高質(zhì)量的數(shù)據(jù)集可以增強(qiáng)機(jī)器學(xué)習(xí)模型的性能。

低質(zhì)量數(shù)據(jù)的常見問題包括:

  • 缺失值
  • 格式不一致
  • 重復(fù)值
  • 不相關(guān)的功能

在本文中,我將向您展示一些常見的數(shù)據(jù)預(yù)處理技術(shù),以準(zhǔn)備用于訓(xùn)練模型的數(shù)據(jù)集。您將需要 Python 的基本知識(shí)以及如何使用 Python 庫和框架。

要求:
為了充分利用本指南,需要滿足以下條件

  • Python 3.12
  • Jupyter Notebook 或您最喜歡的筆記本
  • Numpy
  • 熊貓
  • Scipy
  • Scikit 學(xué)習(xí)
  • 墨爾本住房數(shù)據(jù)集

您還可以在 Github 上查看這些 Jupyter 筆記本中每個(gè)代碼的輸出。

設(shè)置

如果您還沒有安裝Python,可以從Python網(wǎng)站下載并按照說明進(jìn)行安裝。

安裝 Python 后,安裝所需的庫

pip install numpy scipy pandas scikit-learn

安裝 Jupyter Notebook。

pip install notebook

安裝后,使用以下命令啟動(dòng) Jupyter Notebook

jupyter notebook

這將在您的默認(rèn)網(wǎng)絡(luò)瀏覽器中啟動(dòng) Jupyter Notebook。如果沒有,請檢查終端是否有可以手動(dòng)粘貼到瀏覽器中的鏈接。

從“文件”菜單打開一個(gè)新筆記本,導(dǎo)入所需的庫并運(yùn)行單元

import numpy as np
import pandas as pd
import scipy
import sklearn

前往墨爾本住房數(shù)據(jù)集網(wǎng)站并下載數(shù)據(jù)集。使用以下代碼將數(shù)據(jù)集加載到筆記本中。您可以復(fù)制計(jì)算機(jī)上的文件路徑以粘貼到 read_csv 函數(shù)中。您還可以將 csv 文件放在與筆記本相同的文件夾中,然后導(dǎo)入文件,如下所示。

data = pd.read_csv(r"melb_data.csv")

# View the first 5 columns of the dataset
data.head()

將數(shù)據(jù)分為訓(xùn)練集和驗(yàn)證集

from sklearn.model_selection import train_test_split

# Set the target
y = data['Price']

# Firstly drop categorical data types
melb_features = data.drop(['Price'], axis=1) #drop the target column

X = melb_features.select_dtypes(exclude=['object'])

# Divide data into training and validation sets
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)

您必須將數(shù)據(jù)拆分為訓(xùn)練集和驗(yàn)證集,以防止數(shù)據(jù)泄漏。因此,您對訓(xùn)練特征集執(zhí)行的任何預(yù)處理技術(shù)都與您對驗(yàn)證特征集執(zhí)行的預(yù)處理技術(shù)相同。

現(xiàn)在數(shù)據(jù)集已準(zhǔn)備好進(jìn)行處理!

數(shù)據(jù)清理

處理缺失值
數(shù)據(jù)集中的缺失值就像布料上的洞,應(yīng)該用來縫制裙子。衣服還沒做好就已經(jīng)被它弄壞了。

有 3 種方法來處理數(shù)據(jù)集中的缺失值。

  1. 刪除包含空單元格的行或列
pip install numpy scipy pandas scikit-learn

此方法的問題是您可能會(huì)丟失用于訓(xùn)練模型的有價(jià)值的信息。除非刪除的行或列中的大多數(shù)值丟失,否則無需刪除包含空單元格的行或列。

  1. 在空單元格中估算值 您可以使用該特定列中數(shù)據(jù)的平均值、中位數(shù)或眾數(shù)來估算或填充空單元格。 Scikit learn 中的 SimpleImputer 將用于估算空單元格中的值
pip install notebook
  1. 估算并通知 其工作原理是,您在空單元格中估算值,但同時(shí)創(chuàng)建一個(gè)列來指示該單元格最初為空。
jupyter notebook

重復(fù)刪除
重復(fù)的單元格意味著重復(fù)的數(shù)據(jù),它會(huì)影響模型的準(zhǔn)確性。對付它們的唯一方法就是扔掉它們。

import numpy as np
import pandas as pd
import scipy
import sklearn

處理異常值
異常值是與數(shù)據(jù)集中的其他值顯著不同的值。與其他數(shù)據(jù)值相比,它們可能異常高或異常低。它們可能是由于輸入錯(cuò)誤而出現(xiàn),也可能確實(shí)是異常值。

處理異常值非常重要,否則它們將導(dǎo)致數(shù)據(jù)分析或模型不準(zhǔn)確。檢測異常值的一種方法是計(jì)算 z 分?jǐn)?shù)。

它的工作方式是使用 z 分?jǐn)?shù)來檢查數(shù)據(jù)點(diǎn)是否距平均值 3 點(diǎn)或更多。此計(jì)算針對每個(gè)數(shù)據(jù)點(diǎn)進(jìn)行。如果數(shù)據(jù)點(diǎn)的 z 分?jǐn)?shù)等于 3 或更高值,則該數(shù)據(jù)點(diǎn)為異常值。

data = pd.read_csv(r"melb_data.csv")

# View the first 5 columns of the dataset
data.head()

數(shù)據(jù)轉(zhuǎn)換

標(biāo)準(zhǔn)化
您對特征進(jìn)行標(biāo)準(zhǔn)化,以便將它們描述為正態(tài)分布。

正態(tài)分布(也稱為高斯分布)是一種統(tǒng)計(jì)分布,其中平均值上方和下方的距離或分布大致相等。正態(tài)分布數(shù)據(jù)的數(shù)據(jù)點(diǎn)圖形形成鐘形曲線。

標(biāo)準(zhǔn)化數(shù)據(jù)的要點(diǎn)是您要使用的機(jī)器學(xué)習(xí)算法是否假設(shè)數(shù)據(jù)呈正態(tài)分布。一個(gè)例子是高斯樸素貝葉斯模型。

from sklearn.model_selection import train_test_split

# Set the target
y = data['Price']

# Firstly drop categorical data types
melb_features = data.drop(['Price'], axis=1) #drop the target column

X = melb_features.select_dtypes(exclude=['object'])

# Divide data into training and validation sets
X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)

標(biāo)準(zhǔn)化
標(biāo)準(zhǔn)化將數(shù)據(jù)集的特征轉(zhuǎn)換為均值 0 和標(biāo)準(zhǔn)差 1。此過程對每個(gè)特征進(jìn)行縮放,使其在數(shù)據(jù)中具有相似的范圍。這確保了每個(gè)功能對模型訓(xùn)練的貢獻(xiàn)均等。

在以下情況下使用標(biāo)準(zhǔn)化:

  • 數(shù)據(jù)中的特征具有不同的尺度或單位。
  • 您想要使用的機(jī)器學(xué)習(xí)模型基于距離或梯度優(yōu)化(例如線性回歸、邏輯回歸、K 均值聚類)。

您可以使用 sklearn 庫中的 StandardScaler() 來標(biāo)準(zhǔn)化特征。

pip install numpy scipy pandas scikit-learn

結(jié)論

數(shù)據(jù)預(yù)處理不僅僅是一個(gè)初步階段。這是構(gòu)建準(zhǔn)確的機(jī)器學(xué)習(xí)模型過程的一部分。它還可以進(jìn)行調(diào)整以滿足您正在使用的數(shù)據(jù)集的需求。

與大多數(shù)活動(dòng)一樣,熟能生巧。當(dāng)您繼續(xù)預(yù)處理數(shù)據(jù)時(shí),您的技能和模型都會(huì)得到提高。

我很想聽聽您對此的想法?

以上是ML 模型的數(shù)據(jù)預(yù)處理技術(shù)的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
Python類中的多態(tài)性 Python類中的多態(tài)性 Jul 05, 2025 am 02:58 AM

多態(tài)是Python面向?qū)ο缶幊讨械暮诵母拍?,指“一種接口,多種實(shí)現(xiàn)”,允許統(tǒng)一處理不同類型的對象。1.多態(tài)通過方法重寫實(shí)現(xiàn),子類可重新定義父類方法,如Animal類的speak()方法在Dog和Cat子類中有不同實(shí)現(xiàn)。2.多態(tài)的實(shí)際用途包括簡化代碼結(jié)構(gòu)、增強(qiáng)可擴(kuò)展性,例如圖形繪制程序中統(tǒng)一調(diào)用draw()方法,或游戲開發(fā)中處理不同角色的共同行為。3.Python實(shí)現(xiàn)多態(tài)需滿足:父類定義方法,子類重寫該方法,但不要求繼承同一父類,只要對象實(shí)現(xiàn)相同方法即可,這稱為“鴨子類型”。4.注意事項(xiàng)包括保持方

解釋Python發(fā)電機(jī)和迭代器。 解釋Python發(fā)電機(jī)和迭代器。 Jul 05, 2025 am 02:55 AM

迭代器是實(shí)現(xiàn)__iter__()和__next__()方法的對象,生成器是簡化版的迭代器,通過yield關(guān)鍵字自動(dòng)實(shí)現(xiàn)這些方法。1.迭代器每次調(diào)用next()返回一個(gè)元素,無更多元素時(shí)拋出StopIteration異常。2.生成器通過函數(shù)定義,使用yield按需生成數(shù)據(jù),節(jié)省內(nèi)存且支持無限序列。3.處理已有集合時(shí)用迭代器,動(dòng)態(tài)生成大數(shù)據(jù)或需惰性求值時(shí)用生成器,如讀取大文件時(shí)逐行加載。注意:列表等可迭代對象不是迭代器,迭代器到盡頭后需重新創(chuàng)建,生成器只能遍歷一次。

如何處理Python中的API身份驗(yàn)證 如何處理Python中的API身份驗(yàn)證 Jul 13, 2025 am 02:22 AM

處理API認(rèn)證的關(guān)鍵在于理解并正確使用認(rèn)證方式。1.APIKey是最簡單的認(rèn)證方式,通常放在請求頭或URL參數(shù)中;2.BasicAuth使用用戶名和密碼進(jìn)行Base64編碼傳輸,適合內(nèi)部系統(tǒng);3.OAuth2需先通過client_id和client_secret獲取Token,再在請求頭中帶上BearerToken;4.為應(yīng)對Token過期,可封裝Token管理類自動(dòng)刷新Token;總之,根據(jù)文檔選擇合適方式,并安全存儲(chǔ)密鑰信息是關(guān)鍵。

如何一次迭代兩個(gè)列表 如何一次迭代兩個(gè)列表 Jul 09, 2025 am 01:13 AM

在Python中同時(shí)遍歷兩個(gè)列表的常用方法是使用zip()函數(shù),它會(huì)按順序配對多個(gè)列表并以最短為準(zhǔn);若列表長度不一致,可使用itertools.zip_longest()以最長為準(zhǔn)并填充缺失值;結(jié)合enumerate()可同時(shí)獲取索引。1.zip()簡潔實(shí)用,適合成對數(shù)據(jù)迭代;2.zip_longest()處理不一致長度時(shí)可填充默認(rèn)值;3.enumerate(zip())可在遍歷時(shí)獲取索引,滿足多種復(fù)雜場景需求。

什么是Python迭代器? 什么是Python迭代器? Jul 08, 2025 am 02:56 AM

Inpython,IteratorSareObjectSthallowloopingThroughCollectionsByImplementing_iter __()和__next __()。1)iteratorsWiaTheIteratorProtocol,使用__ITER __()toreTurnterateratoratoranteratoratoranteratoratorAnterAnteratoratorant antheittheext__()

解釋Python斷言。 解釋Python斷言。 Jul 07, 2025 am 12:14 AM

Assert是Python用于調(diào)試的斷言工具,當(dāng)條件不滿足時(shí)拋出AssertionError。其語法為assert條件加可選錯(cuò)誤信息,適用于內(nèi)部邏輯驗(yàn)證如參數(shù)檢查、狀態(tài)確認(rèn)等,但不能用于安全或用戶輸入檢查,且應(yīng)配合清晰提示信息使用,僅限開發(fā)階段輔助調(diào)試而非替代異常處理。

什么是Python型提示? 什么是Python型提示? Jul 07, 2025 am 02:55 AM

typeHintsInpyThonsolverbromblemboyofambiguityandPotentialBugSindyNamalytyCodeByallowingDevelopsosteSpecefectifyExpectedTypes.theyenhancereadability,enablellybugdetection,andimprovetool.typehintsupport.typehintsareadsareadsareadsareadsareadsareadsareadsareadsareaddedusidocolon(

Python Fastapi教程 Python Fastapi教程 Jul 12, 2025 am 02:42 AM

要使用Python創(chuàng)建現(xiàn)代高效的API,推薦使用FastAPI;其基于標(biāo)準(zhǔn)Python類型提示,可自動(dòng)生成文檔,性能優(yōu)越。安裝FastAPI和ASGI服務(wù)器uvicorn后,即可編寫接口代碼。通過定義路由、編寫處理函數(shù)并返回?cái)?shù)據(jù),可以快速構(gòu)建API。FastAPI支持多種HTTP方法,并提供自動(dòng)生成的SwaggerUI和ReDoc文檔系統(tǒng)。URL參數(shù)可通過路徑定義捕獲,查詢參數(shù)則通過函數(shù)參數(shù)設(shè)置默認(rèn)值實(shí)現(xiàn)。合理使用Pydantic模型有助于提升開發(fā)效率和準(zhǔn)確性。

See all articles