特征工程預(yù)案_第1頁
特征工程預(yù)案_第2頁
特征工程預(yù)案_第3頁
特征工程預(yù)案_第4頁
特征工程預(yù)案_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

特征工程預(yù)案一、特征工程概述

特征工程是機(jī)器學(xué)習(xí)領(lǐng)域中的核心環(huán)節(jié),旨在從原始數(shù)據(jù)中提取或構(gòu)造出對模型預(yù)測能力有顯著提升的特征。一個好的特征工程預(yù)案能夠顯著提高模型的準(zhǔn)確性和效率。本預(yù)案將詳細(xì)介紹特征工程的定義、重要性、基本流程以及實(shí)施步驟。

(一)特征工程的定義

特征工程是指通過數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造等方法,將原始數(shù)據(jù)轉(zhuǎn)化為更適合機(jī)器學(xué)習(xí)模型處理的形式的過程。

(二)特征工程的重要性

1.提高模型性能:合理的特征能夠顯著提升模型的預(yù)測準(zhǔn)確性和泛化能力。

2.降低數(shù)據(jù)維度:通過特征選擇,可以減少數(shù)據(jù)維度,降低計算復(fù)雜度。

3.增強(qiáng)模型可解釋性:精心設(shè)計的特征能夠使模型的決策過程更加透明。

二、特征工程的基本流程

特征工程通常包括以下步驟:數(shù)據(jù)探索、數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造和特征評估。

(一)數(shù)據(jù)探索

1.統(tǒng)計分析:計算數(shù)據(jù)的均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計指標(biāo)。

2.可視化分析:通過直方圖、散點(diǎn)圖等可視化工具了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù),識別冗余特征。

(二)數(shù)據(jù)預(yù)處理

1.缺失值處理:使用均值、中位數(shù)或眾數(shù)填充缺失值,或采用插值法。

2.異常值處理:通過箱線圖識別異常值,并進(jìn)行剔除或修正。

3.數(shù)據(jù)標(biāo)準(zhǔn)化:將數(shù)據(jù)縮放到統(tǒng)一范圍,如使用Z-score標(biāo)準(zhǔn)化。

(三)特征選擇

1.過濾法:基于統(tǒng)計指標(biāo)(如相關(guān)系數(shù)、卡方檢驗(yàn))選擇特征。

2.包裹法:通過模型性能評估選擇特征,如遞歸特征消除。

3.嵌入法:在模型訓(xùn)練過程中自動選擇特征,如Lasso回歸。

(四)特征構(gòu)造

1.組合特征:通過特征相加、相乘等方式構(gòu)造新特征。

2.變換特征:使用對數(shù)、平方根等函數(shù)轉(zhuǎn)換特征分布。

3.交互特征:構(gòu)造特征之間的交互項(xiàng),如多項(xiàng)式特征。

(五)特征評估

1.交叉驗(yàn)證:使用交叉驗(yàn)證評估特征集的泛化能力。

2.模型性能:通過準(zhǔn)確率、召回率等指標(biāo)評估特征效果。

3.可視化分析:通過特征重要性圖等可視化工具評估特征貢獻(xiàn)。

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

1.加載數(shù)據(jù):使用Pandas等工具加載原始數(shù)據(jù)集。

2.數(shù)據(jù)清洗:處理缺失值、異常值和重復(fù)值。

3.數(shù)據(jù)分割:將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集。

(二)特征工程

1.描述性統(tǒng)計:計算特征的均值、中位數(shù)、標(biāo)準(zhǔn)差等。

2.數(shù)據(jù)可視化:繪制直方圖、散點(diǎn)圖和箱線圖,了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù)矩陣,識別高相關(guān)性特征。

(三)特征預(yù)處理

1.缺失值填充:使用均值或中位數(shù)填充缺失值。

2.數(shù)據(jù)標(biāo)準(zhǔn)化:使用Z-score標(biāo)準(zhǔn)化將數(shù)據(jù)縮放到[-1,1]范圍。

3.異常值處理:剔除或修正箱線圖識別的異常值。

(四)特征選擇

1.過濾法:使用相關(guān)系數(shù)篩選出與目標(biāo)變量相關(guān)性較高的特征。

2.包裹法:使用遞歸特征消除(RFE)選擇特征。

3.模型評估:在邏輯回歸模型上評估特征選擇效果。

(五)特征構(gòu)造

1.組合特征:構(gòu)造特征之間的相加和相乘組合。

2.變換特征:對偏態(tài)分布特征使用對數(shù)變換。

3.交互特征:構(gòu)造多項(xiàng)式特征,增加特征維度。

(六)特征評估

1.交叉驗(yàn)證:使用5折交叉驗(yàn)證評估特征集的性能。

2.模型性能:比較不同特征集在邏輯回歸模型上的準(zhǔn)確率。

3.特征重要性:繪制特征重要性圖,識別關(guān)鍵特征。

本文由ai生成初稿,人工編輯修改

---

(續(xù))

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

這是特征工程的第一步,為后續(xù)所有操作奠定基礎(chǔ)。此階段的核心是獲取可用、干凈的數(shù)據(jù),并劃分為合適的子集。

1.加載數(shù)據(jù):

使用如Pandas庫中的`read_csv()`、`read_excel()`、`read_sql()`等函數(shù),根據(jù)數(shù)據(jù)源類型加載數(shù)據(jù)。

確保數(shù)據(jù)文件路徑正確,處理好文件編碼問題(如UTF-8,GBK)。

加載后,立即使用`head()`,`info()`,`describe()`等方法初步查看數(shù)據(jù)結(jié)構(gòu)、非空值數(shù)量、數(shù)據(jù)類型及基本統(tǒng)計信息。

2.數(shù)據(jù)清洗:原始數(shù)據(jù)往往包含各種“臟”信息,需要仔細(xì)清理。

處理缺失值:

識別缺失值:使用`isnull()`或`isna()`結(jié)合`sum()`統(tǒng)計各列缺失值數(shù)量。也可用`missingno`庫進(jìn)行可視化缺失情況。

決策依據(jù):根據(jù)缺失比例(如<5%)、缺失機(jī)制(隨機(jī)、非隨機(jī))、特征重要性決定處理方式。

填充策略:

均值/中位數(shù)/眾數(shù)填充:適用于數(shù)值型特征,特別是當(dāng)數(shù)據(jù)呈偏態(tài)分布時優(yōu)先考慮中位數(shù)。對于類別型特征,填充眾數(shù)。

插值法:如線性插值、時間序列插值(適用于有序或時間數(shù)據(jù))。

模型預(yù)測填充:使用其他非缺失特征訓(xùn)練模型預(yù)測缺失值。

創(chuàng)建缺失指示特征:在填充值的基礎(chǔ)上,額外創(chuàng)建一個布爾型特征,標(biāo)示原始值是否缺失(例如,填充均值后,新增一列`feature_is_missing`值為`True`如果原始值是缺失的,否則`False`)。這有助于模型捕捉缺失本身的信息。

刪除策略:當(dāng)特征缺失比例過高(如>30%-50%,具體閾值視情況而定)或缺失機(jī)制明確與非目標(biāo)變量相關(guān)時,考慮刪除該特征。樣本缺失過多時,考慮刪除整個樣本。

處理重復(fù)值:

識別重復(fù):使用`duplicated()`方法找出重復(fù)行。

處理:通常保留第一行或最后一行,刪除其余重復(fù)行,使用`drop_duplicates()`方法。

處理異常值:

識別:常用箱線圖(Boxplot)可視化異常值。計算Z-score(標(biāo)準(zhǔn)差倍數(shù)),通常|Z|>3視為異常。對于類別特征,可通過頻率分析或可視化(如條形圖)識別出現(xiàn)頻率極低的類別作為潛在異常。

處理策略:

刪除:直接刪除包含異常值的樣本。適用于異常值極少且與目標(biāo)無關(guān)的情況。

替換:將異常值替換為邊界值(如本特征的最小值或最大值)、中位數(shù)或均值。適用于異常值可能為數(shù)據(jù)錄入錯誤的情況。

限制:將超出合理范圍的值設(shè)為該范圍的上限或下限(如使用`np.clip()`)。

變換:對數(shù)變換、平方根變換等可以緩解極端值的影響。

單獨(dú)建模:如果異常值樣本量較大且具有獨(dú)特性,可考慮將其視為一個單獨(dú)的類別處理。

3.數(shù)據(jù)分割:

目的:將數(shù)據(jù)集劃分為訓(xùn)練集(用于模型訓(xùn)練)、驗(yàn)證集(用于超參數(shù)調(diào)優(yōu)和模型選擇)和測試集(用于最終模型評估)。

比例:常見的劃分比例是6:2:2,或7:2:1。時間序列數(shù)據(jù)需按時間順序劃分,不能打亂。

方法:使用`train_test_split`函數(shù)(需設(shè)置`random_state`保證可復(fù)現(xiàn)性)進(jìn)行隨機(jī)分割。對于時間序列,應(yīng)先按時間排序,再分割。

(二)特征工程

在數(shù)據(jù)清洗基礎(chǔ)上,開始深入挖掘數(shù)據(jù),提取和轉(zhuǎn)換特征。

1.描述性統(tǒng)計:對數(shù)值型特征進(jìn)行更詳細(xì)的統(tǒng)計描述。

計算常用統(tǒng)計量:均值、中位數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、最小值、最大值、四分位數(shù)(IQR)。

分析分布形態(tài):通過直方圖(`hist()`)、核密度估計圖(`kde()`)判斷數(shù)據(jù)是否近似正態(tài)分布、偏態(tài)程度等。

2.數(shù)據(jù)可視化:利用圖表更直觀地理解數(shù)據(jù)特征。

散點(diǎn)圖:(`scatterplot`)觀察兩個數(shù)值特征之間的關(guān)系,判斷是否存在線性或非線性關(guān)聯(lián)。

箱線圖:(`boxplot`)除了識別異常值,還可比較不同類別特征下的數(shù)值分布差異。

條形圖/柱狀圖:(`barplot`)用于展示類別特征的頻率分布或數(shù)值特征的均值分布。

相關(guān)性熱力圖:(`heatmap`)展示所有數(shù)值特征之間的相關(guān)系數(shù)矩陣,幫助識別多重共線性問題。

3.相關(guān)性分析:

計算相關(guān)系數(shù):常用Pearson相關(guān)系數(shù)(衡量線性關(guān)系)或Spearman秩相關(guān)系數(shù)(衡量單調(diào)關(guān)系)。注意,相關(guān)不等于因果。

識別高相關(guān)性特征:設(shè)定閾值(如|相關(guān)系數(shù)|>0.7或0.8),篩選出高度相關(guān)的特征對。這些特征可能包含冗余信息。

決策:對于高度相關(guān)的特征對,考慮保留其中一個,或結(jié)合兩者信息構(gòu)造新特征(見特征構(gòu)造部分)。

(三)特征預(yù)處理

將數(shù)據(jù)轉(zhuǎn)換為模型能夠有效處理的格式,主要針對數(shù)值型和類別型特征。

1.數(shù)值型特征處理:

數(shù)據(jù)標(biāo)準(zhǔn)化(Standardization):將特征縮放到均值為0,標(biāo)準(zhǔn)差為1的分布。使用`StandardScaler`。適用于基于距離的算法(如KNN、SVM、PCA)。

計算步驟:(X-mean)/std

數(shù)據(jù)歸一化(Normalization):將特征縮放到[0,1]或[-1,1]的固定范圍。使用`MinMaxScaler`。適用于神經(jīng)網(wǎng)絡(luò)、決策樹等對輸入尺度敏感的算法。

計算步驟:(X-min)/(max-min)

缺失值處理(回顧與深化):在此階段,若之前未處理,需對數(shù)值特征應(yīng)用選定的填充策略(均值、中位數(shù)等)。

2.類別型特征處理(編碼):將文本或類別標(biāo)簽轉(zhuǎn)換為數(shù)值形式。

獨(dú)熱編碼(One-HotEncoding):將每個類別創(chuàng)建為一個新二進(jìn)制列(0或1)。使用`OneHotEncoder`或`get_dummies()`。

優(yōu)點(diǎn):簡單直觀,無序性表達(dá)良好。

缺點(diǎn):可能導(dǎo)致特征維度急劇增加(尤其類別數(shù)多時),引入多重共線性。

標(biāo)簽編碼(LabelEncoding):將每個類別映射到一個整數(shù)。使用`OrdinalEncoder`或Pandas的`astype(int)`。

優(yōu)點(diǎn):維度不變。

缺點(diǎn):引入了人為的順序關(guān)系(如編碼為3的類別被認(rèn)為比編碼為2的“更大”),適用于有明確順序的類別(如“小”、“中”、“大”)。

目標(biāo)編碼(TargetEncoding/MeanEncoding):用該類別對應(yīng)的目標(biāo)變量的統(tǒng)計值(如均值)來代替類別標(biāo)簽。使用`CategoryEncoder`等庫實(shí)現(xiàn)。

優(yōu)點(diǎn):能有效利用目標(biāo)變量的信息,維度低。

缺點(diǎn):容易導(dǎo)致過擬合,特別是對于稀有類別。需要進(jìn)行正則化或采用交叉驗(yàn)證編碼等方式緩解。

3.特征變換:

對數(shù)變換(LogTransformation):對偏態(tài)分布(如右偏)的特征進(jìn)行變換,使其更接近正態(tài)分布。適用于數(shù)值型特征??上燃?再取對數(shù)(處理0值情況)。

計算步驟:`np.log1p(X)`(X+1)的自然對數(shù)

平方根變換(SquareRootTransformation):效果類似對數(shù)變換,但更溫和。同樣適用于數(shù)值型特征。

計算步驟:`np.sqrt(X)`

Box-Cox變換:一種更通用的冪變換,包括對數(shù)變換和平方根變換作為特例。需要特征為正數(shù)。

計算步驟:`scipy.stats.boxcox(X)`

4.缺失值處理(回顧與深化):再次確認(rèn)所有數(shù)值和類別特征(經(jīng)編碼后)的缺失值是否已按預(yù)定策略處理完畢。

(四)特征選擇

從現(xiàn)有特征集中,識別并保留對模型預(yù)測最有幫助的特征子集,以減少模型復(fù)雜度、防止過擬合、提高效率。

1.過濾法(FilterMethods):基于特征本身的統(tǒng)計特性或與目標(biāo)變量的關(guān)系進(jìn)行選擇,獨(dú)立于任何模型。

相關(guān)性分析:選擇與目標(biāo)變量相關(guān)性高(絕對值大)的特征??山Y(jié)合之前的相關(guān)性熱力圖。

基于方差的方法:剔除方差過小的特征(如`VarianceThreshold()`),認(rèn)為它們對預(yù)測貢獻(xiàn)不大。

卡方檢驗(yàn)(Chi-SquaredTest):適用于類別特征與類別目標(biāo)變量,選擇與目標(biāo)變量獨(dú)立性小的特征。使用`chi2`。

互信息(MutualInformation):衡量兩個變量之間的相互依賴程度,適用于類別型和數(shù)值型特征?;バ畔⒃礁?,特征越有用。使用`mutual_info_classif`(分類)或`mutual_info_regression`(回歸)。

ANOVAF-test:適用于數(shù)值特征與類別目標(biāo)變量,檢驗(yàn)特征與目標(biāo)變量之間的方差是否有顯著差異。使用`f_classif`。

2.包裹法(WrapperMethods):通過運(yùn)行實(shí)際模型并評估其性能來選擇特征子集。計算成本較高。

遞歸特征消除(RecursiveFeatureElimination,RFE):通過遞歸減少特征集大小,每次迭代移除表現(xiàn)最差的特征。需要先訓(xùn)練一個基礎(chǔ)模型(如邏輯回歸、SVM)。使用`RFE`。

基于樹模型的特征重要性:使用隨機(jī)森林、梯度提升樹等模型,根據(jù)它們內(nèi)置的特征重要性評分(如Gini不純度減少、平均不純度減少)選擇最重要的特征。

3.嵌入法(EmbeddedMethods):在模型訓(xùn)練過程中自動進(jìn)行特征選擇。

Lasso回歸(L1正則化):對特征權(quán)重施加L1懲罰,傾向于將不重要的特征權(quán)重壓縮至0,從而實(shí)現(xiàn)特征選擇。適用于線性模型。

嶺回歸(L2正則化):對特征權(quán)重施加L2懲罰,可以處理多重共線性,但不直接進(jìn)行特征選擇(權(quán)重會變小但不至于為0)。

樹模型(如XGBoost,LightGBM,CatBoost):這些模型在訓(xùn)練時計算每個特征對模型性能的貢獻(xiàn)度,并給出特征重要性評分。

(五)特征構(gòu)造

基于現(xiàn)有特征,創(chuàng)造新的、可能更有預(yù)測能力的特征。這是提升模型性能的關(guān)鍵環(huán)節(jié)之一。

1.組合特征(FeatureCombination):

特征相加:`new_feature=feature1+feature2`。例如,房屋面積+房間數(shù)量可能比單獨(dú)看面積更有意義。

特征相減:`new_feature=feature1-feature2`。例如,總價-面積,可能代表單位面積價格。

特征相乘:`new_feature=feature1feature2`。例如,廣告花費(fèi)觸達(dá)人數(shù)。

特征相除:`new_feature=feature1/feature2`。例如,銷售額/廣告花費(fèi)(投入產(chǎn)出比)。

2.變換特征(FeatureTransformation):

多項(xiàng)式特征:`PolynomialFeatures`,生成特征的多項(xiàng)式組合(如二次項(xiàng)、交互項(xiàng)),適用于非線性關(guān)系的建模。

冪變換:如平方、立方等,捕捉特征的非線性影響。

3.交互特征(InteractionFeatures):

通過特征組合捕捉不同特征之間的交互效應(yīng)。例如,用戶年齡和用戶活躍度可能共同影響購買行為,而不僅僅是各自的影響。

實(shí)現(xiàn)方式:手動組合,或使用`PolynomialFeatures(degree=2,include_bias=False)`自動生成(會包含交互項(xiàng))。

4.衍生特征(DerivedFeatures):

時間特征:從日期時間數(shù)據(jù)中提取年、月、日、周幾、是否周末、是否節(jié)假日、月份中旬/末等。

文本特征:使用NLP技術(shù)(如TF-IDF、WordEmbeddings)從文本數(shù)據(jù)中提取語義信息。

統(tǒng)計特征:對特征進(jìn)行滾動窗口計算(如移動平均、滾動標(biāo)準(zhǔn)差),適用于時間序列數(shù)據(jù)。

(六)特征評估

對構(gòu)造出的特征集進(jìn)行最終評估,判斷其有效性和是否滿足項(xiàng)目需求。

1.交叉驗(yàn)證(Cross-Validation):

使用選定的評估指標(biāo)(如準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)、AUC、MSE、RMSE等)在驗(yàn)證集上評估包含新特征的模型的性能。

通過比較有無新特征的模型性能變化,判斷新特征的有效性。

進(jìn)行多次交叉驗(yàn)證以獲得更穩(wěn)定和可靠的評估結(jié)果。

2.模型性能比較:

選擇一個或多個基準(zhǔn)模型(BaselineModel)。

比較包含新特征集的模型與基準(zhǔn)模型在驗(yàn)證集上的性能指標(biāo)。性能有顯著提升則說明特征構(gòu)造有效。

3.特征重要性分析:

使用訓(xùn)練好的模型(特別是樹模型或提供特征重要性分?jǐn)?shù)的模型)評估新特征的貢獻(xiàn)度。

可視化特征重要性圖(如條形圖),直觀展示哪些新特征對模型預(yù)測影響最大。

4.領(lǐng)域知識驗(yàn)證:

結(jié)合業(yè)務(wù)理解和領(lǐng)域知識,判斷構(gòu)造的特征是否符合邏輯,是否能夠解釋業(yè)務(wù)現(xiàn)象。

例如,構(gòu)造的“用戶活躍度購買力”特征是否確實(shí)反映了用戶的潛在價值。

---

本文由ai生成初稿,人工編輯修改

一、特征工程概述

特征工程是機(jī)器學(xué)習(xí)領(lǐng)域中的核心環(huán)節(jié),旨在從原始數(shù)據(jù)中提取或構(gòu)造出對模型預(yù)測能力有顯著提升的特征。一個好的特征工程預(yù)案能夠顯著提高模型的準(zhǔn)確性和效率。本預(yù)案將詳細(xì)介紹特征工程的定義、重要性、基本流程以及實(shí)施步驟。

(一)特征工程的定義

特征工程是指通過數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造等方法,將原始數(shù)據(jù)轉(zhuǎn)化為更適合機(jī)器學(xué)習(xí)模型處理的形式的過程。

(二)特征工程的重要性

1.提高模型性能:合理的特征能夠顯著提升模型的預(yù)測準(zhǔn)確性和泛化能力。

2.降低數(shù)據(jù)維度:通過特征選擇,可以減少數(shù)據(jù)維度,降低計算復(fù)雜度。

3.增強(qiáng)模型可解釋性:精心設(shè)計的特征能夠使模型的決策過程更加透明。

二、特征工程的基本流程

特征工程通常包括以下步驟:數(shù)據(jù)探索、數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造和特征評估。

(一)數(shù)據(jù)探索

1.統(tǒng)計分析:計算數(shù)據(jù)的均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計指標(biāo)。

2.可視化分析:通過直方圖、散點(diǎn)圖等可視化工具了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù),識別冗余特征。

(二)數(shù)據(jù)預(yù)處理

1.缺失值處理:使用均值、中位數(shù)或眾數(shù)填充缺失值,或采用插值法。

2.異常值處理:通過箱線圖識別異常值,并進(jìn)行剔除或修正。

3.數(shù)據(jù)標(biāo)準(zhǔn)化:將數(shù)據(jù)縮放到統(tǒng)一范圍,如使用Z-score標(biāo)準(zhǔn)化。

(三)特征選擇

1.過濾法:基于統(tǒng)計指標(biāo)(如相關(guān)系數(shù)、卡方檢驗(yàn))選擇特征。

2.包裹法:通過模型性能評估選擇特征,如遞歸特征消除。

3.嵌入法:在模型訓(xùn)練過程中自動選擇特征,如Lasso回歸。

(四)特征構(gòu)造

1.組合特征:通過特征相加、相乘等方式構(gòu)造新特征。

2.變換特征:使用對數(shù)、平方根等函數(shù)轉(zhuǎn)換特征分布。

3.交互特征:構(gòu)造特征之間的交互項(xiàng),如多項(xiàng)式特征。

(五)特征評估

1.交叉驗(yàn)證:使用交叉驗(yàn)證評估特征集的泛化能力。

2.模型性能:通過準(zhǔn)確率、召回率等指標(biāo)評估特征效果。

3.可視化分析:通過特征重要性圖等可視化工具評估特征貢獻(xiàn)。

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

1.加載數(shù)據(jù):使用Pandas等工具加載原始數(shù)據(jù)集。

2.數(shù)據(jù)清洗:處理缺失值、異常值和重復(fù)值。

3.數(shù)據(jù)分割:將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集。

(二)特征工程

1.描述性統(tǒng)計:計算特征的均值、中位數(shù)、標(biāo)準(zhǔn)差等。

2.數(shù)據(jù)可視化:繪制直方圖、散點(diǎn)圖和箱線圖,了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù)矩陣,識別高相關(guān)性特征。

(三)特征預(yù)處理

1.缺失值填充:使用均值或中位數(shù)填充缺失值。

2.數(shù)據(jù)標(biāo)準(zhǔn)化:使用Z-score標(biāo)準(zhǔn)化將數(shù)據(jù)縮放到[-1,1]范圍。

3.異常值處理:剔除或修正箱線圖識別的異常值。

(四)特征選擇

1.過濾法:使用相關(guān)系數(shù)篩選出與目標(biāo)變量相關(guān)性較高的特征。

2.包裹法:使用遞歸特征消除(RFE)選擇特征。

3.模型評估:在邏輯回歸模型上評估特征選擇效果。

(五)特征構(gòu)造

1.組合特征:構(gòu)造特征之間的相加和相乘組合。

2.變換特征:對偏態(tài)分布特征使用對數(shù)變換。

3.交互特征:構(gòu)造多項(xiàng)式特征,增加特征維度。

(六)特征評估

1.交叉驗(yàn)證:使用5折交叉驗(yàn)證評估特征集的性能。

2.模型性能:比較不同特征集在邏輯回歸模型上的準(zhǔn)確率。

3.特征重要性:繪制特征重要性圖,識別關(guān)鍵特征。

本文由ai生成初稿,人工編輯修改

---

(續(xù))

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

這是特征工程的第一步,為后續(xù)所有操作奠定基礎(chǔ)。此階段的核心是獲取可用、干凈的數(shù)據(jù),并劃分為合適的子集。

1.加載數(shù)據(jù):

使用如Pandas庫中的`read_csv()`、`read_excel()`、`read_sql()`等函數(shù),根據(jù)數(shù)據(jù)源類型加載數(shù)據(jù)。

確保數(shù)據(jù)文件路徑正確,處理好文件編碼問題(如UTF-8,GBK)。

加載后,立即使用`head()`,`info()`,`describe()`等方法初步查看數(shù)據(jù)結(jié)構(gòu)、非空值數(shù)量、數(shù)據(jù)類型及基本統(tǒng)計信息。

2.數(shù)據(jù)清洗:原始數(shù)據(jù)往往包含各種“臟”信息,需要仔細(xì)清理。

處理缺失值:

識別缺失值:使用`isnull()`或`isna()`結(jié)合`sum()`統(tǒng)計各列缺失值數(shù)量。也可用`missingno`庫進(jìn)行可視化缺失情況。

決策依據(jù):根據(jù)缺失比例(如<5%)、缺失機(jī)制(隨機(jī)、非隨機(jī))、特征重要性決定處理方式。

填充策略:

均值/中位數(shù)/眾數(shù)填充:適用于數(shù)值型特征,特別是當(dāng)數(shù)據(jù)呈偏態(tài)分布時優(yōu)先考慮中位數(shù)。對于類別型特征,填充眾數(shù)。

插值法:如線性插值、時間序列插值(適用于有序或時間數(shù)據(jù))。

模型預(yù)測填充:使用其他非缺失特征訓(xùn)練模型預(yù)測缺失值。

創(chuàng)建缺失指示特征:在填充值的基礎(chǔ)上,額外創(chuàng)建一個布爾型特征,標(biāo)示原始值是否缺失(例如,填充均值后,新增一列`feature_is_missing`值為`True`如果原始值是缺失的,否則`False`)。這有助于模型捕捉缺失本身的信息。

刪除策略:當(dāng)特征缺失比例過高(如>30%-50%,具體閾值視情況而定)或缺失機(jī)制明確與非目標(biāo)變量相關(guān)時,考慮刪除該特征。樣本缺失過多時,考慮刪除整個樣本。

處理重復(fù)值:

識別重復(fù):使用`duplicated()`方法找出重復(fù)行。

處理:通常保留第一行或最后一行,刪除其余重復(fù)行,使用`drop_duplicates()`方法。

處理異常值:

識別:常用箱線圖(Boxplot)可視化異常值。計算Z-score(標(biāo)準(zhǔn)差倍數(shù)),通常|Z|>3視為異常。對于類別特征,可通過頻率分析或可視化(如條形圖)識別出現(xiàn)頻率極低的類別作為潛在異常。

處理策略:

刪除:直接刪除包含異常值的樣本。適用于異常值極少且與目標(biāo)無關(guān)的情況。

替換:將異常值替換為邊界值(如本特征的最小值或最大值)、中位數(shù)或均值。適用于異常值可能為數(shù)據(jù)錄入錯誤的情況。

限制:將超出合理范圍的值設(shè)為該范圍的上限或下限(如使用`np.clip()`)。

變換:對數(shù)變換、平方根變換等可以緩解極端值的影響。

單獨(dú)建模:如果異常值樣本量較大且具有獨(dú)特性,可考慮將其視為一個單獨(dú)的類別處理。

3.數(shù)據(jù)分割:

目的:將數(shù)據(jù)集劃分為訓(xùn)練集(用于模型訓(xùn)練)、驗(yàn)證集(用于超參數(shù)調(diào)優(yōu)和模型選擇)和測試集(用于最終模型評估)。

比例:常見的劃分比例是6:2:2,或7:2:1。時間序列數(shù)據(jù)需按時間順序劃分,不能打亂。

方法:使用`train_test_split`函數(shù)(需設(shè)置`random_state`保證可復(fù)現(xiàn)性)進(jìn)行隨機(jī)分割。對于時間序列,應(yīng)先按時間排序,再分割。

(二)特征工程

在數(shù)據(jù)清洗基礎(chǔ)上,開始深入挖掘數(shù)據(jù),提取和轉(zhuǎn)換特征。

1.描述性統(tǒng)計:對數(shù)值型特征進(jìn)行更詳細(xì)的統(tǒng)計描述。

計算常用統(tǒng)計量:均值、中位數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、最小值、最大值、四分位數(shù)(IQR)。

分析分布形態(tài):通過直方圖(`hist()`)、核密度估計圖(`kde()`)判斷數(shù)據(jù)是否近似正態(tài)分布、偏態(tài)程度等。

2.數(shù)據(jù)可視化:利用圖表更直觀地理解數(shù)據(jù)特征。

散點(diǎn)圖:(`scatterplot`)觀察兩個數(shù)值特征之間的關(guān)系,判斷是否存在線性或非線性關(guān)聯(lián)。

箱線圖:(`boxplot`)除了識別異常值,還可比較不同類別特征下的數(shù)值分布差異。

條形圖/柱狀圖:(`barplot`)用于展示類別特征的頻率分布或數(shù)值特征的均值分布。

相關(guān)性熱力圖:(`heatmap`)展示所有數(shù)值特征之間的相關(guān)系數(shù)矩陣,幫助識別多重共線性問題。

3.相關(guān)性分析:

計算相關(guān)系數(shù):常用Pearson相關(guān)系數(shù)(衡量線性關(guān)系)或Spearman秩相關(guān)系數(shù)(衡量單調(diào)關(guān)系)。注意,相關(guān)不等于因果。

識別高相關(guān)性特征:設(shè)定閾值(如|相關(guān)系數(shù)|>0.7或0.8),篩選出高度相關(guān)的特征對。這些特征可能包含冗余信息。

決策:對于高度相關(guān)的特征對,考慮保留其中一個,或結(jié)合兩者信息構(gòu)造新特征(見特征構(gòu)造部分)。

(三)特征預(yù)處理

將數(shù)據(jù)轉(zhuǎn)換為模型能夠有效處理的格式,主要針對數(shù)值型和類別型特征。

1.數(shù)值型特征處理:

數(shù)據(jù)標(biāo)準(zhǔn)化(Standardization):將特征縮放到均值為0,標(biāo)準(zhǔn)差為1的分布。使用`StandardScaler`。適用于基于距離的算法(如KNN、SVM、PCA)。

計算步驟:(X-mean)/std

數(shù)據(jù)歸一化(Normalization):將特征縮放到[0,1]或[-1,1]的固定范圍。使用`MinMaxScaler`。適用于神經(jīng)網(wǎng)絡(luò)、決策樹等對輸入尺度敏感的算法。

計算步驟:(X-min)/(max-min)

缺失值處理(回顧與深化):在此階段,若之前未處理,需對數(shù)值特征應(yīng)用選定的填充策略(均值、中位數(shù)等)。

2.類別型特征處理(編碼):將文本或類別標(biāo)簽轉(zhuǎn)換為數(shù)值形式。

獨(dú)熱編碼(One-HotEncoding):將每個類別創(chuàng)建為一個新二進(jìn)制列(0或1)。使用`OneHotEncoder`或`get_dummies()`。

優(yōu)點(diǎn):簡單直觀,無序性表達(dá)良好。

缺點(diǎn):可能導(dǎo)致特征維度急劇增加(尤其類別數(shù)多時),引入多重共線性。

標(biāo)簽編碼(LabelEncoding):將每個類別映射到一個整數(shù)。使用`OrdinalEncoder`或Pandas的`astype(int)`。

優(yōu)點(diǎn):維度不變。

缺點(diǎn):引入了人為的順序關(guān)系(如編碼為3的類別被認(rèn)為比編碼為2的“更大”),適用于有明確順序的類別(如“小”、“中”、“大”)。

目標(biāo)編碼(TargetEncoding/MeanEncoding):用該類別對應(yīng)的目標(biāo)變量的統(tǒng)計值(如均值)來代替類別標(biāo)簽。使用`CategoryEncoder`等庫實(shí)現(xiàn)。

優(yōu)點(diǎn):能有效利用目標(biāo)變量的信息,維度低。

缺點(diǎn):容易導(dǎo)致過擬合,特別是對于稀有類別。需要進(jìn)行正則化或采用交叉驗(yàn)證編碼等方式緩解。

3.特征變換:

對數(shù)變換(LogTransformation):對偏態(tài)分布(如右偏)的特征進(jìn)行變換,使其更接近正態(tài)分布。適用于數(shù)值型特征??上燃?再取對數(shù)(處理0值情況)。

計算步驟:`np.log1p(X)`(X+1)的自然對數(shù)

平方根變換(SquareRootTransformation):效果類似對數(shù)變換,但更溫和。同樣適用于數(shù)值型特征。

計算步驟:`np.sqrt(X)`

Box-Cox變換:一種更通用的冪變換,包括對數(shù)變換和平方根變換作為特例。需要特征為正數(shù)。

計算步驟:`scipy.stats.boxcox(X)`

4.缺失值處理(回顧與深化):再次確認(rèn)所有數(shù)值和類別特征(經(jīng)編碼后)的缺失值是否已按預(yù)定策略處理完畢。

(四)特征選擇

從現(xiàn)有特征集中,識別并保留對模型預(yù)測最有幫助的特征子集,以減少模型復(fù)雜度、防止過擬合、提高效率。

1.過濾法(FilterMethods):基于特征本身的統(tǒng)計特性或與目標(biāo)變量的關(guān)系進(jìn)行選擇,獨(dú)立于任何模型。

相關(guān)性分析:選擇與目標(biāo)變量相關(guān)性高(絕對值大)的特征。可結(jié)合之前的相關(guān)性熱力圖。

基于方差的方法:剔除方差過小的特征(如`VarianceThreshold()`),認(rèn)為它們對預(yù)測貢獻(xiàn)不大。

卡方檢驗(yàn)(Chi-SquaredTest):適用于類別特征與類別目標(biāo)變量,選擇與目標(biāo)變量獨(dú)立性小的特征。使用`chi2`。

互信息(MutualInformation):衡量兩個變量之間的相互依賴程度,適用于類別型和數(shù)值型特征?;バ畔⒃礁?,特征越有用。使用`mutual_info_classif`(分類)或`mutual_info_regression`(回歸)。

ANOVAF-test:適用于數(shù)值特征與類別目標(biāo)變量,檢驗(yàn)特征與目標(biāo)變量之間的方差是否有顯著差異。使用`f_classif`。

2.包裹法(WrapperMethods):通過運(yùn)行實(shí)際模型并評估其性能來選擇特征子集。計算成本較高。

遞歸特征消除(RecursiveFeatureElimination,RFE):通過遞歸減少特征集大小,每次迭代移除表現(xiàn)最差的特征。需要先訓(xùn)練一個基礎(chǔ)模型(如邏輯回歸、SVM)。使用`RFE`。

基于樹模型的特征重要性:使用隨機(jī)森林、梯度提升樹等模型,根據(jù)它們內(nèi)置的特征重要性評分(如Gini不純度減少、平均不純度減少)選擇最重要的特征。

3.嵌入法(EmbeddedMethods):在模型訓(xùn)練過程中自動進(jìn)行特征選擇。

Lasso回歸(L1正則化):對特征權(quán)重施加L1懲罰,傾向于將不重要的特征權(quán)重壓縮至0,從而實(shí)現(xiàn)特征選擇。適用于線性模型。

嶺回歸(L2正則化):對特征權(quán)重施加L2懲罰,可以處理多重共線性,但不直接進(jìn)行特征選擇(權(quán)重會變小但不至于為0)。

樹模型(如XGBoost,LightGBM,CatBoost):這些模型在訓(xùn)練時計算每個特征對模型性能的貢獻(xiàn)度,并給出特征重要性評分。

(五)特征構(gòu)造

基于現(xiàn)有特征,創(chuàng)造新的、可能更有預(yù)測能力的特征。這是提升模型性能的關(guān)鍵環(huán)節(jié)之一。

1.組合特征(FeatureCombination):

特征相加:`new_feature=feature1+feature2`。例如,房屋面積+房間數(shù)量可能比單獨(dú)看面積更有意義。

特征相減:`new_feature=feature1-feature2`。例如,總價-面積,可能代表單位面積價格。

特征相乘:`new_feature=feature1feature2`。例如,廣告花費(fèi)觸達(dá)人數(shù)。

特征相除:`new_feature=feature1/feature2`。例如,銷售額/廣告花費(fèi)(投入產(chǎn)出比)。

2.變換特征(FeatureTransformation):

多項(xiàng)式特征:`PolynomialFeatures`,生成特征的多項(xiàng)式組合(如二次項(xiàng)、交互項(xiàng)),適用于非線性關(guān)系的建模。

冪變換:如平方、立方等,捕捉特征的非線性影響。

3.交互特征(InteractionFeatures):

通過特征組合捕捉不同特征之間的交互效應(yīng)。例如,用戶年齡和用戶活躍度可能共同影響購買行為,而不僅僅是各自的影響。

實(shí)現(xiàn)方式:手動組合,或使用`PolynomialFeatures(degree=2,include_bias=False)`自動生成(會包含交互項(xiàng))。

4.衍生特征(DerivedFeatures):

時間特征:從日期時間數(shù)據(jù)中提取年、月、日、周幾、是否周末、是否節(jié)假日、月份中旬/末等。

文本特征:使用NLP技術(shù)(如TF-IDF、WordEmbeddings)從文本數(shù)據(jù)中提取語義信息。

統(tǒng)計特征:對特征進(jìn)行滾動窗口計算(如移動平均、滾動標(biāo)準(zhǔn)差),適用于時間序列數(shù)據(jù)。

(六)特征評估

對構(gòu)造出的特征集進(jìn)行最終評估,判斷其有效性和是否滿足項(xiàng)目需求。

1.交叉驗(yàn)證(Cross-Validation):

使用選定的評估指標(biāo)(如準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)、AUC、MSE、RMSE等)在驗(yàn)證集上評估包含新特征的模型的性能。

通過比較有無新特征的模型性能變化,判斷新特征的有效性。

進(jìn)行多次交叉驗(yàn)證以獲得更穩(wěn)定和可靠的評估結(jié)果。

2.模型性能比較:

選擇一個或多個基準(zhǔn)模型(BaselineModel)。

比較包含新特征集的模型與基準(zhǔn)模型在驗(yàn)證集上的性能指標(biāo)。性能有顯著提升則說明特征構(gòu)造有效。

3.特征重要性分析:

使用訓(xùn)練好的模型(特別是樹模型或提供特征重要性分?jǐn)?shù)的模型)評估新特征的貢獻(xiàn)度。

可視化特征重要性圖(如條形圖),直觀展示哪些新特征對模型預(yù)測影響最大。

4.領(lǐng)域知識驗(yàn)證:

結(jié)合業(yè)務(wù)理解和領(lǐng)域知識,判斷構(gòu)造的特征是否符合邏輯,是否能夠解釋業(yè)務(wù)現(xiàn)象。

例如,構(gòu)造的“用戶活躍度購買力”特征是否確實(shí)反映了用戶的潛在價值。

---

本文由ai生成初稿,人工編輯修改

一、特征工程概述

特征工程是機(jī)器學(xué)習(xí)領(lǐng)域中的核心環(huán)節(jié),旨在從原始數(shù)據(jù)中提取或構(gòu)造出對模型預(yù)測能力有顯著提升的特征。一個好的特征工程預(yù)案能夠顯著提高模型的準(zhǔn)確性和效率。本預(yù)案將詳細(xì)介紹特征工程的定義、重要性、基本流程以及實(shí)施步驟。

(一)特征工程的定義

特征工程是指通過數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造等方法,將原始數(shù)據(jù)轉(zhuǎn)化為更適合機(jī)器學(xué)習(xí)模型處理的形式的過程。

(二)特征工程的重要性

1.提高模型性能:合理的特征能夠顯著提升模型的預(yù)測準(zhǔn)確性和泛化能力。

2.降低數(shù)據(jù)維度:通過特征選擇,可以減少數(shù)據(jù)維度,降低計算復(fù)雜度。

3.增強(qiáng)模型可解釋性:精心設(shè)計的特征能夠使模型的決策過程更加透明。

二、特征工程的基本流程

特征工程通常包括以下步驟:數(shù)據(jù)探索、數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造和特征評估。

(一)數(shù)據(jù)探索

1.統(tǒng)計分析:計算數(shù)據(jù)的均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計指標(biāo)。

2.可視化分析:通過直方圖、散點(diǎn)圖等可視化工具了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù),識別冗余特征。

(二)數(shù)據(jù)預(yù)處理

1.缺失值處理:使用均值、中位數(shù)或眾數(shù)填充缺失值,或采用插值法。

2.異常值處理:通過箱線圖識別異常值,并進(jìn)行剔除或修正。

3.數(shù)據(jù)標(biāo)準(zhǔn)化:將數(shù)據(jù)縮放到統(tǒng)一范圍,如使用Z-score標(biāo)準(zhǔn)化。

(三)特征選擇

1.過濾法:基于統(tǒng)計指標(biāo)(如相關(guān)系數(shù)、卡方檢驗(yàn))選擇特征。

2.包裹法:通過模型性能評估選擇特征,如遞歸特征消除。

3.嵌入法:在模型訓(xùn)練過程中自動選擇特征,如Lasso回歸。

(四)特征構(gòu)造

1.組合特征:通過特征相加、相乘等方式構(gòu)造新特征。

2.變換特征:使用對數(shù)、平方根等函數(shù)轉(zhuǎn)換特征分布。

3.交互特征:構(gòu)造特征之間的交互項(xiàng),如多項(xiàng)式特征。

(五)特征評估

1.交叉驗(yàn)證:使用交叉驗(yàn)證評估特征集的泛化能力。

2.模型性能:通過準(zhǔn)確率、召回率等指標(biāo)評估特征效果。

3.可視化分析:通過特征重要性圖等可視化工具評估特征貢獻(xiàn)。

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

1.加載數(shù)據(jù):使用Pandas等工具加載原始數(shù)據(jù)集。

2.數(shù)據(jù)清洗:處理缺失值、異常值和重復(fù)值。

3.數(shù)據(jù)分割:將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集。

(二)特征工程

1.描述性統(tǒng)計:計算特征的均值、中位數(shù)、標(biāo)準(zhǔn)差等。

2.數(shù)據(jù)可視化:繪制直方圖、散點(diǎn)圖和箱線圖,了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù)矩陣,識別高相關(guān)性特征。

(三)特征預(yù)處理

1.缺失值填充:使用均值或中位數(shù)填充缺失值。

2.數(shù)據(jù)標(biāo)準(zhǔn)化:使用Z-score標(biāo)準(zhǔn)化將數(shù)據(jù)縮放到[-1,1]范圍。

3.異常值處理:剔除或修正箱線圖識別的異常值。

(四)特征選擇

1.過濾法:使用相關(guān)系數(shù)篩選出與目標(biāo)變量相關(guān)性較高的特征。

2.包裹法:使用遞歸特征消除(RFE)選擇特征。

3.模型評估:在邏輯回歸模型上評估特征選擇效果。

(五)特征構(gòu)造

1.組合特征:構(gòu)造特征之間的相加和相乘組合。

2.變換特征:對偏態(tài)分布特征使用對數(shù)變換。

3.交互特征:構(gòu)造多項(xiàng)式特征,增加特征維度。

(六)特征評估

1.交叉驗(yàn)證:使用5折交叉驗(yàn)證評估特征集的性能。

2.模型性能:比較不同特征集在邏輯回歸模型上的準(zhǔn)確率。

3.特征重要性:繪制特征重要性圖,識別關(guān)鍵特征。

本文由ai生成初稿,人工編輯修改

---

(續(xù))

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

這是特征工程的第一步,為后續(xù)所有操作奠定基礎(chǔ)。此階段的核心是獲取可用、干凈的數(shù)據(jù),并劃分為合適的子集。

1.加載數(shù)據(jù):

使用如Pandas庫中的`read_csv()`、`read_excel()`、`read_sql()`等函數(shù),根據(jù)數(shù)據(jù)源類型加載數(shù)據(jù)。

確保數(shù)據(jù)文件路徑正確,處理好文件編碼問題(如UTF-8,GBK)。

加載后,立即使用`head()`,`info()`,`describe()`等方法初步查看數(shù)據(jù)結(jié)構(gòu)、非空值數(shù)量、數(shù)據(jù)類型及基本統(tǒng)計信息。

2.數(shù)據(jù)清洗:原始數(shù)據(jù)往往包含各種“臟”信息,需要仔細(xì)清理。

處理缺失值:

識別缺失值:使用`isnull()`或`isna()`結(jié)合`sum()`統(tǒng)計各列缺失值數(shù)量。也可用`missingno`庫進(jìn)行可視化缺失情況。

決策依據(jù):根據(jù)缺失比例(如<5%)、缺失機(jī)制(隨機(jī)、非隨機(jī))、特征重要性決定處理方式。

填充策略:

均值/中位數(shù)/眾數(shù)填充:適用于數(shù)值型特征,特別是當(dāng)數(shù)據(jù)呈偏態(tài)分布時優(yōu)先考慮中位數(shù)。對于類別型特征,填充眾數(shù)。

插值法:如線性插值、時間序列插值(適用于有序或時間數(shù)據(jù))。

模型預(yù)測填充:使用其他非缺失特征訓(xùn)練模型預(yù)測缺失值。

創(chuàng)建缺失指示特征:在填充值的基礎(chǔ)上,額外創(chuàng)建一個布爾型特征,標(biāo)示原始值是否缺失(例如,填充均值后,新增一列`feature_is_missing`值為`True`如果原始值是缺失的,否則`False`)。這有助于模型捕捉缺失本身的信息。

刪除策略:當(dāng)特征缺失比例過高(如>30%-50%,具體閾值視情況而定)或缺失機(jī)制明確與非目標(biāo)變量相關(guān)時,考慮刪除該特征。樣本缺失過多時,考慮刪除整個樣本。

處理重復(fù)值:

識別重復(fù):使用`duplicated()`方法找出重復(fù)行。

處理:通常保留第一行或最后一行,刪除其余重復(fù)行,使用`drop_duplicates()`方法。

處理異常值:

識別:常用箱線圖(Boxplot)可視化異常值。計算Z-score(標(biāo)準(zhǔn)差倍數(shù)),通常|Z|>3視為異常。對于類別特征,可通過頻率分析或可視化(如條形圖)識別出現(xiàn)頻率極低的類別作為潛在異常。

處理策略:

刪除:直接刪除包含異常值的樣本。適用于異常值極少且與目標(biāo)無關(guān)的情況。

替換:將異常值替換為邊界值(如本特征的最小值或最大值)、中位數(shù)或均值。適用于異常值可能為數(shù)據(jù)錄入錯誤的情況。

限制:將超出合理范圍的值設(shè)為該范圍的上限或下限(如使用`np.clip()`)。

變換:對數(shù)變換、平方根變換等可以緩解極端值的影響。

單獨(dú)建模:如果異常值樣本量較大且具有獨(dú)特性,可考慮將其視為一個單獨(dú)的類別處理。

3.數(shù)據(jù)分割:

目的:將數(shù)據(jù)集劃分為訓(xùn)練集(用于模型訓(xùn)練)、驗(yàn)證集(用于超參數(shù)調(diào)優(yōu)和模型選擇)和測試集(用于最終模型評估)。

比例:常見的劃分比例是6:2:2,或7:2:1。時間序列數(shù)據(jù)需按時間順序劃分,不能打亂。

方法:使用`train_test_split`函數(shù)(需設(shè)置`random_state`保證可復(fù)現(xiàn)性)進(jìn)行隨機(jī)分割。對于時間序列,應(yīng)先按時間排序,再分割。

(二)特征工程

在數(shù)據(jù)清洗基礎(chǔ)上,開始深入挖掘數(shù)據(jù),提取和轉(zhuǎn)換特征。

1.描述性統(tǒng)計:對數(shù)值型特征進(jìn)行更詳細(xì)的統(tǒng)計描述。

計算常用統(tǒng)計量:均值、中位數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、最小值、最大值、四分位數(shù)(IQR)。

分析分布形態(tài):通過直方圖(`hist()`)、核密度估計圖(`kde()`)判斷數(shù)據(jù)是否近似正態(tài)分布、偏態(tài)程度等。

2.數(shù)據(jù)可視化:利用圖表更直觀地理解數(shù)據(jù)特征。

散點(diǎn)圖:(`scatterplot`)觀察兩個數(shù)值特征之間的關(guān)系,判斷是否存在線性或非線性關(guān)聯(lián)。

箱線圖:(`boxplot`)除了識別異常值,還可比較不同類別特征下的數(shù)值分布差異。

條形圖/柱狀圖:(`barplot`)用于展示類別特征的頻率分布或數(shù)值特征的均值分布。

相關(guān)性熱力圖:(`heatmap`)展示所有數(shù)值特征之間的相關(guān)系數(shù)矩陣,幫助識別多重共線性問題。

3.相關(guān)性分析:

計算相關(guān)系數(shù):常用Pearson相關(guān)系數(shù)(衡量線性關(guān)系)或Spearman秩相關(guān)系數(shù)(衡量單調(diào)關(guān)系)。注意,相關(guān)不等于因果。

識別高相關(guān)性特征:設(shè)定閾值(如|相關(guān)系數(shù)|>0.7或0.8),篩選出高度相關(guān)的特征對。這些特征可能包含冗余信息。

決策:對于高度相關(guān)的特征對,考慮保留其中一個,或結(jié)合兩者信息構(gòu)造新特征(見特征構(gòu)造部分)。

(三)特征預(yù)處理

將數(shù)據(jù)轉(zhuǎn)換為模型能夠有效處理的格式,主要針對數(shù)值型和類別型特征。

1.數(shù)值型特征處理:

數(shù)據(jù)標(biāo)準(zhǔn)化(Standardization):將特征縮放到均值為0,標(biāo)準(zhǔn)差為1的分布。使用`StandardScaler`。適用于基于距離的算法(如KNN、SVM、PCA)。

計算步驟:(X-mean)/std

數(shù)據(jù)歸一化(Normalization):將特征縮放到[0,1]或[-1,1]的固定范圍。使用`MinMaxScaler`。適用于神經(jīng)網(wǎng)絡(luò)、決策樹等對輸入尺度敏感的算法。

計算步驟:(X-min)/(max-min)

缺失值處理(回顧與深化):在此階段,若之前未處理,需對數(shù)值特征應(yīng)用選定的填充策略(均值、中位數(shù)等)。

2.類別型特征處理(編碼):將文本或類別標(biāo)簽轉(zhuǎn)換為數(shù)值形式。

獨(dú)熱編碼(One-HotEncoding):將每個類別創(chuàng)建為一個新二進(jìn)制列(0或1)。使用`OneHotEncoder`或`get_dummies()`。

優(yōu)點(diǎn):簡單直觀,無序性表達(dá)良好。

缺點(diǎn):可能導(dǎo)致特征維度急劇增加(尤其類別數(shù)多時),引入多重共線性。

標(biāo)簽編碼(LabelEncoding):將每個類別映射到一個整數(shù)。使用`OrdinalEncoder`或Pandas的`astype(int)`。

優(yōu)點(diǎn):維度不變。

缺點(diǎn):引入了人為的順序關(guān)系(如編碼為3的類別被認(rèn)為比編碼為2的“更大”),適用于有明確順序的類別(如“小”、“中”、“大”)。

目標(biāo)編碼(TargetEncoding/MeanEncoding):用該類別對應(yīng)的目標(biāo)變量的統(tǒng)計值(如均值)來代替類別標(biāo)簽。使用`CategoryEncoder`等庫實(shí)現(xiàn)。

優(yōu)點(diǎn):能有效利用目標(biāo)變量的信息,維度低。

缺點(diǎn):容易導(dǎo)致過擬合,特別是對于稀有類別。需要進(jìn)行正則化或采用交叉驗(yàn)證編碼等方式緩解。

3.特征變換:

對數(shù)變換(LogTransformation):對偏態(tài)分布(如右偏)的特征進(jìn)行變換,使其更接近正態(tài)分布。適用于數(shù)值型特征。可先加1再取對數(shù)(處理0值情況)。

計算步驟:`np.log1p(X)`(X+1)的自然對數(shù)

平方根變換(SquareRootTransformation):效果類似對數(shù)變換,但更溫和。同樣適用于數(shù)值型特征。

計算步驟:`np.sqrt(X)`

Box-Cox變換:一種更通用的冪變換,包括對數(shù)變換和平方根變換作為特例。需要特征為正數(shù)。

計算步驟:`scipy.stats.boxcox(X)`

4.缺失值處理(回顧與深化):再次確認(rèn)所有數(shù)值和類別特征(經(jīng)編碼后)的缺失值是否已按預(yù)定策略處理完畢。

(四)特征選擇

從現(xiàn)有特征集中,識別并保留對模型預(yù)測最有幫助的特征子集,以減少模型復(fù)雜度、防止過擬合、提高效率。

1.過濾法(FilterMethods):基于特征本身的統(tǒng)計特性或與目標(biāo)變量的關(guān)系進(jìn)行選擇,獨(dú)立于任何模型。

相關(guān)性分析:選擇與目標(biāo)變量相關(guān)性高(絕對值大)的特征??山Y(jié)合之前的相關(guān)性熱力圖。

基于方差的方法:剔除方差過小的特征(如`VarianceThreshold()`),認(rèn)為它們對預(yù)測貢獻(xiàn)不大。

卡方檢驗(yàn)(Chi-SquaredTest):適用于類別特征與類別目標(biāo)變量,選擇與目標(biāo)變量獨(dú)立性小的特征。使用`chi2`。

互信息(MutualInformation):衡量兩個變量之間的相互依賴程度,適用于類別型和數(shù)值型特征?;バ畔⒃礁?,特征越有用。使用`mutual_info_classif`(分類)或`mutual_info_regression`(回歸)。

ANOVAF-test:適用于數(shù)值特征與類別目標(biāo)變量,檢驗(yàn)特征與目標(biāo)變量之間的方差是否有顯著差異。使用`f_classif`。

2.包裹法(WrapperMethods):通過運(yùn)行實(shí)際模型并評估其性能來選擇特征子集。計算成本較高。

遞歸特征消除(RecursiveFeatureElimination,RFE):通過遞歸減少特征集大小,每次迭代移除表現(xiàn)最差的特征。需要先訓(xùn)練一個基礎(chǔ)模型(如邏輯回歸、SVM)。使用`RFE`。

基于樹模型的特征重要性:使用隨機(jī)森林、梯度提升樹等模型,根據(jù)它們內(nèi)置的特征重要性評分(如Gini不純度減少、平均不純度減少)選擇最重要的特征。

3.嵌入法(EmbeddedMethods):在模型訓(xùn)練過程中自動進(jìn)行特征選擇。

Lasso回歸(L1正則化):對特征權(quán)重施加L1懲罰,傾向于將不重要的特征權(quán)重壓縮至0,從而實(shí)現(xiàn)特征選擇。適用于線性模型。

嶺回歸(L2正則化):對特征權(quán)重施加L2懲罰,可以處理多重共線性,但不直接進(jìn)行特征選擇(權(quán)重會變小但不至于為0)。

樹模型(如XGBoost,LightGBM,CatBoost):這些模型在訓(xùn)練時計算每個特征對模型性能的貢獻(xiàn)度,并給出特征重要性評分。

(五)特征構(gòu)造

基于現(xiàn)有特征,創(chuàng)造新的、可能更有預(yù)測能力的特征。這是提升模型性能的關(guān)鍵環(huán)節(jié)之一。

1.組合特征(FeatureCombination):

特征相加:`new_feature=feature1+feature2`。例如,房屋面積+房間數(shù)量可能比單獨(dú)看面積更有意義。

特征相減:`new_feature=feature1-feature2`。例如,總價-面積,可能代表單位面積價格。

特征相乘:`new_feature=feature1feature2`。例如,廣告花費(fèi)觸達(dá)人數(shù)。

特征相除:`new_feature=feature1/feature2`。例如,銷售額/廣告花費(fèi)(投入產(chǎn)出比)。

2.變換特征(FeatureTransformation):

多項(xiàng)式特征:`PolynomialFeatures`,生成特征的多項(xiàng)式組合(如二次項(xiàng)、交互項(xiàng)),適用于非線性關(guān)系的建模。

冪變換:如平方、立方等,捕捉特征的非線性影響。

3.交互特征(InteractionFeatures):

通過特征組合捕捉不同特征之間的交互效應(yīng)。例如,用戶年齡和用戶活躍度可能共同影響購買行為,而不僅僅是各自的影響。

實(shí)現(xiàn)方式:手動組合,或使用`PolynomialFeatures(degree=2,include_bias=False)`自動生成(會包含交互項(xiàng))。

4.衍生特征(DerivedFeatures):

時間特征:從日期時間數(shù)據(jù)中提取年、月、日、周幾、是否周末、是否節(jié)假日、月份中旬/末等。

文本特征:使用NLP技術(shù)(如TF-IDF、WordEmbeddings)從文本數(shù)據(jù)中提取語義信息。

統(tǒng)計特征:對特征進(jìn)行滾動窗口計算(如移動平均、滾動標(biāo)準(zhǔn)差),適用于時間序列數(shù)據(jù)。

(六)特征評估

對構(gòu)造出的特征集進(jìn)行最終評估,判斷其有效性和是否滿足項(xiàng)目需求。

1.交叉驗(yàn)證(Cross-Validation):

使用選定的評估指標(biāo)(如準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)、AUC、MSE、RMSE等)在驗(yàn)證集上評估包含新特征的模型的性能。

通過比較有無新特征的模型性能變化,判斷新特征的有效性。

進(jìn)行多次交叉驗(yàn)證以獲得更穩(wěn)定和可靠的評估結(jié)果。

2.模型性能比較:

選擇一個或多個基準(zhǔn)模型(BaselineModel)。

比較包含新特征集的模型與基準(zhǔn)模型在驗(yàn)證集上的性能指標(biāo)。性能有顯著提升則說明特征構(gòu)造有效。

3.特征重要性分析:

使用訓(xùn)練好的模型(特別是樹模型或提供特征重要性分?jǐn)?shù)的模型)評估新特征的貢獻(xiàn)度。

可視化特征重要性圖(如條形圖),直觀展示哪些新特征對模型預(yù)測影響最大。

4.領(lǐng)域知識驗(yàn)證:

結(jié)合業(yè)務(wù)理解和領(lǐng)域知識,判斷構(gòu)造的特征是否符合邏輯,是否能夠解釋業(yè)務(wù)現(xiàn)象。

例如,構(gòu)造的“用戶活躍度購買力”特征是否確實(shí)反映了用戶的潛在價值。

---

本文由ai生成初稿,人工編輯修改

一、特征工程概述

特征工程是機(jī)器學(xué)習(xí)領(lǐng)域中的核心環(huán)節(jié),旨在從原始數(shù)據(jù)中提取或構(gòu)造出對模型預(yù)測能力有顯著提升的特征。一個好的特征工程預(yù)案能夠顯著提高模型的準(zhǔn)確性和效率。本預(yù)案將詳細(xì)介紹特征工程的定義、重要性、基本流程以及實(shí)施步驟。

(一)特征工程的定義

特征工程是指通過數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造等方法,將原始數(shù)據(jù)轉(zhuǎn)化為更適合機(jī)器學(xué)習(xí)模型處理的形式的過程。

(二)特征工程的重要性

1.提高模型性能:合理的特征能夠顯著提升模型的預(yù)測準(zhǔn)確性和泛化能力。

2.降低數(shù)據(jù)維度:通過特征選擇,可以減少數(shù)據(jù)維度,降低計算復(fù)雜度。

3.增強(qiáng)模型可解釋性:精心設(shè)計的特征能夠使模型的決策過程更加透明。

二、特征工程的基本流程

特征工程通常包括以下步驟:數(shù)據(jù)探索、數(shù)據(jù)預(yù)處理、特征選擇、特征構(gòu)造和特征評估。

(一)數(shù)據(jù)探索

1.統(tǒng)計分析:計算數(shù)據(jù)的均值、中位數(shù)、標(biāo)準(zhǔn)差等統(tǒng)計指標(biāo)。

2.可視化分析:通過直方圖、散點(diǎn)圖等可視化工具了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù),識別冗余特征。

(二)數(shù)據(jù)預(yù)處理

1.缺失值處理:使用均值、中位數(shù)或眾數(shù)填充缺失值,或采用插值法。

2.異常值處理:通過箱線圖識別異常值,并進(jìn)行剔除或修正。

3.數(shù)據(jù)標(biāo)準(zhǔn)化:將數(shù)據(jù)縮放到統(tǒng)一范圍,如使用Z-score標(biāo)準(zhǔn)化。

(三)特征選擇

1.過濾法:基于統(tǒng)計指標(biāo)(如相關(guān)系數(shù)、卡方檢驗(yàn))選擇特征。

2.包裹法:通過模型性能評估選擇特征,如遞歸特征消除。

3.嵌入法:在模型訓(xùn)練過程中自動選擇特征,如Lasso回歸。

(四)特征構(gòu)造

1.組合特征:通過特征相加、相乘等方式構(gòu)造新特征。

2.變換特征:使用對數(shù)、平方根等函數(shù)轉(zhuǎn)換特征分布。

3.交互特征:構(gòu)造特征之間的交互項(xiàng),如多項(xiàng)式特征。

(五)特征評估

1.交叉驗(yàn)證:使用交叉驗(yàn)證評估特征集的泛化能力。

2.模型性能:通過準(zhǔn)確率、召回率等指標(biāo)評估特征效果。

3.可視化分析:通過特征重要性圖等可視化工具評估特征貢獻(xiàn)。

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

1.加載數(shù)據(jù):使用Pandas等工具加載原始數(shù)據(jù)集。

2.數(shù)據(jù)清洗:處理缺失值、異常值和重復(fù)值。

3.數(shù)據(jù)分割:將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集。

(二)特征工程

1.描述性統(tǒng)計:計算特征的均值、中位數(shù)、標(biāo)準(zhǔn)差等。

2.數(shù)據(jù)可視化:繪制直方圖、散點(diǎn)圖和箱線圖,了解數(shù)據(jù)分布。

3.相關(guān)性分析:計算特征之間的相關(guān)系數(shù)矩陣,識別高相關(guān)性特征。

(三)特征預(yù)處理

1.缺失值填充:使用均值或中位數(shù)填充缺失值。

2.數(shù)據(jù)標(biāo)準(zhǔn)化:使用Z-score標(biāo)準(zhǔn)化將數(shù)據(jù)縮放到[-1,1]范圍。

3.異常值處理:剔除或修正箱線圖識別的異常值。

(四)特征選擇

1.過濾法:使用相關(guān)系數(shù)篩選出與目標(biāo)變量相關(guān)性較高的特征。

2.包裹法:使用遞歸特征消除(RFE)選擇特征。

3.模型評估:在邏輯回歸模型上評估特征選擇效果。

(五)特征構(gòu)造

1.組合特征:構(gòu)造特征之間的相加和相乘組合。

2.變換特征:對偏態(tài)分布特征使用對數(shù)變換。

3.交互特征:構(gòu)造多項(xiàng)式特征,增加特征維度。

(六)特征評估

1.交叉驗(yàn)證:使用5折交叉驗(yàn)證評估特征集的性能。

2.模型性能:比較不同特征集在邏輯回歸模型上的準(zhǔn)確率。

3.特征重要性:繪制特征重要性圖,識別關(guān)鍵特征。

本文由ai生成初稿,人工編輯修改

---

(續(xù))

三、特征工程實(shí)施步驟

(一)數(shù)據(jù)準(zhǔn)備

這是特征工程的第一步,為后續(xù)所有操作奠定基礎(chǔ)。此階段的核心是獲取可用、干凈的數(shù)據(jù),并劃分為合適的子集。

1.加載數(shù)據(jù):

使用如Pandas庫中的`read_csv()`、`read_excel()`、`read_sql()`等函數(shù),根據(jù)數(shù)據(jù)源類型加載數(shù)據(jù)。

確保數(shù)據(jù)文件路徑正確,處理好文件編碼問題(如UTF-8,GBK)。

加載后,立即使用`head()`,`info()`,`describe()`等方法初步查看數(shù)據(jù)結(jié)構(gòu)、非空值數(shù)量、數(shù)據(jù)類型及基本統(tǒng)計信息。

2.數(shù)據(jù)清洗:原始數(shù)據(jù)往往包含各種“臟”信息,需要仔細(xì)清理。

處理缺失值:

識別缺失值:使用`isnull()`或`isna()`結(jié)合`sum()`統(tǒng)計各列缺失值數(shù)量。也可用`missingno`庫進(jìn)行可視化缺失情況。

決策依據(jù):根據(jù)缺失比例(如<5%)、缺失機(jī)制(隨機(jī)、非隨機(jī))、特征重要性決定處理方式。

填充策略:

均值/中位數(shù)/眾數(shù)填充:適用于數(shù)值型特征,特別是當(dāng)數(shù)據(jù)呈偏態(tài)分布時優(yōu)先考慮中位數(shù)。對于類別型特征,填充眾數(shù)。

插值法:如線性插值、時間序列插值(適用于有序或時間數(shù)據(jù))。

模型預(yù)測填充:使用其他非缺失特征訓(xùn)練模型預(yù)測缺失值。

創(chuàng)建缺失指示特征:在填充值的基礎(chǔ)上,額外創(chuàng)建一個布爾型特征,標(biāo)示原始值是否缺失(例如,填充均值后,新增一列`feature_is_missing`值為`True`如果原始值是缺失的,否則`False`)。這有助于模型捕捉缺失本身的信息。

刪除策略:當(dāng)特征缺失比例過高(如>30%-50%,具體閾值視情況而定)或缺失機(jī)制明確與非目標(biāo)變量相關(guān)時,考慮刪除該特征。樣本缺失過多時,考慮刪除整個樣本。

處理重復(fù)值:

識別重復(fù):使用`duplicated()`方法找出重復(fù)行。

處理:通常保留第一行或最后一行,刪除其余重復(fù)行,使用`drop_duplicates()`方法。

處理異常值:

識別:常用箱線圖(Boxplot)可視化異常值。計算Z-score(標(biāo)準(zhǔn)差倍數(shù)),通常|Z|>3視為異常。對于類別特征,可通過頻率分析或可視化(如條形圖)識別出現(xiàn)頻率極低的類別作為潛在異常。

處理策略:

刪除:直接刪除包含異常值的樣本。適用于異常值極少且與目標(biāo)無關(guān)的情況。

替換:將異常值替換為邊界值(如本特征的最小值或最大值)、中位數(shù)或均值。適用于異常值可能為數(shù)據(jù)錄入錯誤的情況。

限制:將超出合理范圍的值設(shè)為該范圍的上限或下限(如使用`np.clip()`)。

變換:對數(shù)變換、平方根變換等可以緩解極端值的影響。

單獨(dú)建模:如果異常值樣本量較大且具有獨(dú)特性,可考慮將其視為一個單獨(dú)的類別處理。

3.數(shù)據(jù)分割:

目的:將數(shù)據(jù)集劃分為訓(xùn)練集(用于模型訓(xùn)練)、驗(yàn)證集(用于超參數(shù)調(diào)優(yōu)和模型選擇)和測試集(用于最終模型評估)。

比例:常見的劃分比例是6:2:2,或7:2:1。時間序列數(shù)據(jù)需按時間順序劃分,不能打亂。

方法:使用`train_test_split`函數(shù)(需設(shè)置`random_state`保證可復(fù)現(xiàn)性)進(jìn)行隨機(jī)分割。對于時間序列,應(yīng)先按時間排序,再分割。

(二)特征工程

在數(shù)據(jù)清洗基礎(chǔ)上,開始深入挖掘數(shù)據(jù),提取和轉(zhuǎn)換特征。

1.描述性統(tǒng)計:對數(shù)值型特征進(jìn)行更詳細(xì)的統(tǒng)計描述。

計算常用統(tǒng)計量:均值、中位數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、最小值、最大值、四分位數(shù)(IQR)。

分析分布形態(tài):通過直方圖(`hist()`)、核密度估計圖(`kde()`)判斷數(shù)據(jù)是否近似正態(tài)分布、偏態(tài)程度等。

2.數(shù)據(jù)可視化:利用圖表更直觀地理解數(shù)據(jù)特征。

散點(diǎn)圖:(`scatterplot`)觀察兩個數(shù)值特征之間的關(guān)系,判斷是否存在線性或非線性關(guān)聯(lián)。

箱線圖:(`boxplot`)除了識別異常值,還可比較不同類別特征下的數(shù)值分布差異。

條形圖/柱狀圖:(`barplot`)用于展示類別特征的頻率分布或數(shù)值特征的均值分布。

相關(guān)性熱力圖:(`heatmap`)展示所有數(shù)值特征之間的相關(guān)系數(shù)矩陣,幫助識別多重共線性問題。

3.相關(guān)性分析:

計算相關(guān)系數(shù):常用Pearson相關(guān)系數(shù)(衡量線性關(guān)系)或Spearman秩相關(guān)系數(shù)(衡量單調(diào)關(guān)系)。注意,相關(guān)不等于因果。

識別高相關(guān)性特征:設(shè)定閾值(如|相關(guān)系數(shù)|>0.7或0.8),篩選出高度相關(guān)的特征對。這些特征可能包含冗余信息。

決策:對于高度相關(guān)的特征對,考慮保留其中一個,或結(jié)合兩者信息構(gòu)造新特征(見特征構(gòu)造部分)。

(三)特征預(yù)處理

將數(shù)據(jù)轉(zhuǎn)換為模型能夠有效處理的格式,主要針對數(shù)值型和類別型特征。

1.數(shù)值型特征處理:

數(shù)據(jù)標(biāo)準(zhǔn)化(Standardization):將特征縮放到均值為0,標(biāo)準(zhǔn)差為1的分布。使用`StandardScaler`。適用于基于距離的算法(如KNN、SVM、PCA)。

計算步驟:(X-mean)/std

數(shù)據(jù)歸一化(Normalization):將特征縮放到[0,1]或[-1,1]的固定范圍。使用`MinMaxScaler`。適用于神經(jīng)網(wǎng)絡(luò)、決策樹等對輸入尺度敏感的算法。

計算步驟:(X-min)/(max-min)

缺失值處理(回顧與深化):在此階段,若之前未處理,需對數(shù)值特征應(yīng)用選定的填充策略(均值、中位數(shù)等)。

2.類別型特征處理(編碼):將文本或類別標(biāo)簽轉(zhuǎn)換為數(shù)值形式。

獨(dú)熱編碼(One-HotEncoding):將每個類別創(chuàng)建為一個新二進(jìn)制列(0或1)。使用`OneHotEncoder`或`get_dummies()`。

優(yōu)點(diǎn):簡單直觀,無序性表達(dá)良好。

缺點(diǎn):可能導(dǎo)致特征維度急劇增加(尤其類別數(shù)多時),引入多重共線性。

標(biāo)簽編碼(LabelEncoding):將每個類別映射到一個整數(shù)。使用`OrdinalEncoder`或Pandas的`astype(int)`。

優(yōu)點(diǎn):維度不變。

缺點(diǎn):引入了人為的順序關(guān)系(如編碼為3的類別被認(rèn)為比編碼為2的“更大”),適用于有明確順序的類別(如“小”、“中”、“大”)。

目標(biāo)編碼(TargetEncoding/MeanEncoding):用該類別對應(yīng)的目標(biāo)變量的統(tǒng)計值(如均值)來代替類別標(biāo)簽。使用`CategoryEncoder`等庫實(shí)現(xiàn)。

優(yōu)點(diǎn):能有效利用目標(biāo)變量的信息,維度低。

缺點(diǎn):容易導(dǎo)致過擬合,特別是對于稀有類別。需要進(jìn)行正則化或采用交叉驗(yàn)證編碼等方式緩解。

3.特征變換:

對數(shù)變換(LogTransformation):對偏態(tài)分布(如右偏)的特征進(jìn)行變換,使其更接近正態(tài)分布。適用于數(shù)值型特征??上燃?再取對數(shù)(處理0值情況)。

計算步驟:`np.log1p(X)`(X+1)的自然對數(shù)

平方根變換(SquareRootTransformation):效果類似對數(shù)變換,但更溫和。同樣適用于數(shù)值型特征。

計算步驟:`np.sqrt(X)`

Box-Cox變換:一種更通用的冪變換,包括對數(shù)變換和平方根變換作為特例。需要特征為正數(shù)。

計算步驟:`scipy.stats.boxcox(X)`

4.缺失值處理(回顧與深化):再次確認(rèn)所有數(shù)值和類別特征(經(jīng)編碼后)的缺失值是否已按預(yù)定策略處理完畢。

(四)特征選擇

從現(xiàn)有特征集中,識別并保留對模型預(yù)測最有幫助的特征子集,以減少模型復(fù)雜度、防止過擬合、提高效率。

1.過濾法(FilterMethods):基于特征本身的統(tǒng)計特性或與目標(biāo)變量的關(guān)系進(jìn)行選擇,獨(dú)立于任何模型。

相關(guān)性分析:選擇與目標(biāo)變量相關(guān)性高(絕對值大)的特征??山Y(jié)合之前的相關(guān)性熱力圖。

基于方差的方法:剔除方差過小的特征(如`VarianceThreshold()`),認(rèn)為它們對預(yù)測貢獻(xiàn)不大。

卡方檢驗(yàn)(Chi-SquaredTest):適用于類別特征與類別目標(biāo)變量,選擇與目標(biāo)變量獨(dú)立性小的特征。使用`chi2`。

互信息(MutualInformation):衡量兩個變量之間的相互依賴程度,適用于類別型和數(shù)值型特征。互信息越高,特征越有用。使用`mutual_info_classif`(分類)或`mutual_info_regression`(回歸)。

ANOVAF-test:適用于數(shù)值特征與類別目標(biāo)變量,檢驗(yàn)特征與目標(biāo)變量之間的方差是否有顯著差異。使用`f_classif`。

2.包裹法(WrapperMethods):通過運(yùn)行實(shí)際模型并評估其性能來選擇特征子集。計算成本較高。

遞歸特征消除(RecursiveFeatureElimination,RFE):通過遞歸減少特征集大小,每次迭代移除表現(xiàn)最差的特征。需要先訓(xùn)練一個基礎(chǔ)模型(如邏輯回歸、SVM)。使用`RFE`。

基于樹模型的特征重要性:使用隨機(jī)森林、梯度提升樹等模型,根據(jù)它們內(nèi)置的特征重要性評分(如Gini不純度減少、平均不純度減少)選擇最重要的特征。

3.嵌入法(EmbeddedMethods):在模型訓(xùn)練過程中自動進(jìn)行特征選擇。

Lasso回歸(L1正則化):對特征權(quán)重施加L1懲罰,傾向于將不重要的特征權(quán)重壓縮至0,從而實(shí)現(xiàn)特征選擇。適用于線性模型。

嶺回歸(L2正則化):對特征權(quán)重施加L2懲罰,可以處理多重共線性,但不直接進(jìn)行特征選擇(權(quán)重會變小但不至于為0)。

樹模型(如XGBoost,LightGBM,CatBoost):這些模型在訓(xùn)練時計算每個特征對模型性能的貢獻(xiàn)度,并給出特征重要性評分。

(五)特征構(gòu)造

基于現(xiàn)有特征,創(chuàng)造新的、可能更有預(yù)測能力的特征。這是提升模型性能的關(guān)鍵環(huán)節(jié)之一。

1.組合特征(FeatureCombination):

特征相加:`new_feature=feature1+feature2`。例如,房屋面積+房間數(shù)量可能比單獨(dú)看面積更有意義。

特征相減:`new_feature=feature1-feature2`。例如,總價-面積,可能代表單位面積價格。

特征相乘:`new_feature=feature1feature2`。例如,廣告花費(fèi)觸達(dá)人數(shù)。

特征相除:`new_feature=feature1/feature2`。例如,銷售額/廣告花費(fèi)(投入產(chǎn)出比)。

2.變換特征(FeatureTransformation):

多項(xiàng)式特征:`PolynomialFeatures`,生成特征的多項(xiàng)式組合(如二次項(xiàng)、交互項(xiàng)),適用于非線性關(guān)系的建模。

冪變換:如平方、立方等,捕捉特征的非線性影響。

3.交互特征(InteractionFeatures):

通過特征組合捕捉不同特征之間的交互效應(yīng)。例如,用戶年齡和用戶活躍度可能共同影響購買行為,而不僅僅是各自的影響。

實(shí)現(xiàn)方式:手動組合,或使用`PolynomialFeatures(degree=2,include_bias=False)`自動生成(會包含交互項(xiàng))。

4.衍生特征(DerivedFeatures):

時間特征:從日期時間數(shù)據(jù)中提取年、月、日、周幾、是否周末、是否節(jié)假日、月份中旬/末等。

文本特征:使用NLP技術(shù)(如TF-IDF、WordEmbeddings)從文本數(shù)據(jù)中提取語義信息。

統(tǒng)計特征:對特征進(jìn)行滾動窗口計算(如移動平均、滾動標(biāo)準(zhǔn)差),適用于時間序列數(shù)據(jù)。

(六)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論