0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)算法學(xué)習(xí)之特征工程2

jf_78858299 ? 來(lái)源:人工智能大講堂 ? 2023-04-19 11:38 ? 次閱讀

縮放和歸一化

縮放和歸一化是特征工程中的重要步驟,以確保特征具有類似的比例和范圍。這可以幫助改善一些機(jī)器學(xué)習(xí)算法的性能,并使優(yōu)化過(guò)程更快。以下是用于縮放和歸一化的一些常見技術(shù):

1.標(biāo)準(zhǔn)化:標(biāo)準(zhǔn)化將特征縮放,使其具有零均值和單位方差。這通過(guò)從每個(gè)值中減去均值,然后將其除以標(biāo)準(zhǔn)差來(lái)完成。結(jié)果值將具有零均值和單位方差。

以下是使用 scikit-learn 的標(biāo)準(zhǔn)化示例:

from sklearn.preprocessing import StandardScaler


# Create a StandardScaler object
scaler = StandardScaler()


# Fit and transform the data
X_scaled = scaler.fit_transform(X)

2.最小-最大縮放:最小-最大縮放將特征縮放到一個(gè)固定的范圍,通常在0和1之間。這通過(guò)從每個(gè)值中減去最小值,然后除以范圍來(lái)完成。

以下是使用 scikit-learn 的最小-最大縮放示例:

from sklearn.preprocessing import MinMaxScaler


# Create a MinMaxScaler object
scaler = MinMaxScaler()


# Fit and transform the data
X_scaled = scaler.fit_transform(X)

圖片

Fig.4 — Standardization and Normalization

3.魯棒縮放:魯棒縮放與標(biāo)準(zhǔn)化類似,但它使用中位數(shù)和四分位距代替均值和標(biāo)準(zhǔn)差。這使得它對(duì)數(shù)據(jù)中的異常值更加魯棒。

以下是使用 scikit-learn 的魯棒縮放示例:

from sklearn.preprocessing import RobustScaler


# Create a RobustScaler object
scaler = RobustScaler()


# Fit and transform the data
X_scaled = scaler.fit_transform(X)

4.歸一化:歸一化將每個(gè)觀測(cè)值縮放為單位范數(shù),這意味著每個(gè)特征值的平方和為1。這對(duì)于某些需要所有樣本具有類似比例的算法非常有用。

以下是使用 scikit-learn 進(jìn)行歸一化的示例:

from sklearn.preprocessing import Normalizer


# Create a Normalizer object
scaler = Normalizer()


# Fit and transform the data
X_scaled = scaler.fit_transform(X)

創(chuàng)建新特征

創(chuàng)建新特征是特征工程中的一個(gè)重要步驟,它涉及從現(xiàn)有數(shù)據(jù)中創(chuàng)建新的變量或列。這可以幫助捕捉特征之間的復(fù)雜關(guān)系并提高模型的準(zhǔn)確性。

以下是創(chuàng)建新特征的一些技術(shù):

1.交互特征:交互特征是通過(guò)將兩個(gè)或多個(gè)現(xiàn)有特征相乘來(lái)創(chuàng)建的。這可以幫助捕捉特征的聯(lián)合效應(yīng)并揭示數(shù)據(jù)中的新模式。例如,如果我們有兩個(gè)特征,“年齡”和“收入”,我們可以通過(guò)將這兩個(gè)特征相乘來(lái)創(chuàng)建一個(gè)名為“age_income”的新交互特征。

以下是使用 Python 中的 Pandas 創(chuàng)建交互特征的示例:

import pandas as pd


# create a sample data frame
data = pd.DataFrame({'age': [25, 30, 35],
                     'income': [50000, 60000, 70000]})


# create a new interaction feature
data['age_income'] = data['age'] * data['income']


# display the updated data frame
print(data)

2.多項(xiàng)式特征:多項(xiàng)式特征是通過(guò)將現(xiàn)有特征提高到更高的冪來(lái)創(chuàng)建的。這可以幫助捕捉特征之間的非線性關(guān)系并提高模型的準(zhǔn)確性。例如,如果我們有一個(gè)特征“年齡”,我們可以通過(guò)將這個(gè)特征平方來(lái)創(chuàng)建一個(gè)新的多項(xiàng)式特征稱為“age_squared”。

以下是使用 Python 中的 Scikit-learn 創(chuàng)建多項(xiàng)式特征的示例:

from sklearn.preprocessing import PolynomialFeatures
import numpy as np


# create a sample data set
X = np.array([[1, 2],
              [3, 4]])


# create polynomial features up to degree 2
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)


# display the updated feature matrix
print(X_poly)

3.分箱:分箱將連續(xù)值分組為離散類別。這可以幫助捕捉非線性關(guān)系并減少數(shù)據(jù)中異常值的影響。例如,如果我們有一個(gè)特征“年齡”,我們可以通過(guò)將年齡分組為不同的類別,例如“0-18”、“18-25”、“25-35”、“35-50”和“50+”,來(lái)創(chuàng)建一個(gè)名為“age_group”的新分箱特征。

以下是使用 Python 中的 Pandas 創(chuàng)建分箱特征的示例:

import pandas as pd


# create a sample data frame
data = pd.DataFrame({'age': [20, 25, 30, 35, 40, 45, 50, 55]})


# create bins for different age groups
bins = [0, 18, 25, 35, 50, float('inf')]
labels = ['0-18', '18-25', '25-35', '35-50', '50+']
data['age_group'] = pd.cut(data['age'], bins=bins, labels=labels)


# display the updated data frame
print(data)

處理不平衡數(shù)據(jù)

處理不平衡數(shù)據(jù)是機(jī)器學(xué)習(xí)中的一個(gè)重要方面。不平衡數(shù)據(jù)是指目標(biāo)變量的分布不均勻,其中一個(gè)類別相對(duì)于另一個(gè)類別的樣本數(shù)量較少。這可能會(huì)導(dǎo)致模型對(duì)多數(shù)類別產(chǎn)生偏差,并且模型可能在少數(shù)類別上表現(xiàn)不佳。一些處理不平衡數(shù)據(jù)的技術(shù)包括:

1.過(guò)采樣(Upsampling):過(guò)采樣通過(guò)對(duì)現(xiàn)有樣本進(jìn)行替換性重采樣來(lái)為少數(shù)類別創(chuàng)建更多的樣本。可以使用 sklearn.utils 模塊中的 resample 函數(shù)來(lái)實(shí)現(xiàn)。

from sklearn.utils import resample


# Upsample minority class
X_upsampled, y_upsampled = resample(X_minority, y_minority, replace=True, n_samples=len(X_majority), random_state=42)

2.降采樣(Downsampling):降采樣通過(guò)從多數(shù)類別中刪除一些樣本來(lái)平衡分布??梢允褂?sklearn.utils 模塊中的 resample 函數(shù)來(lái)實(shí)現(xiàn)。

from sklearn.utils import resample


# Downsample majority class
X_downsampled, y_downsampled = resample(X_majority, y_majority, replace=False, n_samples=len(X_minority), random_state=42)

Fig.4 — UnderSampling and OverSampling

3.合成少數(shù)類過(guò)采樣技術(shù)(SMOTE):SMOTE 涉及基于現(xiàn)有樣本為少數(shù)類創(chuàng)建合成樣本。這可以使用 imblearn.over_sampling 模塊中的 SMOTE 函數(shù)來(lái)完成。

from imblearn.over_sampling import SMOTE


# Use SMOTE to upsample minority class
sm = SMOTE(random_state=42)
X_resampled, y_resampled = sm.fit_resample(X, y)

4.類別權(quán)重(Class Weighting):類別權(quán)重將權(quán)重分配給模型中的每個(gè)類別,以考慮不平衡性??梢允褂媚P椭械?class_weight 參數(shù)來(lái)實(shí)現(xiàn)。

from sklearn.linear_model import LogisticRegression


# Use class weighting to handle imbalance
clf = LogisticRegression(class_weight='balanced', random_state=42)
clf.fit(X_train, y_train)

5.異常檢測(cè)(Anomaly Detection):異常檢測(cè)涉及識(shí)別數(shù)據(jù)中的異常值并將其刪除。可以使用 sklearn.ensemble 模塊中的 IsolationForest 函數(shù)來(lái)實(shí)現(xiàn)。異常檢測(cè)是在數(shù)據(jù)集中識(shí)別與預(yù)期或正常行為顯著偏離的罕見事件或觀測(cè)值。在不平衡數(shù)據(jù)的情況下,其中一個(gè)類別的觀測(cè)值數(shù)量遠(yuǎn)低于另一個(gè)類別,可以使用異常檢測(cè)來(lái)識(shí)別和標(biāo)記少數(shù)類別中的罕見觀測(cè)值為異常值。這可以幫助平衡數(shù)據(jù)集并提高機(jī)器學(xué)習(xí)模型的性能。

在不平衡數(shù)據(jù)中進(jìn)行異常檢測(cè)的一種常見方法是使用聚類等無(wú)監(jiān)督學(xué)習(xí)技術(shù),將少數(shù)類別的觀測(cè)值基于其相似性聚類成不同的組。不屬于這些聚類之一的少數(shù)類別觀測(cè)值可以被標(biāo)記為異常值。

另一種方法是使用單類別分類等監(jiān)督學(xué)習(xí)技術(shù),其中使用多數(shù)類別數(shù)據(jù)訓(xùn)練模型來(lái)學(xué)習(xí)數(shù)據(jù)的正常行為。然后將與學(xué)習(xí)到的正常行為顯著偏離的少數(shù)類別觀測(cè)值標(biāo)記為異常值。

from sklearn.ensemble import IsolationForest


# Use anomaly detection to handle imbalance
clf = IsolationForest(random_state=42)
clf.fit(X_train)
X_train = X_train[clf.predict(X_train) == 1]
y_train = y_train[clf.predict(X_train) == 1]

6.成本敏感學(xué)習(xí)(Cost-Sensitive Learning):成本敏感學(xué)習(xí)將不同類型的錯(cuò)誤分配不同的成本以考慮不平衡性。可以使用模型中的 sample_weight 參數(shù)來(lái)實(shí)現(xiàn)。

在成本敏感學(xué)習(xí)中,模型會(huì)為每個(gè)類別分配一個(gè)成本權(quán)重。這些成本權(quán)重反映了在模型中犯錯(cuò)的代價(jià)。通常,少數(shù)類別的成本權(quán)重比多數(shù)類別的成本權(quán)重高,以強(qiáng)制模型更加關(guān)注少數(shù)類別。這可以通過(guò)調(diào)整 sample_weight 參數(shù)來(lái)實(shí)現(xiàn)。

from sklearn.tree import DecisionTreeClassifier


# Use cost-sensitive learning to handle imbalance
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train, sample_weight=class_weights)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    920

    瀏覽量

    54707
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132165
  • 預(yù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    10464
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器學(xué)習(xí)算法特征工程與意義詳解

    1、特征工程與意義 特征就是從數(shù)據(jù)中抽取出來(lái)的對(duì)結(jié)果預(yù)測(cè)有用的信息。 特征工程是使用專業(yè)知識(shí)背景知識(shí)和技巧處理數(shù)據(jù),是得
    發(fā)表于 10-08 15:24 ?2831次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法</b>的<b class='flag-5'>特征</b><b class='flag-5'>工程</b>與意義詳解

    機(jī)器算法學(xué)習(xí)比較

    轉(zhuǎn)本文主要回顧下幾個(gè)常用算法的適應(yīng)場(chǎng)景及其優(yōu)缺點(diǎn)!機(jī)器學(xué)習(xí)算法太多了,分類、回歸、聚類、推薦、圖像識(shí)別領(lǐng)域等等,要想找到一個(gè)合適算法真的不容
    發(fā)表于 09-27 10:48

    貪心算法學(xué)習(xí)

    算法學(xué)習(xí)之路——貪心
    發(fā)表于 09-04 07:17

    模擬退火的算法學(xué)習(xí)

    模擬退火算法學(xué)習(xí)
    發(fā)表于 06-16 11:02

    有感FOC算法學(xué)習(xí)與實(shí)現(xiàn)總結(jié)

    原文:https://blog.csdn.net/u010632165/article/details/103656254文章目錄基于STM32的有感FOC算法學(xué)習(xí)與實(shí)現(xiàn)總結(jié)1 前言2 FOC算法
    發(fā)表于 07-05 06:45

    機(jī)器學(xué)習(xí)特征工程的五個(gè)方面優(yōu)點(diǎn)

    特征工程是用數(shù)學(xué)轉(zhuǎn)換的方法將原始輸入數(shù)據(jù)轉(zhuǎn)換為用于機(jī)器學(xué)習(xí)模型的新特征。特征
    的頭像 發(fā)表于 03-15 16:57 ?3871次閱讀

    SVPWM的原理與算法學(xué)習(xí)課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是SVPWM的原理與算法學(xué)習(xí)課件免費(fèi)下載包括了:SVPWM原理,SVPWM算法,SVPWM的Matlab仿真,SVPWM的DSP實(shí)現(xiàn)。
    發(fā)表于 03-08 08:00 ?23次下載
    SVPWM的原理與<b class='flag-5'>算法學(xué)習(xí)</b>課件免費(fèi)下載

    機(jī)器學(xué)習(xí)算法學(xué)習(xí)特征工程1

    特征工程機(jī)器學(xué)習(xí)過(guò)程中的關(guān)鍵步驟,涉及將原始數(shù)據(jù)轉(zhuǎn)換為機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 04-19 11:38 ?736次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法學(xué)習(xí)</b><b class='flag-5'>之</b><b class='flag-5'>特征</b><b class='flag-5'>工程</b>1

    機(jī)器學(xué)習(xí)算法學(xué)習(xí)特征工程3

    特征工程機(jī)器學(xué)習(xí)過(guò)程中的關(guān)鍵步驟,涉及將原始數(shù)據(jù)轉(zhuǎn)換為機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 04-19 11:38 ?933次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法學(xué)習(xí)</b><b class='flag-5'>之</b><b class='flag-5'>特征</b><b class='flag-5'>工程</b>3

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    ? 一、機(jī)器學(xué)習(xí)基礎(chǔ)概念 ? 關(guān)于數(shù)據(jù) ? 機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相
    的頭像 發(fā)表于 05-28 11:29 ?1153次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典<b class='flag-5'>算法</b>與應(yīng)用

    機(jī)器學(xué)習(xí)算法匯總 機(jī)器學(xué)習(xí)算法分類 機(jī)器學(xué)習(xí)算法模型

    機(jī)器學(xué)習(xí)算法匯總 機(jī)器學(xué)習(xí)算法分類 機(jī)器
    的頭像 發(fā)表于 08-17 16:11 ?1004次閱讀

    機(jī)器學(xué)習(xí)算法總結(jié) 機(jī)器學(xué)習(xí)算法是什么 機(jī)器學(xué)習(xí)算法優(yōu)缺點(diǎn)

    機(jī)器學(xué)習(xí)算法總結(jié) 機(jī)器學(xué)習(xí)算法是什么?機(jī)器
    的頭像 發(fā)表于 08-17 16:11 ?1699次閱讀

    機(jī)器學(xué)習(xí)算法入門 機(jī)器學(xué)習(xí)算法介紹 機(jī)器學(xué)習(xí)算法對(duì)比

    機(jī)器學(xué)習(xí)算法入門 機(jī)器學(xué)習(xí)算法介紹 機(jī)器
    的頭像 發(fā)表于 08-17 16:27 ?890次閱讀

    機(jī)器學(xué)習(xí)有哪些算法?機(jī)器學(xué)習(xí)分類算法有哪些?機(jī)器學(xué)習(xí)預(yù)判有哪些算法?

    機(jī)器學(xué)習(xí)有哪些算法機(jī)器學(xué)習(xí)分類算法有哪些?機(jī)器
    的頭像 發(fā)表于 08-17 16:30 ?1884次閱讀

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)預(yù)處理與特征工程

    機(jī)器學(xué)習(xí)的整個(gè)流程中,數(shù)據(jù)預(yù)處理與特征工程是兩個(gè)至關(guān)重要的步驟。它們直接決定了模型的輸入質(zhì)量,進(jìn)而影響模型的訓(xùn)練效果和泛化能力。本文將從數(shù)據(jù)預(yù)處理和
    的頭像 發(fā)表于 07-09 15:57 ?232次閱讀