首頁 >後端開發 >Python教學 >如何預處理資料集

如何預處理資料集

WBOY
WBOY原創
2024-07-30 18:03:17948瀏覽

How to preprocess your Dataset

簡介

泰坦尼克號資料集是資料科學和機器學習專案中使用的經典資料集。它包含有關泰坦尼克號乘客的信息,目標通常是預測哪些乘客在災難中倖存下來。在建立任何預測模型之前,預處理資料以確保資料乾淨且適合分析至關重要。這篇部落格文章將引導您完成使用 Python 預處理泰坦尼克號資料集的基本步驟。

第 1 步:載入資料

任何資料分析專案的第一步都是載入資料集。我們使用 pandas 函式庫讀取包含泰坦尼克號資料的 CSV 檔案。此資料集包括姓名、年齡、性別、機票、票價以及乘客是否倖存(Survived)等特徵。

import pandas as pd
import numpy as np

載入泰坦尼克號資料集

titanic = pd.read_csv('titanic.csv')
titanic.head()

了解數據

資料集包含以下與泰坦尼克號乘客相關的變數:

  • 生存:表示乘客是否倖存。

    • 0 = 否
    • 1 = 是
  • Pclass:乘客的機票艙位。

    • 1 = 一等
    • 2 = 二等
    • 3 = 三等
  • 性別:乘客的性別。

  • 年齡:乘客的年齡(以歲為單位)。

  • SibSp:泰坦尼克號上的兄弟姊妹或配偶數量。

  • Parch:泰坦尼克號上的父母或兒童人數。

  • :票號。

  • 票價:客運票價。

  • 客艙:客艙編號。

  • 登船:登船港。

    • C = 瑟堡
    • Q = 皇后鎮
    • S = 南安普敦

第 2 步:探索性資料分析 (EDA)

探索性資料分析 (EDA) 涉及檢查資料集以了解其結構以及不同變數之間的關係。此步驟有助於識別資料中的任何模式、趨勢或異常。

資料集概述

我們首先顯示資料集的前幾行並取得統計資訊摘要。這讓我們了解資料類型、值的範圍以及是否存在任何缺失值。

# Display the first few rows
print(titanic.head())

# Summary statistics
print(titanic.describe(include='all'))

第三步:資料清理

資料清理是處理缺失值、更正資料類型和消除任何不一致的過程。在泰坦尼克號資料集中,Age、Cabin 和 Embarked 等特徵存在缺失值。

處理缺失值

為了處理缺失值,我們可以用適當的值填充它們或刪除缺失資料的行/列。例如,我們可以用年齡中位數填滿缺少的 Age 值,並刪除缺少 Embarked 值的行。

# Fill missing age values with the mode
titanic['Age'].fillna(titanic['Age'].mode(), inplace=True)

# Drop rows with missing 'Embarked' values
titanic.dropna(subset=['Embarked'], inplace=True)

# Check remaining missing values
print(titanic.isnull().sum())

第四步:特徵工程

特徵工程涉及改造現有特徵以提高模型性能。此步驟可以包括對分類變數進行編碼以縮放數值特徵。

編碼分類變數

機器學習演算法需要數值輸入,因此我們需要將分類特徵轉換為數值特徵。我們可以對 Sex 和 Embarked 等功能使用 one-hot 編碼。

# Convert categorical features to numerical
from sklearn import preprocessing
le = preprocessing.LabelEncoder()

#fit the required column to be transformed
le.fit(df['Sex'])
df['Sex'] = le.transform(df['Sex'])

結論

預處理是任何資料科學專案中的關鍵步驟。在這篇文章中,我們介紹了載入資料、執行探索性資料分析、清理資料和特徵工程的基本步驟。這些步驟有助於確保我們的資料已準備好進行分析或模型建置。下一步是使用這些預處理的數據來建立預測模型並評估其性能。如需進一步了解,請查看我的 Colab 筆記本

透過遵循這些步驟,初學者可以在資料預處理方面打下堅實的基礎,為更進階的資料分析和機器學習任務奠定基礎。快樂編碼!

以上是如何預處理資料集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn