大家好,這里是好評筆記,公主號:Goodnote,專欄文章私信限時Free。本筆記介紹機器學習中常見的特征工程方法、正則化方法和簡要介紹強化學習。
文章目錄
- 特征工程(Fzeature Engineering)
- 1. 特征提取(Feature Extraction)
- 手工特征提取(Manual Feature Extraction):
- 自動特征提取(Automated Feature Extraction):
- 2. 特征選擇(Feature Selection)
- 1. 過濾法(Filter Methods)
- 2. 包裹法(Wrapper Methods)
- 3. 嵌入法(Embedded Methods)
- 4. 其他方法
- 5. 選擇方法的應用場景
- 總結
- 3. 特征構造(Feature Construction)
- 4. 特征縮放
- 4.1 歸一化(Normalization)
- 4.2 標準化(Standardization)
- BN、LN、IN、GN
- 熱門專欄
- 機器學習
- 深度學習
特征工程(Fzeature Engineering)
1. 特征提取(Feature Extraction)
特征提取:從原始數據中提取能夠有效表征數據特征的過程。它將原始數據轉換為適合模型輸入的特征表示。
手工特征提取(Manual Feature Extraction):
- 文本數據:
- 詞袋模型(Bag of Words):將文本數據轉化為詞頻向量,每個單詞是一個維度,值為該單詞在文本中出現的次數。
- TF-IDF:為詞袋模型加入詞頻-逆文檔頻率(Term Frequency-Inverse Document Frequency),降低常見詞語的權重,提升重要詞語的權重。
- N-gram:將連續的 N 個詞作為一個特征,捕捉詞語間的局部依賴關系。
- 圖像數據:
- 邊緣檢測:使用 Sobel 算子、Canny 邊緣檢測等方法提取圖像邊緣信息。
- SIFT(尺度不變特征變換):提取圖像的關鍵點和局部特征,具有尺度不變性和旋轉不變性。
- HOG(方向梯度直方圖):將圖像分塊,并統計每塊的梯度方向直方圖,用于描述局部形狀和紋理特征。
- 時間序列數據:
- 移動平均:對時間序列進行平滑,消除短期波動。
- 傅里葉變換:將時間域的信號轉化為頻域信號,分析數據的周期性。
- 窗口函數:將時間序列分為若干窗口,分別計算每個窗口的統計特征,如均值、方差等。
自動特征提取(Automated Feature Extraction):
- 使用卷積神經網絡(CNN):從圖像中自動提取高級特征,如邊緣、紋理、形狀等。
- 使用循環神經網絡(RNN):處理時間序列數據,捕捉長時間依賴關系。
- 使用BERT(Transformer):通過自監督學習自動提取上下文敏感的文本特征。
- 自動編碼器(Autoencoder):使用無監督學習從數據中提取低維特征表示,捕捉數據的潛在結構和模式。
2. 特征選擇(Feature Selection)
特征選擇(Feature Selection)是指從原始特征集中挑選出與目標任務最相關的特征,以提高模型的性能、減少訓練時間以及降低過擬合的風險。特征選擇方法主要分為三類:過濾法(Filter Methods)、包裹法(Wrapper Methods) 和 嵌入法(Embedded Methods)。
1. 過濾法(Filter Methods)
- 原理:獨立于模型,訓練前首先根據某些統計指標對特征進行評分,然后選擇得分較高的特征。這種方法不依賴于特定的學習算法,只是基于數據本身的特性進行篩選。
- 常見方法:
- 方差選擇法:剔除方差較小的特征,認為方差小的特征對目標值影響小。
- 皮爾森相關系數:計算特征與目標變量之間的線性相關性,選擇線性相關性較高的特征。
- 互信息:衡量特征與目標變量之間的信息增益,選擇信息量大的特征。
- 優點:計算效率高,易于實現。
- 缺點:未考慮特征之間的相互作用,可能遺漏組合特征的重要性。
2. 包裹法(Wrapper Methods)
- 原理:在訓練中,通過訓練模型評估特征子集的表現,使用搜索策略找到對目標任務最優的特征組合。包裹法直接根據模型的性能進行選擇,通常通過交叉驗證來評估特征子集的好壞。
- 常見方法:
- 前向選擇(Forward Selection):從空集開始,逐步添加對模型性能提升最大的特征。
- 后向消除(Backward Elimination):從所有特征開始,逐步移除對模型性能影響最小的特征。
- 優點:能夠考慮特征之間的相互作用,適合復雜的特征選擇任務。
- 缺點:計算開銷大,尤其是當特征數目較多時,訓練多個模型的過程會非常耗時。
3. 嵌入法(Embedded Methods)
- 原理:嵌入法結合了過濾法和包裹法的優點,直接在模型訓練過程中自動選擇特征。它通過學習算法自動選擇最重要的特征,使特征選擇與模型訓練同時進行。
- 常見方法:
- L1正則化(Lasso回歸):通過在損失函數中添加L1正則化項,使**部分特征的系數變為零,從而進行特征選擇。
- 決策樹及其變體(如隨機森林、XGBoost):樹模型的特征重要性得分可以用于選擇重要特征。
- Elastic Net:結合L1和L2正則化的優勢,在保持模型稀疏性的同時,減少了多重共線性的影響,進行特征選擇和模型優化。
- 優點:特征選擇與模型訓練同時完成,考慮特征間的相互作用,效率較高。
- 缺點:需要根據特定算法來進行選擇,不具有模型無關性。
4. 其他方法
- PCA(主成分分析):雖然PCA是降維方法,但在某些場景下可以間接用于特征選擇。通過對數據進行線性變換,將多個原始特征組合成少數幾個主成分。
- LDA(線性判別分析):常用于分類問題的降維,也可以視作一種特征選擇方法。
- 基于穩定性選擇(Stability Selection):通過在多次子樣本集上重復訓練模型,并選擇那些在多個子集上都表現重要的特征,從而增強選擇的魯棒性。
5. 選擇方法的應用場景
- 過濾法適用于快速預篩選大量特征的情況,計算效率高,但可能丟失特征之間的組合信息。
- 包裹法在特征數不多時(例如幾十個或上百個)效果較好,能找到最佳的特征組合,但計算開銷較大。
- 嵌入法通常適用于大多數場景,尤其是使用線性模型(Lasso)或樹模型時,既能訓練模型又能自動選擇特征。
總結
下面是特征選擇方法的總結表格,保留了原有的描述信息:
方法類別 | 原理 | 常見方法 | 優點 | 缺點 | 適用場景 |
---|---|---|---|---|---|
過濾法(Filter Methods) | 獨立于模型,基于統計指標對特征評分,并選擇得分較高的特征。 | - 方差選擇法:剔除方差較小的特征 - 皮爾森相關系數:選擇線性相關性高的特征 - 互信息:選擇信息增益大的特征 | 計算效率高,易于實現 | 未考慮特征間相互作用,可能遺漏重要的組合特征 | 快速預篩選大量特征的情況,適合初步篩選特征 |
包裹法(Wrapper Methods) | 通過訓練模型評估特征子集表現,使用搜索策略找到最優特征組合。 | - 遞歸特征消除(RFE):刪除不重要的特征 - 前向選擇:逐步添加性能提升最大的特征 - 后向消除:逐步移除對模型性能影響小的特征 | 能考慮特征間的相互作用,適合復雜任務 | 計算開銷大,訓練多個模型耗時長 | 特征數較少(幾十到上百個),適合需要精確特征選擇的任務 |
嵌入法(Embedded Methods) | 結合過濾法和包裹法的優點,在模型訓練過程中選擇特征。 | - L1正則化(Lasso回歸):通過L1正則化項使部分特征系數為零 - 決策樹及其變體(隨機森林、XGBoost):根據特征重要性評分選擇特征 - Elastic Net:結合L1和L2正則化 | 特征選擇與模型訓練同時進行,考慮特征間相互作用,效率高 | 需要根據特定算法選擇,不具有模型無關性 | 適合使用線性模型(如Lasso)或樹模型的場景,大多數現代復雜模型都適用 |
其他方法 | PCA、LDA等方法雖然是降維方法,但可間接用于特征選擇。 | - PCA:通過線性變換將多個特征組合成少數幾個主成分 - LDA:常用于分類問題的降維方法 - 穩定性選擇(Stability Selection):通過在子樣本集上選擇表現穩定的特征 | 能夠進行有效降維,有時可以間接用于特征選擇 | 降維后特征解釋性較弱 | 數據維度較高的情況下,可以用作降維手段,間接提高特征選擇效果 |
- 過濾法:速度快,適合預處理大量特征,但可能丟失特征間的組合信息。
- 包裹法:精度高,適合特征數較少且精度要求高的任務,但計算成本大。
- 嵌入法:性能和效率兼顧,適合大多數場景,尤其是使用線性模型(Lasso)或樹模型時。
- 其他方法:如PCA、LDA等可以作為降維手段,間接用于特征選擇,適合高維數據的場景。
選擇合適的特征選擇方法能夠有效提升模型性能,降低訓練時間,避免過擬合。
3. 特征構造(Feature Construction)
特征構造是通過對已有特征進行組合、變換或生成新特征來增強模型表達能力的過程。它可以將隱含的關系顯式化,提高模型的擬合能力。
類別 | 主要方法 | 適用場景 |
---|---|---|
數值特征構造 | 變換、分箱 | 處理數值特征、非線性關系 |
類別特征構造 | 編碼、組合 | 處理類別特征、捕捉特征間關系 |
時間特征構造 | 時間提取、周期特征、時間差 | 時間序列數據、周期性特征 |
文本特征構造 | 詞袋、TF-IDF、詞向量、N-grams | 文本數據、自然語言處理 |
特征交互與組合 | 特征交互、多項式特征 | 捕捉特征間的復雜關系,適合增強線性模型的非線性擬合能力 |
聚合與統計特征 | 聚合、統計、窗口聚合 | 大規模表格數據、時間序列數據 |
生成模型特征 | 降維、聚類、自編碼器生成特征 | 復雜高維數據、需要特征壓縮的場景 |
特征選擇與構造結合 | 篩選后構造、嵌入法生成特征 | 大規模數據集、特征選擇與構造結合的場景 |
特征構造是一項創造性和技術性并重的任務,需要結合領域知識、數據分析技巧以及機器學習經驗來挖掘出更有利于模型訓練的特征,從而提升模型的表現。
4. 特征縮放
- 歸一化:通常是指將數據縮放到一個特定的范圍,如[0, 1]。目的是讓不同特征的值處于相同的尺度上,【同時也有消除不同特征量綱的影響的作用】大范圍的特征值可能會導致梯度更新過慢或不穩定。
- 標準化:是指對數據進行均值0、標準差1的變換,更關注數據的分布形態。目的是消除不同特征的物理單位和量綱(如重量、溫度、距離等)差異,同時保持特征間的相對比例關系。
4.1 歸一化(Normalization)
歸一化將特征值縮放到 [0, 1] 之間,常用于以下算法中:
- K 近鄰算法(KNN):歸一化后減少不同特征尺度對距離計算的影響。能夠避免特征量綱不同帶來的距離計算問題。【與數據的分布無關】
- 神經網絡:將輸入特征值縮放至 [0, 1],有助于加快模型收斂。
- 聚類算法(如 K-Means):歸一化避免特征尺度不同造成聚類結果偏差。
Min - Max歸一化:將特征縮放到指定范圍(通常為[0, 1]),公式為:
x ′ = x ? x min ? x max ? ? x min ? x' = \frac{x - x_{\min}}{x_{\max} - x_{\min}} x′=xmax??xmin?x?xmin??
4.2 標準化(Standardization)
標準化將特征值轉化為均值為 0、方差為 1 的標準正態分布,常用于以下算法中:
- 線性回歸:標準化能夠提升參數解釋性,并避免部分特征影響過大。
- 邏輯回歸:標準化能夠使梯度下降更快地收斂。
- 支持向量機(SVM):標準化后距離計算更穩定。
- 主成分分析(PCA):標準化防止某些方差大的特征主導主成分的計算。
Z - score標準化: 將數據轉換為均值為0,方差為1的標準正態分布,公式為:
x ′ = x ? μ σ x' = \frac{x - \mu}{\sigma} x′=σx?μ?
BN、LN、IN、GN
以下是歸一化方法對比總結,其中加入了每種歸一化方法的原理:
歸一化方法 | 原理 | 適用場景 | 優點 | 缺點 |
---|---|---|---|---|
批歸一化(BN) | 對一個批量中的所有樣本的同一通道進行歸一化,基于批次的均值和方差調整 | 卷積網絡、全連接網絡 | 加快收斂,正則化,適應大批量訓練 | 對小批次敏感,序列任務效果差 |
層歸一化(LN) | 對單個樣本的所有通道進行歸一化,不依賴批量,計算層內均值和方差 | RNN、Transformer、序列任務 | 適應小批次訓練,不依賴批次大小 | 計算量較大,收斂可能稍慢 |
實例歸一化(IN) | 對單張圖像的每個通道分別獨立進行歸一化,計算每個樣本的通道內均值和方差 | 圖像生成、風格遷移 | 對風格敏感,適用于生成任務 | 不適合分類任務,無法捕捉全局信息 |
組歸一化(GN) | 將單個樣本的特征通道分組,對每一組進行歸一化,計算組內均值和方差 | 小批次訓練,卷積網絡 | 適合小批次,不依賴批次大小 | 對卷積核大小和通道數較敏感 |
權重歸一化(WN) | 對神經元的權重向量進行歸一化,將方向和長度分開重新參數化 | 卷積網絡、全連接網絡、生成模型 | 加速收斂,提高穩定性 | 效果不一定顯著,某些任務中不如BN |
注意,雖然他們是叫做歸一化(批歸一化、層歸一化、實例歸一化),是將多個輸入特征歸一化為均值為 0、方差為 1 的分布,使得網絡的各層輸入保持在較為穩定的范圍內。本質上是進行標準化。再進行引入兩個可學習參數 γ 和 𝛽,分別表示縮放和平移操作。
BN、LN、IN、GN 等歸一化方法都包含了標準化的步驟,即它們都會將激活值調整為均值為 0、方差為 1 的分布,關鍵區別在于這些方法在不同的范圍內計算均值和方差,以適應不同的訓練場景和模型結構:
注意: 雖然它們方法名字中帶“歸一化”(批歸一化、層歸一化、實例歸一化、組歸一化),但它們的核心操作本質上是標準化,將多個輸入特征歸一化為均值為 0、方差為 1 的分布,使得網絡的各層輸入保持在較為穩定的范圍內。本質上是進行標準化。再進行引入兩個可學習參數 γ 和 𝛽,分別表示縮放和平移操作。
熱門專欄
機器學習
機器學習筆記合集
深度學習
深度學習筆記合集