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