自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

終于把機(jī)器學(xué)習(xí)中的特征工程搞懂了?。?!

開(kāi)發(fā) 前端
在本文中,我們將探討關(guān)鍵的特征工程技術(shù),解釋其重要性,并提供具有實(shí)際應(yīng)用的 Python 代碼示例,以展示這些技術(shù)如何改進(jìn)你的機(jī)器學(xué)習(xí)模型。

今天給大家介紹一個(gè)機(jī)器學(xué)習(xí)中的關(guān)鍵概念,特征工程。

特征工程是機(jī)器學(xué)習(xí)中極為關(guān)鍵的一部分,涉及到如何通過(guò)預(yù)處理、轉(zhuǎn)換和組合原始數(shù)據(jù)來(lái)創(chuàng)建更適合模型訓(xùn)練的特征,以提高模型的表現(xiàn)和預(yù)測(cè)能力。特征工程的主要目的是從數(shù)據(jù)中提取出有助于模型更好理解和學(xué)習(xí)規(guī)律的特征。

在本文中,我們將探討關(guān)鍵的特征工程技術(shù),解釋其重要性,并提供具有實(shí)際應(yīng)用的 Python 代碼示例,以展示這些技術(shù)如何改進(jìn)你的機(jī)器學(xué)習(xí)模型。

為什么特征工程至關(guān)重要

特征工程可以

  1. 提高模型準(zhǔn)確性
    精心設(shè)計(jì)的特征有助于模型更好地理解問(wèn)題,從而做出更準(zhǔn)確的預(yù)測(cè)。
  2. 減少過(guò)度擬合
    通過(guò)選擇相關(guān)特征,模型避免從噪聲中學(xué)習(xí)。
  3. 使模型更易于解釋
    對(duì)人類理解更直觀的特征可以幫助解釋模型如何得出預(yù)測(cè)。

關(guān)鍵特征工程技術(shù)

現(xiàn)在,讓我們通過(guò)真實(shí)示例和 Python 代碼來(lái)了解幾種基本的特征工程技術(shù)。

1.處理缺失數(shù)據(jù)

現(xiàn)實(shí)世界的數(shù)據(jù)集通常包含缺失值。如何處理這些缺失值會(huì)極大地影響模型的性能。

真實(shí)示例

在醫(yī)療保健領(lǐng)域,患者記錄中可能會(huì)缺少年齡或病史條目。

填充缺失值有助于保留有價(jià)值的數(shù)據(jù)。

import pandas as pd
from sklearn.impute import SimpleImputer

# Sample healthcare data
data = {'age': [25, None, 45, None], 'blood_pressure': [120, 130, None, 140]}
df = pd.DataFrame(data)

# Impute missing values with mean
imputer = SimpleImputer(strategy='mean')
df_imputed = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)

print(df_imputed)

2.特征縮放

特征縮放可確保量級(jí)較大的特征不會(huì)超過(guò)量級(jí)較小的特征。

這對(duì)于基于距離的算法(如 k-最近鄰和支持向量機(jī))至關(guān)重要。

真實(shí)示例

在財(cái)務(wù)數(shù)據(jù)中,收入和貸款金額等特征差異很大。

如果不進(jìn)行縮放,模型可能會(huì)因?yàn)橘J款金額的值較大而賦予其更大的權(quán)重。

from sklearn.preprocessing import StandardScaler
# Sample financial data (income in thousands, loan in thousands)
df = pd.DataFrame({'income': [50, 100, 150], 'loan_amount': [200, 300, 400]})

# Standardize the features
scaler = StandardScaler()
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)

print(df_scaled)

3.特征編碼

許多機(jī)器學(xué)習(xí)算法無(wú)法直接處理分類數(shù)據(jù)(例如顏色或國(guó)家)。特征編碼將分類數(shù)據(jù)轉(zhuǎn)換為模型可以理解的數(shù)字格式。

真實(shí)示例:

在電子商務(wù)數(shù)據(jù)集中,電子產(chǎn)品、家具和服裝等產(chǎn)品類別需要編碼為數(shù)字格式,以便機(jī)器學(xué)習(xí)模型進(jìn)行處理。

df = pd.DataFrame({'product_category': ['electronics', 'clothing', 'furniture']})

# One-hot encoding for product categories
df_encoded = pd.get_dummies(df)

print(df_encoded)

4.特征轉(zhuǎn)換

有時(shí),數(shù)據(jù)分布會(huì)出現(xiàn)偏差,這會(huì)影響機(jī)器學(xué)習(xí)模型的性能。

對(duì)數(shù)變換等特征變換技術(shù)可以減少偏差并使數(shù)據(jù)更加正常。

真實(shí)示例:

在房地產(chǎn)行業(yè),房?jī)r(jià)可能會(huì)有很大差異,當(dāng)數(shù)據(jù)偏差較小時(shí),大多數(shù)模型的表現(xiàn)會(huì)更好。對(duì)數(shù)變換有助于規(guī)范這些分布。

import numpy as np

# Sample real estate prices
df = pd.DataFrame({'price': [100000, 300000, 500000, 1000000]})

# Apply log transformation to reduce skewness
df['log_price'] = np.log(df['price'])

print(df)

5.分箱或離散化

分箱將連續(xù)數(shù)據(jù)轉(zhuǎn)換為離散類別或箱。

當(dāng)特征和目標(biāo)變量之間沒(méi)有線性關(guān)系時(shí),這尤其有用。

真實(shí)示例:

在營(yíng)銷中,可以將年齡分為不同的組別(例如 18-25 歲、26-35 歲等),從而創(chuàng)建有助于細(xì)分客戶以進(jìn)行有針對(duì)性的廣告的類別。

df = pd.DataFrame({'age': [20, 35, 45, 65]})

# Bin ages into categories
df['age_group'] = pd.cut(df['age'], bins=[0, 25, 45, 65, 100], labels=['Young', 'Adult', 'Middle-aged', 'Senior'])

print(df)

6.降維

高維數(shù)據(jù)集可能會(huì)使機(jī)器學(xué)習(xí)模型不堪重負(fù),導(dǎo)致過(guò)度擬合。

降維技術(shù)(如 PCA)可以減少特征數(shù)量,同時(shí)保留大部分信息。

真實(shí)示例:

在遺傳學(xué)中,需要測(cè)量數(shù)千個(gè)基因,降維有助于識(shí)別最具信息量的基因,同時(shí)忽略冗余基因。

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# Sample genetics data
df = pd.DataFrame({'gene1': [1.5, 2.5, 3.5], 'gene2': [2.1, 3.2, 4.5], 'gene3': [3.1, 4.1, 5.2], 'gene4': [1.2, 1.8, 2.5]})

# Standardize the data
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)

# Apply PCA to reduce dimensions from 4 to 2
pca = PCA(n_components=2)
df_pca = pd.DataFrame(pca.fit_transform(df_scaled))

print(df_pca)

7.特征選擇

并非所有特征都對(duì)預(yù)測(cè)有用。

特征選擇技術(shù)有助于識(shí)別最相關(guān)的特征,減少噪音并提高模型的性能。

真實(shí)示例:

在客戶行為分析中,年齡和購(gòu)買歷史等特征可能比電子郵件點(diǎn)擊等其他特征更重要。

特征選擇有助于關(guān)注最具預(yù)測(cè)性的特征。

from sklearn.linear_model import LogisticRegression
from sklearn.feature_selection import RFE

# Sample data
X = pd.DataFrame({'age': [25, 30, 35, 40], 'purchase_history': [1, 0, 1, 0], 'click_rate': [0.1, 0.2, 0.15, 0.3]})
y = [1, 0, 1, 0]

# Logistic Regression model for feature selection
model = LogisticRegression()

# Recursive Feature Elimination (RFE)
rfe = RFE(model, n_features_to_select=2)
fit = rfe.fit(X, y)

# Get selected features
print(f"Selected Features: {X.columns[fit.support_]}")

8.基于領(lǐng)域知識(shí)的特征創(chuàng)建

有時(shí),最具預(yù)測(cè)性的特征來(lái)自領(lǐng)域知識(shí)。根據(jù)行業(yè)見(jiàn)解結(jié)合原始特征可以得到更好的模型。

真實(shí)示例:

在銀行業(yè),通過(guò)將貸款金額除以收入來(lái)創(chuàng)建債務(wù)收入比,可以為信用評(píng)分模型提供比單獨(dú)使用任何一個(gè)特征更強(qiáng)大的預(yù)測(cè)能力。

df = pd.DataFrame({'income': [50000, 80000, 120000], 'loan_amount': [20000, 40000, 50000]})

# Create a debt-to-income ratio feature
df['debt_to_income_ratio'] = df['loan_amount'] / df['income']

print(df)

9.時(shí)間特征工程

通過(guò)提取時(shí)間序列數(shù)據(jù)中有關(guān)時(shí)間的日、月或季節(jié)等特征,我們可以捕捉重要的時(shí)間相關(guān)趨勢(shì)。

真實(shí)示例

在零售業(yè),可以通過(guò)從銷售數(shù)據(jù)中提取基于時(shí)間的特征來(lái)捕捉季節(jié)性購(gòu)物趨勢(shì)。

df = pd.DataFrame({'date': pd.to_datetime(['2021-01-01', '2022-05-15', '2023-08-23'])})

# Extract year, month, and day of week
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day_of_week'] = df['date'].dt.dayofweek

print(df)


責(zé)任編輯:武曉燕 來(lái)源: 程序員學(xué)長(zhǎng)
相關(guān)推薦

2024-10-08 15:09:17

2024-10-28 15:52:38

機(jī)器學(xué)習(xí)特征工程數(shù)據(jù)集

2024-10-28 00:00:10

機(jī)器學(xué)習(xí)模型程度

2024-12-26 00:34:47

2025-01-20 09:21:00

2024-10-30 08:23:07

2025-01-15 11:25:35

2024-09-18 16:42:58

機(jī)器學(xué)習(xí)評(píng)估指標(biāo)模型

2024-11-05 12:56:06

機(jī)器學(xué)習(xí)函數(shù)MSE

2024-08-23 09:06:35

機(jī)器學(xué)習(xí)混淆矩陣預(yù)測(cè)

2024-10-14 14:02:17

機(jī)器學(xué)習(xí)評(píng)估指標(biāo)人工智能

2024-11-25 08:20:35

2025-01-07 12:55:28

2025-01-20 09:00:00

2025-02-17 13:09:59

深度學(xué)習(xí)模型壓縮量化

2024-07-17 09:32:19

2024-09-23 09:12:20

2025-03-03 01:50:00

深度學(xué)習(xí)微調(diào)遷移學(xué)習(xí)

2024-08-01 08:41:08

2024-10-16 07:58:48

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)