特征工程(笔记)
常用的兩種數據類型:
1、結構化數據。結構化數據類型可以看作關系型數據庫的一張表,每一列都有清晰的定義,包含數值型、類別型兩種基本類型,每一行數據代表一個樣本信息
2、非機構化數據。非結構化數據主要包括文本、圖像、音頻、視頻數據,其包含的信息無法用一個簡單的數值表示,也沒有清晰的類別定義,并且每條數據的大小各不相同
一、特征歸一化
為了消除數據特征之間的量綱影響,我們需要對特征進行歸一化處理,使的不同指標之間具有可比性,否則分析出來的結果會傾向于數值差別比較大的特征
對數值類型的特征做歸一化可以將所有的特征都統一到一個大致相同的數值區間內,最常用的兩種方法主要有
1)線性函數歸一化:使結果映射到[0,1]范圍內
2)零均值歸一化:將原始數據映射到均值為0,標準差為1的分布上
為什么需要對數值型特征做歸一化?
通過梯度下降更快更容易找到最優解
實際應用中,通過梯度下降法求解的模型通常是需要歸一化的,包括線性回歸、邏輯回歸、支持向量機、神經網絡等模型;
但是決策樹模型并不適用,決策樹在進行節點分裂時主要依據數據集D關于特征x的信息增益比,而信息增益比跟特征是否經過歸一化是無關的,因為歸一化并不會改變樣本在特征x上的信息增益
二、類別型特征
類別型特征主要是針對標簽(是否),性別(男女)等只有在有限選項內取值的特征。類別型特征原始輸入通常是字符串形式,除了決策樹等少數模型能直接處理字符串形式的輸入,對于邏輯回歸、支持向量機等模型來說,類別型特征必須經過處理轉換成數值型特征才能正常運行
在對數據進行預處理時,應該怎樣處理類別型特征?
例子:
數據? ? ? 類別ID? ? ? 二進制編碼? ? ? 獨熱編碼
A? ? ? ? ? ? ? 1? ? ? ? ? ? 0? ?0? ?1? ? ? ? ? ? 1? 0? 0? 0
B? ? ? ? ? ? ? 2? ? ? ? ? ? 0? ?1? ?0? ? ? ? ? ? 0? 1? 0? 0
C? ? ? ? ? ? ? 3? ? ? ? ? ? 0? ?1? ?1? ? ? ? ? ? 0? 0? 1? 0
D? ? ? ? ? ? ? 4? ? ? ? ? ? 1? ?0? ?0? ? ? ? ? ? 0? 0? 0? 1
三、高維組合特征的處理
什么是組合特征?如何處理高維組合特征?
為了提高復雜關系的擬合能力,在特征工程中經常會把一階離散特征兩兩組合,構成高階組合特征,通過矩陣分解可以處理高維組合特征
四、組合特征
如果簡單地兩兩組合,依然容易存在參數過多、過擬合等問題,而且不是所有的特征組合都是有意義的,因此應該需要找到對哪些特征進行組合
怎樣有效地找到有效組合特征?
基于決策樹的特征組合尋找方法,每一條從根節點到葉節點的路徑都可以看成一種特征組合的方式
如何有效的構造決策樹?
可以采用梯度提升決策樹,該方法的思想是每次都在之前構建的決策樹的殘差上構建下一顆決策樹
五、文本表示模型
文本是一類非常重要的非結構化數據,如何表示文本數據一直是機器學習領域的一個重要的研究方向
主要有:詞袋模型(Bag of Words)? TF-IDF(Term Frequency-Inverse Document Frequency)? 主題模型(Topic model)? 詞嵌入模型(Word Embedding)
主要的文本表示模型以及優缺點?
詞袋模型和N-gram模型
? ? ? 最基本的文本表示模型是詞袋模型。將每篇文章看成一個子詞,并忽略每個詞出現的順序。具體來說,就是將整段文本以詞為單位切分開,然后每篇文章可以表示成一個長向量,向量中的每一維表示一個單詞,而該維對應的權重則反映了這個詞在原文章中的重要程度。
常用TF-IDF來計算權重,公式為
? ? ? ? ? ? ? ? ? ? TF-IDF(t,d) = TF(t,d)*IDF(t),
其中TF(t,d) 為單詞t在文檔d中出現的頻率,
IDF(t)是逆文檔頻率,用來衡量單詞t對表達語義的重要性,表示為IDF(t) = log(文章總數/包含單詞t的文章總數+1),直觀的解釋,如果一個單詞在非常多的文章里面都出現,那么它可能是一個比較通用的詞匯,對于區分某篇文章特殊語義的貢獻較小,因此對權重做一定的懲罰
? ? ? 將文章進行單詞級別的劃分并不是一個好的做法,將詞組中的單詞拆分開來和詞組表達意思不相同。通??梢詫⒁粋€詞組中連續的n個詞組成的詞組(N-gram)作為一個單獨的特征放到向量表示中去,構成N-gram模型。(此外,同一個詞可能有多種詞性變化,卻具有相似的含義)
主題模型
主題模型用于從文本庫中發現有代表性的主題(得到每個主題上面詞的分布特征),并且能夠計算出每篇文章的主題分布
詞嵌入
詞嵌入是一類將詞向量化的模型的統稱,核心思想將每個詞都映射成低維度空間(k=50~300)上的一個稠密向量。k維空間的每一維也可以看作一個隱含的主題,只不過不像主題模型中的主題那樣直觀
六、Word2Vec
谷歌2013年提出的Word2Vec是目前最常用的詞嵌入模型之一。Word2Vec是一種淺層的神經網絡模型,它有兩種網絡結構,分別是CBOW(Continues Bag of Words)和Skip-gram
Word2Vec是如何工作的?與LDA有什么區別和聯系?
CBOW是根據上下文出現的詞語來預測當前詞的生成概率
Skip-gram是根據當前詞來預測上下文中各詞的生成概率
模型主要由三個部分組成:輸入層,映射層,輸出層
輸入層:輸入的每個詞由獨熱編碼方式表示,即所有詞均表示成一個N維向量,其中N為詞匯表中單詞的總數。(在向量中,每個詞都將與之對應的維度為1,其余維度的值均為0)
映射層(隱藏層):k個隱藏單元的取值可以由N維輸入向量以及連接輸入和隱含單元之間的N*k維權重矩陣得到
輸出層:輸出值向量的值可以通過隱含層向量,以及連接隱含層和輸出層之間的k*N維權重矩陣計算得到。輸出層也是一個N維向量,每維與詞匯表中的一個單詞相對應。最后對輸出層向量應用激活函數,可以計算出每個單詞的生成概率
Word2Vec與LDA的區別和聯系?
首先,LDA是利用文檔中單詞的共現關系來對單詞按主題聚類,也可以理解為對‘文檔-單詞’矩陣進行分解,得到‘文檔-主題’和‘主題-單詞’兩個概率分布。Word2Vec是對‘上下文-單詞’矩陣進行學習,其中上下文由周圍的幾個單詞組成,由此得到的詞向量表示更多地融入上下文共現的特征
主題模型是一種基于概率圖模型的生成式模型,其似然函數可以寫成若干條件概率連乘的形式,其中包括需要推測的隱含變量
詞嵌入模型一般表達為神經網絡的形式,似然函數定義在網絡的輸出之上,需要通過學習網絡的權重以得到單詞的稠密向量表示
七、圖像數據不足時的處理方法
當訓練一個圖像分類模型時,如果訓練樣本比較少,該如何處理
遷移學習、生成對抗網絡、圖像處理、上采樣技術、數據擴充
在圖像分類任務中,訓練數據不足會帶來什么問題?如何緩解數據量不足帶來什么問題?
訓練不足帶來的問題主要表現在過擬合方面,即模型在訓練樣本上的效果啃呢個不錯,但在測試集效果不佳
解決辦法:
1、基于模型方法,主要是采用降低過擬合風險的措施,包括簡化模型,添加正則項,繼承學習,Dropout超參數等
2、基于數據方法,主要通過數據擴充,即根據一些先驗知識,在保持特定信息的前提下,對原始數據進行適當變換以達到擴充數據集的效果
總結
- 上一篇: XGBoost与LightGBM原理及应
- 下一篇: scala面向对象