據(jù)特征分析全流程:從單變量體檢到特征工程藍(lán)圖)
1. 從“看數(shù)據(jù)”到“懂?dāng)?shù)據(jù)”為什么特征分析是建模的勝負(fù)手每次拿到一份新的數(shù)據(jù)集你做的第一件事是什么是直接套用最復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型還是立刻開(kāi)始寫(xiě)代碼跑回歸如果你這么干過(guò)大概率會(huì)踩坑。我見(jiàn)過(guò)太多團(tuán)隊(duì)在數(shù)學(xué)建模競(jìng)賽或者實(shí)際項(xiàng)目中一上來(lái)就埋頭搞算法結(jié)果模型效果一塌糊涂最后才發(fā)現(xiàn)問(wèn)題出在最基礎(chǔ)的地方——他們根本沒(méi)“看懂”手里的數(shù)據(jù)。數(shù)據(jù)特征分析就是建模前的“望聞問(wèn)切”。它不是簡(jiǎn)單的畫(huà)幾個(gè)圖、算幾個(gè)平均值而是一個(gè)系統(tǒng)性的診斷過(guò)程目的是讓你從數(shù)據(jù)的“搬運(yùn)工”變成數(shù)據(jù)的“解讀者”。這個(gè)過(guò)程決定了你后續(xù)模型的天花板。一個(gè)對(duì)數(shù)據(jù)特征理解深刻的模型哪怕算法簡(jiǎn)單其穩(wěn)健性和解釋性也往往優(yōu)于一個(gè)在“臟數(shù)據(jù)”或“誤解數(shù)據(jù)”上訓(xùn)練的復(fù)雜黑箱模型。無(wú)論是國(guó)賽、美賽還是企業(yè)里的真實(shí)項(xiàng)目特征分析階段投入的時(shí)間最終都會(huì)在模型效果和項(xiàng)目效率上成倍地回報(bào)給你。2. 特征分析的完整工作流從原始數(shù)據(jù)到建模藍(lán)圖很多人把特征分析等同于描述性統(tǒng)計(jì)這太片面了。一個(gè)完整的特征分析工作流應(yīng)該是一個(gè)層層遞進(jìn)的偵探過(guò)程最終為模型選擇、特征工程和結(jié)果解釋提供清晰的路線圖。我將它分為四個(gè)核心階段你可以把它看作一個(gè)檢查清單。2.1 第一階段單變量“體檢”——認(rèn)識(shí)每一個(gè)個(gè)體這是最基礎(chǔ)的一步目標(biāo)是了解數(shù)據(jù)集中每一個(gè)特征變量自身的分布和基本情況。別小看這一步很多異常和驚喜都藏在這里。核心任務(wù)與工具集中趨勢(shì)與離散程度對(duì)于數(shù)值型特征計(jì)算均值、中位數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、方差、極差、四分位距。這里有個(gè)關(guān)鍵點(diǎn)均值對(duì)異常值敏感而中位數(shù)更穩(wěn)健。當(dāng)你發(fā)現(xiàn)某個(gè)特征的均值和中位數(shù)差距很大時(shí)就要警惕異常值的存在了。例如分析居民收入數(shù)據(jù)少數(shù)極高收入者會(huì)大幅拉高均值此時(shí)中位數(shù)更能代表“普通”水平。分布形態(tài)可視化直方圖與密度圖最直觀地展示數(shù)據(jù)分布是“鐘形”正態(tài)、偏態(tài)左偏/右偏還是多峰。這直接影響你后續(xù)是否需要進(jìn)行數(shù)據(jù)變換如對(duì)數(shù)變換處理右偏數(shù)據(jù)。箱線圖識(shí)別異常值的利器。箱體展示了數(shù)據(jù)的四分位范圍IQR胡須之外的點(diǎn)通常被視為潛在的異常值。但要注意箱線圖的異常點(diǎn)判定如1.5倍IQR規(guī)則是一個(gè)統(tǒng)計(jì)參考并非金科玉律。對(duì)于金融交易數(shù)據(jù)那些“異常值”可能正是你要研究的欺詐交易。Q-Q圖定量檢驗(yàn)數(shù)據(jù)是否服從某種理論分布如正態(tài)分布。如果點(diǎn)大致分布在參考線附近則服從性較好。很多統(tǒng)計(jì)模型如線性回歸的前提假設(shè)就是誤差正態(tài)分布Q-Q圖是驗(yàn)證這一假設(shè)的快速方法。實(shí)操心得不要只依賴自動(dòng)生成的統(tǒng)計(jì)摘要表。一定要親手畫(huà)一遍分布圖。我曾經(jīng)處理過(guò)一份用戶活躍時(shí)長(zhǎng)數(shù)據(jù)統(tǒng)計(jì)摘要看起來(lái)一切正常但直方圖一出來(lái)發(fā)現(xiàn)是一個(gè)明顯的雙峰分布——這暗示了可能存在兩類差異巨大的用戶群體如輕度用戶和重度用戶后續(xù)的聚類分析果然證實(shí)了這一點(diǎn)。如果沒(méi)做可視化這個(gè)關(guān)鍵洞察就丟失了。2.2 第二階段多變量“關(guān)系網(wǎng)”——發(fā)現(xiàn)特征間的故事單一特征的信息是有限的特征之間的關(guān)聯(lián)往往蘊(yùn)含著更深刻的邏輯。這一步的目標(biāo)是繪制一張?zhí)卣麝P(guān)系網(wǎng)絡(luò)圖。核心任務(wù)與工具相關(guān)性分析皮爾遜相關(guān)系數(shù)衡量?jī)蓚€(gè)數(shù)值變量間的線性相關(guān)程度。取值范圍[-1, 1]。但切記相關(guān)不等于因果。另外它只捕捉線性關(guān)系對(duì)于曲線關(guān)系如U型會(huì)失效。斯皮爾曼秩相關(guān)系數(shù)基于變量的排序秩計(jì)算適用于單調(diào)非線性關(guān)系且對(duì)異常值不敏感。當(dāng)你懷疑關(guān)系不是嚴(yán)格的直線或者數(shù)據(jù)有異常值時(shí)優(yōu)先使用斯皮爾曼相關(guān)系數(shù)。熱力圖可視化將整個(gè)數(shù)據(jù)集的相關(guān)系數(shù)矩陣以色塊形式呈現(xiàn)一目了然。高相關(guān)接近1或-1的特征對(duì)需要特別關(guān)注因?yàn)樗鼈兛赡軐?dǎo)致多重共線性問(wèn)題影響線性回歸等模型的穩(wěn)定性。散點(diǎn)圖矩陣對(duì)于維度不是特別高的數(shù)據(jù)集散點(diǎn)圖矩陣是探索兩兩關(guān)系的神器。它不僅能看出相關(guān)性還能直觀發(fā)現(xiàn)聚類、異常和具體的關(guān)系形態(tài)線性、指數(shù)、對(duì)數(shù)等。分類變量的關(guān)系分析對(duì)于類別型特征常用交叉表列聯(lián)表和卡方檢驗(yàn)來(lái)分析它們之間是否獨(dú)立。例如分析“性別”與“產(chǎn)品偏好”之間是否存在顯著關(guān)聯(lián)。踩坑實(shí)錄我曾用皮爾遜相關(guān)系數(shù)分析“廣告投入”和“銷(xiāo)售額”發(fā)現(xiàn)相關(guān)性很弱差點(diǎn)得出廣告無(wú)效的結(jié)論。后來(lái)畫(huà)了散點(diǎn)圖發(fā)現(xiàn)兩者是明顯的對(duì)數(shù)關(guān)系初期投入效果顯著后期邊際效應(yīng)遞減。改用對(duì)數(shù)變換后的數(shù)據(jù)計(jì)算相關(guān)性立刻變得非常強(qiáng)。這個(gè)教訓(xùn)告訴我永遠(yuǎn)先用眼睛看可視化再用數(shù)字算統(tǒng)計(jì)量。2.3 第三階段深度“診斷”——處理數(shù)據(jù)的“隱疾”經(jīng)過(guò)前兩輪分析你已經(jīng)對(duì)數(shù)據(jù)的“健康狀況”有了初步了解?,F(xiàn)在需要深入診斷并處理那些可能影響模型性能的“隱疾”。核心診斷與處理缺失值診斷與處理診斷統(tǒng)計(jì)每個(gè)特征的缺失比例。如果某個(gè)特征缺失率超過(guò)50%通常考慮直接刪除該特征。處理策略刪除若樣本缺失值很少可直接刪除該樣本行刪除若特征缺失很多可刪除該特征列刪除。這是最簡(jiǎn)單的方法但可能損失信息。填充更常用的方法。包括用均值/中位數(shù)/眾數(shù)填充簡(jiǎn)單但可能扭曲分布用前后值填充時(shí)間序列數(shù)據(jù)以及更復(fù)雜的基于模型的填充如用KNN或隨機(jī)森林回歸利用其他特征來(lái)預(yù)測(cè)缺失值。在數(shù)學(xué)建模論文中采用高級(jí)填充方法并說(shuō)明理由是加分項(xiàng)。異常值診斷與處理診斷除了箱線圖還可以用Z-score標(biāo)準(zhǔn)差法或MAD中位數(shù)絕對(duì)偏差等統(tǒng)計(jì)方法量化異常程度。處理策略分析原因首先判斷異常值是“臟數(shù)據(jù)”錄入錯(cuò)誤還是“真實(shí)現(xiàn)象”特殊事件導(dǎo)致。后者可能包含重要信息不應(yīng)簡(jiǎn)單刪除。處理方式對(duì)于錯(cuò)誤數(shù)據(jù)可直接刪除或修正。對(duì)于真實(shí)但極端的值可以考慮縮尾處理將超出特定分位數(shù)的值用該分位數(shù)值替代或者使用對(duì)異常值穩(wěn)健的模型如樹(shù)模型、支持向量回歸。分布轉(zhuǎn)換如果數(shù)據(jù)嚴(yán)重偏離正態(tài)如高度偏態(tài)許多模型假設(shè)會(huì)不成立。常用的轉(zhuǎn)換方法有對(duì)數(shù)轉(zhuǎn)換處理右偏數(shù)據(jù)大量小值少數(shù)極大值的利器如收入、人口數(shù)據(jù)。Box-Cox變換一種自動(dòng)尋找最佳變換參數(shù)λ的冪變換方法能更有效地將數(shù)據(jù)拉向正態(tài)分布。注意任何對(duì)數(shù)據(jù)的處理填充、刪除、轉(zhuǎn)換都必須記錄在案并在模型評(píng)估時(shí)考慮其影響。在競(jìng)賽論文中需要專門(mén)設(shè)立“數(shù)據(jù)預(yù)處理”一節(jié)來(lái)詳細(xì)闡述你的選擇和理由。2.4 第四階段特征工程“藍(lán)圖”繪制——為模型制造“彈藥”這是特征分析的最終產(chǎn)出階段?;谇叭降亩床煲?guī)劃如何創(chuàng)造和篩選對(duì)模型最有利的特征。特征構(gòu)造根據(jù)領(lǐng)域知識(shí)創(chuàng)造新特征。例如在電商分析中可以從“購(gòu)買(mǎi)日期”和“用戶注冊(cè)日期”構(gòu)造出“用戶生命周期階段”在交通流量預(yù)測(cè)中可以從“日期”構(gòu)造出“是否周末”、“是否節(jié)假日”、“小時(shí)時(shí)段”等。好的特征構(gòu)造其價(jià)值遠(yuǎn)超復(fù)雜的模型調(diào)參。特征縮放當(dāng)特征量綱差異巨大時(shí)如“年齡”和“年薪”必須進(jìn)行標(biāo)準(zhǔn)化或歸一化否則基于距離的模型如KNN、SVM、神經(jīng)網(wǎng)絡(luò)或使用梯度下降的模型會(huì)被大數(shù)值特征主導(dǎo)。常用方法有Z-score標(biāo)準(zhǔn)化(x - mean) / std使特征均值為0標(biāo)準(zhǔn)差為1。Min-Max歸一化(x - min) / (max - min)將特征縮放到[0, 1]區(qū)間。特征編碼將分類變量轉(zhuǎn)換為模型可理解的數(shù)值形式。獨(dú)熱編碼為每個(gè)類別創(chuàng)建一個(gè)新的二值特征。適用于類別間無(wú)大小關(guān)系的名義變量如城市名。缺點(diǎn)是如果類別很多會(huì)產(chǎn)生高維稀疏特征。標(biāo)簽編碼為每個(gè)類別分配一個(gè)整數(shù)。適用于有序變量如學(xué)歷高中、本科、碩士。對(duì)于無(wú)序變量使用可能引入錯(cuò)誤的順序關(guān)系。目標(biāo)編碼用該類別下目標(biāo)變量的均值或其他統(tǒng)計(jì)量來(lái)編碼。效果可能很好但需小心過(guò)擬合通常需要配合交叉驗(yàn)證使用。特征選擇藍(lán)圖不是所有特征都對(duì)預(yù)測(cè)目標(biāo)有用。冗余或無(wú)關(guān)的特征會(huì)降低模型效率增加過(guò)擬合風(fēng)險(xiǎn)。分析階段應(yīng)制定選擇策略過(guò)濾法基于統(tǒng)計(jì)指標(biāo)如相關(guān)系數(shù)、卡方檢驗(yàn)、互信息快速篩選。包裹法將特征選擇過(guò)程嵌入到模型訓(xùn)練中如遞歸特征消除RFE效果更好但計(jì)算成本高。嵌入法利用模型訓(xùn)練過(guò)程中的權(quán)重來(lái)進(jìn)行選擇如Lasso回歸的系數(shù)、樹(shù)模型的特征重要性。3. 實(shí)戰(zhàn)工具箱Python與MATLAB核心代碼片段解析理論說(shuō)再多不如一行代碼。這里我給出在數(shù)學(xué)建模中最常用的Python借助pandas, seaborn, scikit-learn和MATLAB的核心代碼片段并附上關(guān)鍵注釋。3.1 Python數(shù)據(jù)分析黃金組合Pandas Seaborn SciPyimport pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt from scipy import stats %matplotlib inline # 1. 加載數(shù)據(jù) df pd.read_csv(your_data.csv) # 2. 單變量分析 - 描述性統(tǒng)計(jì)與分布 print(df.describe()) # 快速統(tǒng)計(jì)摘要 print(df[column_name].skew()) # 計(jì)算偏度 print(df[column_name].kurt()) # 計(jì)算峰度 # 繪制分布圖 fig, axes plt.subplots(1, 3, figsize(15, 4)) sns.histplot(df[column_name], kdeTrue, axaxes[0]) # 直方圖密度曲線 axes[0].set_title(Histogram with KDE) sns.boxplot(xdf[column_name], axaxes[1]) # 箱線圖 axes[1].set_title(Boxplot) stats.probplot(df[column_name].dropna(), distnorm, plotaxes[2]) # Q-Q圖 axes[2].set_title(Q-Q Plot) plt.tight_layout() plt.show() # 3. 多變量分析 - 相關(guān)性與可視化 # 計(jì)算相關(guān)系數(shù)矩陣 (皮爾遜) corr_matrix df.corr(methodpearson) # 可替換為 spearman 或 kendall print(corr_matrix) # 繪制相關(guān)系數(shù)熱力圖 plt.figure(figsize(10, 8)) sns.heatmap(corr_matrix, annotTrue, cmapcoolwarm, center0, squareTrue) plt.title(Feature Correlation Heatmap) plt.show() # 繪制散點(diǎn)圖矩陣對(duì)于特征數(shù)較少時(shí) sns.pairplot(df[[feat1, feat2, feat3, target]], diag_kindkde) plt.show() # 4. 缺失值處理示例 # 查看缺失情況 missing_info df.isnull().sum() print(fMissing values per column:\n{missing_info[missing_info 0]}) # 簡(jiǎn)單填充根據(jù)情況選擇 df_filled df.copy() # 用中位數(shù)填充數(shù)值列 df_filled[numeric_column] df_filled[numeric_column].fillna(df_filled[numeric_column].median()) # 用眾數(shù)填充分類列 df_filled[categorical_column] df_filled[categorical_column].fillna(df_filled[categorical_column].mode()[0]) # 5. 異常值處理 - IQR法 Q1 df[column_name].quantile(0.25) Q3 df[column_name].quantile(0.75) IQR Q3 - Q1 lower_bound Q1 - 1.5 * IQR upper_bound Q3 1.5 * IQR # 識(shí)別異常值 outliers df[(df[column_name] lower_bound) | (df[column_name] upper_bound)] print(fNumber of outliers detected by IQR: {len(outliers)}) # 通常不直接刪除而是標(biāo)記或進(jìn)行縮尾處理3.2 MATLAB統(tǒng)計(jì)與可視化操作對(duì)于習(xí)慣MATLAB的參賽者其統(tǒng)計(jì)和繪圖工具箱同樣強(qiáng)大。% 1. 加載數(shù)據(jù) data readtable(your_data.csv); % 2. 單變量分析 % 描述性統(tǒng)計(jì) summary(data) % 類似于 pandas describe stats [mean(data.ColumnName), median(data.ColumnName), std(data.ColumnName), skewness(data.ColumnName), kurtosis(data.ColumnName)]; % 繪制分布圖 figure; subplot(1,3,1); histfit(data.ColumnName); % 直方圖正態(tài)擬合曲線 title(Histogram with Fit); subplot(1,3,2); boxplot(data.ColumnName); title(Boxplot); subplot(1,3,3); qqplot(data.ColumnName); % Q-Q圖 title(Q-Q Plot); % 3. 多變量分析 - 相關(guān)性 corr_matrix corr(table2array(data(:, {feat1, feat2, feat3})), Type, Pearson); % 可改為 Spearman disp(Correlation Matrix:); disp(corr_matrix); % 繪制熱力圖 (需要安裝并調(diào)用其他函數(shù)或使用較新版本MATLAB的heatmap) % 以下為一種簡(jiǎn)單可視化方法 imagesc(corr_matrix); colorbar; title(Correlation Heatmap (Image)); set(gca, XTick, 1:size(corr_matrix,2), XTickLabel, {feat1,feat2,feat3}); set(gca, YTick, 1:size(corr_matrix,2), YTickLabel, {feat1,feat2,feat3}); % 繪制散點(diǎn)圖矩陣 figure; plotmatrix(table2array(data(:, {feat1, feat2, feat3}))); % 4. 缺失值處理 % 查找缺失值 missing_idx ismissing(data); % 刪除包含缺失值的行 data_clean rmmissing(data); % 小心使用可能刪除過(guò)多數(shù)據(jù) % 用均值填充特定列 col_mean mean(data.ColumnName, omitnan); data.ColumnName(isnan(data.ColumnName)) col_mean; % 5. 異常值檢測(cè) - 箱線圖法則 Q quantile(data.ColumnName, [0.25 0.75]); IQR Q(2) - Q(1); lower_bound Q(1) - 1.5 * IQR; upper_bound Q(2) 1.5 * IQR; outlier_idx find(data.ColumnName lower_bound | data.ColumnName upper_bound); fprintf(Detected %d potential outliers.\n, length(outlier_idx));代碼使用心得在競(jìng)賽中我強(qiáng)烈建議將特征分析代碼模塊化??梢詫?xiě)一個(gè)data_profiling.py或EDA.m腳本輸入數(shù)據(jù)路徑自動(dòng)生成一份包含關(guān)鍵統(tǒng)計(jì)量、分布圖、相關(guān)矩陣和缺失值報(bào)告的分析文檔HTML或PDF。這不僅能節(jié)省時(shí)間還能讓你的分析過(guò)程顯得非常專業(yè)和系統(tǒng)化給論文加分。4. 避坑指南特征分析中常見(jiàn)的五個(gè)思維誤區(qū)即使掌握了所有工具和方法思維上的誤區(qū)仍可能導(dǎo)致分析走入歧途。下面是我總結(jié)的五個(gè)最常見(jiàn)、也最致命的誤區(qū)。誤區(qū)一盲目信任統(tǒng)計(jì)摘要忽視可視化。表格里的數(shù)字是抽象的圖形是直觀的。同一個(gè)均值和中位數(shù)可能對(duì)應(yīng)完全不同的分布如均勻分布、雙峰分布。務(wù)必養(yǎng)成“先畫(huà)圖后看數(shù)”的習(xí)慣??梢暬軒湍惆l(fā)現(xiàn)統(tǒng)計(jì)摘要無(wú)法揭示的模式、異常和關(guān)系形態(tài)。誤區(qū)二將“高相關(guān)”等同于“可預(yù)測(cè)”。這是新手最容易犯的錯(cuò)誤。特征A與目標(biāo)Y高度相關(guān)并不代表用A就能很好地預(yù)測(cè)Y。相關(guān)性衡量的是線性關(guān)系的強(qiáng)度而預(yù)測(cè)能力還受到數(shù)據(jù)噪聲、關(guān)系非線性程度以及特征與目標(biāo)之間是否存在混淆變量等因素的影響。高相關(guān)是好的起點(diǎn)但不是終點(diǎn)。一定要通過(guò)后續(xù)的模型如簡(jiǎn)單的線性回歸來(lái)初步驗(yàn)證預(yù)測(cè)效力。誤區(qū)三對(duì)缺失值和異常值采取“一刀切”策略。直接刪除所有含缺失值的樣本或武斷地剔除所有箱線圖外的點(diǎn)是最偷懶也最危險(xiǎn)的做法。你必須探究其產(chǎn)生機(jī)制完全隨機(jī)缺失缺失與任何變量無(wú)關(guān)。處理相對(duì)簡(jiǎn)單。隨機(jī)缺失缺失只與已觀測(cè)變量有關(guān)??捎媚P瓦M(jìn)行有依據(jù)的填充。非隨機(jī)缺失缺失與變量本身的未觀測(cè)值有關(guān)例如高收入人群更可能拒絕透露收入。這種情況最復(fù)雜處理不當(dāng)會(huì)引入嚴(yán)重偏差。 對(duì)于異常值要區(qū)分是“數(shù)據(jù)錯(cuò)誤”還是“珍貴個(gè)案”。在金融風(fēng)控中那些異常的巨額交易正是欺詐的線索。誤區(qū)四在劃分訓(xùn)練集/測(cè)試集之前進(jìn)行全局特征工程。這是一個(gè)會(huì)導(dǎo)致模型評(píng)估嚴(yán)重樂(lè)觀的“數(shù)據(jù)泄露”錯(cuò)誤。例如你用整個(gè)數(shù)據(jù)集包括未來(lái)的測(cè)試集的均值去填充缺失值或者用整個(gè)數(shù)據(jù)集的信息來(lái)做目標(biāo)編碼這相當(dāng)于讓模型在訓(xùn)練時(shí)“偷看”了測(cè)試集的答案。正確的做法是先劃分訓(xùn)練集和測(cè)試集所有基于數(shù)據(jù)分布的處理如填充、編碼、縮放都只從訓(xùn)練集中學(xué)習(xí)參數(shù)然后將其應(yīng)用到測(cè)試集上。誤區(qū)五過(guò)度追求特征的“數(shù)量”而非“質(zhì)量”。認(rèn)為特征越多越好是另一個(gè)常見(jiàn)誤區(qū)。無(wú)關(guān)或冗余的特征會(huì)增加模型復(fù)雜度延長(zhǎng)訓(xùn)練時(shí)間并可能引入噪聲導(dǎo)致過(guò)擬合模型在訓(xùn)練集上表現(xiàn)很好在測(cè)試集上很差。特征分析的一個(gè)重要目標(biāo)就是為后續(xù)的特征選擇提供依據(jù)用盡可能少、信息量盡可能大的特征來(lái)構(gòu)建模型這往往能獲得更穩(wěn)健、可解釋性更強(qiáng)的模型。5. 從分析到論文如何呈現(xiàn)你的特征分析工作在數(shù)學(xué)建模論文中“數(shù)據(jù)特征分析”或“數(shù)據(jù)預(yù)處理”部分是你展示嚴(yán)謹(jǐn)科學(xué)態(tài)度的第一個(gè)舞臺(tái)。寫(xiě)得好能極大提升論文的“第一印象分”。寫(xiě)作結(jié)構(gòu)建議數(shù)據(jù)概覽簡(jiǎn)要說(shuō)明數(shù)據(jù)來(lái)源、樣本量、特征數(shù)量及類型數(shù)值型、類別型、文本型等。數(shù)據(jù)質(zhì)量診斷系統(tǒng)性地匯報(bào)缺失值、異常值的檢測(cè)情況。用表格展示各特征的缺失比例用箱線圖等展示異常值分布。并闡述你對(duì)其產(chǎn)生原因的初步判斷。數(shù)據(jù)預(yù)處理詳細(xì)說(shuō)明你對(duì)缺失值、異常值、分布轉(zhuǎn)換的具體處理方法及理由。例如“由于‘用戶年齡’特征缺失率低于5%且為完全隨機(jī)缺失故采用基于KNN模型的方法進(jìn)行填充該方法能更好地保持特征間的關(guān)聯(lián)關(guān)系。” 處理前后最好有對(duì)比圖如分布對(duì)比。特征分布與關(guān)系分析這是核心部分。單變量分布選擇關(guān)鍵特征用直方圖/密度圖展示其分布并說(shuō)明其統(tǒng)計(jì)特性如偏態(tài)以及對(duì)建??赡艿挠绊懭缡欠裥枰D(zhuǎn)換。多變量關(guān)系展示相關(guān)系數(shù)熱力圖并文字描述發(fā)現(xiàn)的高相關(guān)特征組。對(duì)于與目標(biāo)變量高度相關(guān)的特征可以重點(diǎn)分析。散點(diǎn)圖矩陣可以選擇部分關(guān)鍵特征對(duì)進(jìn)行展示。特征工程規(guī)劃基于以上分析提出你計(jì)劃構(gòu)造的新特征如交互項(xiàng)、多項(xiàng)式特征、基于領(lǐng)域知識(shí)的衍生特征以及特征編碼、縮放的選擇。這部分可以和你后續(xù)的“模型建立”章節(jié)相呼應(yīng)。圖表與表述技巧圖表清晰確保所有圖表都有編號(hào)和標(biāo)題圖中的文字大小要適宜。熱力圖、散點(diǎn)圖的顏色映射要易于解讀。表述專業(yè)避免“我發(fā)現(xiàn)”、“我覺(jué)得”等主觀表述改用“分析表明”、“數(shù)據(jù)顯示”、“結(jié)果表明”等客觀表述。分析有據(jù)每一個(gè)結(jié)論都要有數(shù)據(jù)或圖表支撐。不要說(shuō)“特征A和B相關(guān)性強(qiáng)”而要說(shuō)“特征A與B的皮爾遜相關(guān)系數(shù)為0.85呈現(xiàn)強(qiáng)正相關(guān)關(guān)系見(jiàn)圖3”。銜接下文在分析部分的最后可以簡(jiǎn)要總結(jié)從特征分析中得出的、對(duì)后續(xù)建模的指導(dǎo)性結(jié)論。例如“綜上所述經(jīng)過(guò)預(yù)處理后數(shù)據(jù)質(zhì)量良好。特征X與目標(biāo)變量Y呈現(xiàn)顯著非線性關(guān)系提示在后續(xù)建模中可能需要引入多項(xiàng)式項(xiàng)或使用非線性模型?!闭f(shuō)到底數(shù)據(jù)特征分析是一項(xiàng)兼具藝術(shù)與科學(xué)的工作。它需要你像偵探一樣敏銳像科學(xué)家一樣嚴(yán)謹(jǐn)又像工程師一樣務(wù)實(shí)。沒(méi)有放之四海而皆準(zhǔn)的流程但有一個(gè)核心心法永遠(yuǎn)對(duì)數(shù)據(jù)保持好奇和懷疑讓圖形和統(tǒng)計(jì)量成為你與數(shù)據(jù)對(duì)話的語(yǔ)言最終目的不是完成一份分析報(bào)告而是真正理解你所要解決問(wèn)題的載體——數(shù)據(jù)本身。這份理解才是你構(gòu)建任何卓越模型的堅(jiān)實(shí)基石。