一、簡(jiǎn)介
機(jī)器學(xué)習(xí)的特征工程是將原始的輸入數(shù)據(jù)轉(zhuǎn)換成特征,以便于更好的表示潛在的問(wèn)題,并有助于提高預(yù)測(cè)模型準(zhǔn)確性的過(guò)程。
找出合適的特征是很困難且耗時(shí)的工作,它需要專家知識(shí),而應(yīng)用機(jī)器學(xué)習(xí)基本也可以理解成特征工程。但是,特征工程對(duì)機(jī)器學(xué)習(xí)模型的應(yīng)用有很大影響,有句俗話叫做“數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)模型的性能上限”。
二、錯(cuò)誤數(shù)據(jù)和缺失值
特征工程之前需要對(duì)缺失數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)進(jìn)行處理。錯(cuò)誤數(shù)據(jù)可以矯正,有的錯(cuò)誤是格式錯(cuò)誤,如日期的格式可能是“2018-09-19”和“20180920”這種混合的,要統(tǒng)一。
缺失數(shù)據(jù)的處理:
去掉所在行/列
取均值
中位數(shù)
眾數(shù)
使用算法預(yù)測(cè)
三、特征的種類
機(jī)器學(xué)習(xí)的輸入特征包括幾種:
數(shù)值特征:包括整形、浮點(diǎn)型等,可以有順序意義,或者無(wú)序數(shù)據(jù)。
分類特征:如ID、性別等。
時(shí)間特征:時(shí)間序列如月份、年份、季度、日期、小時(shí)等。
空間特征:經(jīng)緯度等,可以轉(zhuǎn)換成郵編,城市等。
文本特征:文檔,自然語(yǔ)言,語(yǔ)句等,這里暫時(shí)不介紹處理。
四、特征工程技巧
4.1、分箱(Binning)
數(shù)據(jù)分箱(Binning)是一種數(shù)據(jù)預(yù)處理技術(shù),用于減少輕微觀察錯(cuò)誤的影響。落入給定小間隔bin的原始數(shù)據(jù)值由代表該間隔的值(通常是中心值)代替。這是一種量化形式。 統(tǒng)計(jì)數(shù)據(jù)分箱是一種將多個(gè)或多或少連續(xù)值分組為較少數(shù)量的“分箱”的方法。例如,如果您有關(guān)于一組人的數(shù)據(jù),您可能希望將他們的年齡安排到較小的年齡間隔。對(duì)于一些時(shí)間數(shù)據(jù)可以進(jìn)行分箱操作,例如一天24小時(shí)可以分成早晨[5,8),上午[8,11),中午[11,14),下午[14,19),夜晚[10,22),深夜[19,24)和[24,5)。因?yàn)楸热缰形?1點(diǎn)和12點(diǎn)其實(shí)沒有很大區(qū)別,可以使用分箱技巧處理之后可以減少這些“誤差”。
4.2、獨(dú)熱編碼(One-Hot Encoding)
獨(dú)熱編碼(One-Hot Encoding)是一種數(shù)據(jù)預(yù)處理技巧,它可以把類別數(shù)據(jù)變成長(zhǎng)度相同的特征。例如,人的性別分成男女,每一個(gè)人的記錄只有男或者女,那么我們可以創(chuàng)建一個(gè)維度為2的特征,如果是男,則用(1,0)表示,如果是女,則用(0,1)。即創(chuàng)建一個(gè)維度為類別總數(shù)的向量,把某個(gè)記錄的值對(duì)應(yīng)的維度記為1,其他記為0即可。對(duì)于類別不多的分類變量,可以采用獨(dú)熱編碼。
4.3、特征哈希(Hashing Trick)
對(duì)于類別數(shù)量很多的分類變量可以采用特征哈希(Hashing Trick),特征哈希的目標(biāo)就是將一個(gè)數(shù)據(jù)點(diǎn)轉(zhuǎn)換成一個(gè)向量。利用的是哈希函數(shù)將原始數(shù)據(jù)轉(zhuǎn)換成指定范圍內(nèi)的散列值,相比較獨(dú)熱模型具有很多優(yōu)點(diǎn),如支持在線學(xué)習(xí),維度減小很多燈。具體參考數(shù)據(jù)特征處理之特征哈希(Feature Hashing)。
4.4、嵌套法(Embedding)
嵌套法(Embedding)是使用神經(jīng)網(wǎng)絡(luò)的方法來(lái)將原始輸入數(shù)據(jù)轉(zhuǎn)換成新特征,嵌入實(shí)際上是根據(jù)您想要實(shí)現(xiàn)的任務(wù)將您的特征投影到更高維度的空間,因此在嵌入空間中,或多或少相似的特征在它們之間具有小的距離。 這允許分類器更好地以更全面的方式學(xué)習(xí)表示。例如,word embedding就是將單個(gè)單詞映射成維度是幾百維甚至幾千維的向量,在進(jìn)行文檔分類等,原本具有語(yǔ)義相似性的單詞映射之后的向量之間的距離也比較小,進(jìn)而可以幫助我們進(jìn)一步進(jìn)行機(jī)器學(xué)習(xí)的應(yīng)用,這一點(diǎn)比獨(dú)熱模型好很多。
4.5、取對(duì)數(shù)(Log Transformation)
取對(duì)數(shù)就是指對(duì)數(shù)值做log轉(zhuǎn)換,可以將范圍很大的數(shù)值轉(zhuǎn)換成范圍較小的區(qū)間中。Log轉(zhuǎn)換對(duì)分布的形狀有很大的影響,它通常用于減少右偏度,使得最終的分布形狀更加對(duì)稱一些。它不能應(yīng)用于零值或負(fù)值。對(duì)數(shù)刻度上的一個(gè)單位表示乘以所用對(duì)數(shù)的乘數(shù)。在某些機(jī)器學(xué)習(xí)的模型中,對(duì)特征做對(duì)數(shù)轉(zhuǎn)換可以將某些連乘變成求和,更加簡(jiǎn)單,這不屬于這部分范圍了。
如前所述,log轉(zhuǎn)換可以將范圍很大的值縮小在一定范圍內(nèi),這對(duì)某些異常值的處理也很有效,例如用戶查看的網(wǎng)頁(yè)數(shù)量是一個(gè)長(zhǎng)尾分布,一個(gè)用戶在短時(shí)間內(nèi)查看了500個(gè)和1000個(gè)頁(yè)面都可能屬于異常值,其行為可能差別也沒那么大,那么使用log轉(zhuǎn)換也能體現(xiàn)這種結(jié)果。
4.6、特征縮放(Scaling)
特征縮放是一種用于標(biāo)準(zhǔn)化獨(dú)立變量或數(shù)據(jù)特征范圍的方法。 在數(shù)據(jù)處理中,它也稱為數(shù)據(jù)標(biāo)準(zhǔn)化,并且通常在數(shù)據(jù)預(yù)處理步驟期間執(zhí)行。特征縮放可以將很大范圍的數(shù)據(jù)限定在指定范圍內(nèi)。由于原始數(shù)據(jù)的值范圍變化很大,在一些機(jī)器學(xué)習(xí)算法中,如果沒有標(biāo)準(zhǔn)化,目標(biāo)函數(shù)將無(wú)法正常工作。例如,大多數(shù)分類器按歐幾里德距離計(jì)算兩點(diǎn)之間的距離。 如果其中一個(gè)要素具有寬范圍的值,則距離將受此特定要素的控制。因此,應(yīng)對(duì)所有特征的范圍進(jìn)行歸一化,以使每個(gè)特征大致與最終距離成比例。
應(yīng)用特征縮放的另一個(gè)原因是梯度下降與特征縮放比沒有它時(shí)收斂得快得多。
特征縮放主要包括兩種:
最大最小縮放(Min-max Scaling)
標(biāo)準(zhǔn)化縮放(Standard(Z) Scaling)
4.7、標(biāo)準(zhǔn)化(Normalization)
在最簡(jiǎn)單的情況下,標(biāo)準(zhǔn)化意味著將在不同尺度上測(cè)量的值調(diào)整到概念上的共同尺度。在更復(fù)雜的情況下,標(biāo)準(zhǔn)化可以指更復(fù)雜的調(diào)整,其中意圖是使調(diào)整值的整個(gè)概率分布對(duì)齊。在一般情況下,可能有意將分布與正態(tài)分布對(duì)齊。
在統(tǒng)計(jì)學(xué)的另一種用法中,標(biāo)準(zhǔn)化上將不同單位的數(shù)值轉(zhuǎn)換到可以互相比較的范圍內(nèi),避免總量大小的影響。標(biāo)準(zhǔn)化后的數(shù)據(jù)對(duì)于某些優(yōu)化算法如梯度下降等也很重要。
在回歸模型中加入交互項(xiàng)是一種非常常見的處理方式。它可以極大的拓展回歸模型對(duì)變量之間的依賴的解釋。具體參見回歸模型中的交互項(xiàng)簡(jiǎn)介(Interactions in Regression)。
五、時(shí)間特征處理
幾乎所有的時(shí)間特征都要處理,時(shí)間特征有序列性,其順序有意義。這里簡(jiǎn)單列舉幾種處理方式。
5.1、分箱法
這是最常用的方法,如前面所述。有時(shí)候11點(diǎn)與12點(diǎn)之間差別并沒有意義,可以采用上述分箱法處理。
5.2、趨勢(shì)線(Treadlines)
多使用趨勢(shì)量而不是總量來(lái)編碼,例如使用上個(gè)星期花銷,上個(gè)月花銷,去年的花銷,而不是總花銷。兩個(gè)總花銷相同的客戶可能在消費(fèi)行為上有很大差別。
5.3、事件貼近(Closeness to major events)
假日之前幾天,每個(gè)月第一個(gè)周六等。這種重要時(shí)間節(jié)點(diǎn)附近的值可能更有意義。
5.4、時(shí)間差(Time Difference)
上次用戶交互的時(shí)間到這次用戶交互時(shí)間間隔,這種時(shí)間差別意義也很大。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100777 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132654 -
數(shù)據(jù)預(yù)處理
+關(guān)注
關(guān)注
1文章
20瀏覽量
2772
原文標(biāo)題:機(jī)器學(xué)習(xí):特征工程相關(guān)技術(shù)簡(jiǎn)介
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論