




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46272-2025智能床墊
- 2025北京市公園管理中心所屬事業(yè)單位招聘94人模擬試卷及參考答案詳解1套
- 2025貴州省衛(wèi)生中心第十三屆貴州人才博覽會引才考前自測高頻考點(diǎn)模擬試題及答案詳解(奪冠系列)
- 2025湖南郴州嘉禾縣事業(yè)單位第一批招聘引進(jìn)高層次人才和急需緊缺人才13人模擬試卷及答案詳解(各地真題)
- 2025金華市教育局所屬金華教育學(xué)院公開招聘教師6人模擬試卷及參考答案詳解一套
- 2025內(nèi)蒙古金土華維可控農(nóng)業(yè)科技有限公司招聘9名工作人員模擬試卷有答案詳解
- 2025內(nèi)蒙古土地資源收儲投資(集團(tuán))有限公司常態(tài)化招聘50名急需緊缺專業(yè)人員的(第十二批)模擬試卷及答案詳解(奪冠)
- 2025年中國環(huán)保含氟滅火劑行業(yè)市場分析及投資價值評估前景預(yù)測報告
- 2025年下半年甘肅省事業(yè)單位招聘分類考試筆試臨夏考區(qū)模擬試卷及答案詳解(網(wǎng)校專用)
- 2025河南開封市中心醫(yī)院住院醫(yī)師規(guī)范化培訓(xùn)基地招收模擬試卷及答案詳解(考點(diǎn)梳理)
- 2025版煤礦安全生產(chǎn)標(biāo)準(zhǔn)化管理體系考試題及答案(采煤部分)
- 中國象棋技巧教學(xué)課件
- 油田冬季八防安全經(jīng)驗(yàn)分享
- 電纜拆除專項(xiàng)施工方案
- 數(shù)學(xué)文化在立體幾何中的滲透教學(xué)
- 環(huán)保設(shè)備介紹
- 纖支鏡灌洗的術(shù)前術(shù)后護(hù)理講課件
- 學(xué)習(xí)通《大學(xué)生就業(yè)指導(dǎo)》章節(jié)測試含答案
- 2025年新高考語文真題全國Ⅰ卷、Ⅱ卷試題匯編(古代詩歌鑒賞、名句名篇默寫篇)
- 勞務(wù)進(jìn)度計劃
- GB/T 4498.1-2025橡膠灰分的測定第1部分:馬弗爐法
評論
0/150
提交評論