官术网_书友最值得收藏!

特征工程

【導(dǎo)讀】我們都知道,建筑工程是關(guān)于建筑的工程,即通過一系列基建動作搭建一座建筑。與之類似,特征工程就是關(guān)于"特征"的工程,更確切一點,就是通過一系列手段獲取事物或現(xiàn)象的特征。

什么是特征工程

特征工程(feature engineering),是指通過獲取事物或現(xiàn)象的特征(數(shù)據(jù)),尤其是能夠表述事物或現(xiàn)象的主要特征(數(shù)據(jù)),結(jié)合先驗經(jīng)驗,對未知事物或現(xiàn)象進(jìn)行判別。

日常生活中,我們經(jīng)常有意或無意地進(jìn)行著特征工程。

例如,小美跟著爸爸去公園玩,無意中一扭頭,看到別人牽了一條很大的動物路過。小美問爸爸,她剛剛看到了一只高大、兇猛、多毛的動物。小美爸爸一聽,就猜小美可能看到了一只藏獒。

這個例子中,小美和爸爸做了兩件事:特征工程和事物判別。小美看了一眼并獲得"一只高大、兇猛、多毛的動物"的認(rèn)知過程,事實上是在做特征工程,即通過視覺獲取這個動物的特征"高大、兇猛、多毛";小美爸爸根據(jù)小美描述的特征數(shù)據(jù),并結(jié)合先驗經(jīng)驗,判斷可能是一種叫"藏獒"的狗,小美的爸爸事實上在做事物判別。

當(dāng)然,這里的特征工程不是泛指生活中對各種各樣事物的特征獲取,而是針對機(jī)器學(xué)習(xí)領(lǐng)域中的特征工程。機(jī)器學(xué)習(xí)就是讓機(jī)器去學(xué)習(xí)人的推理與判斷能力,以便人們可以把許多工作外包給機(jī)器去執(zhí)行。這一過程通常由兩個階段構(gòu)成:一個是機(jī)器學(xué)習(xí)階段,另一個是機(jī)器判別階段。機(jī)器學(xué)習(xí)是機(jī)器判別的前提,機(jī)器判別是機(jī)器學(xué)習(xí)的目的。

無論是機(jī)器學(xué)習(xí)還是機(jī)器判別,都需要給機(jī)器輸入數(shù)據(jù)。

機(jī)器學(xué)習(xí)階段,輸入的數(shù)據(jù)是先驗經(jīng)驗數(shù)據(jù),包括事物或現(xiàn)象的特征數(shù)據(jù)和類別標(biāo)簽(特征數(shù)據(jù)與類別標(biāo)簽之間具有已知的對應(yīng)關(guān)系)。人們首先根據(jù)大量已知事物或現(xiàn)象(簡稱"樣本")的特征數(shù)據(jù)與類別標(biāo)簽之間的對應(yīng)關(guān)系,建立一套推理與判斷規(guī)則(簡稱"算法模型"),然后把各樣本的特征數(shù)據(jù)輸入機(jī)器,期望機(jī)器通過算法模型的計算,輸出與真實類別標(biāo)簽結(jié)果一模一樣的答案,或者至少不要差別太大。

實際過程中,機(jī)器通過算法模型計算輸出的結(jié)果會跟真實類別標(biāo)簽之間存在一定偏差(讀者可以思考一下這個問題:為什么一定會有偏差)。如何減少這個偏差,讓輸出結(jié)果盡可能地接近真實類別標(biāo)簽?zāi)兀看鸢甘钦{(diào)整算法模型的有關(guān)參數(shù)(類似傳統(tǒng)收音機(jī)的調(diào)頻按鈕),然后再讓機(jī)器根據(jù)各樣本的特征數(shù)據(jù)進(jìn)行計算輸出,再測算輸出結(jié)果與真實類別標(biāo)簽之間的偏差……如此不斷反復(fù),直到機(jī)器通過算法模型計算輸出的結(jié)果與真實樣本類別標(biāo)簽之間的偏差越來越小,并且小到某一個(規(guī)定)程度后,我們就把算法模型的有關(guān)參數(shù)固定下來,即將算法模型固定下來。這個過程就是機(jī)器學(xué)習(xí)。

有了機(jī)器學(xué)習(xí)階段得到的算法模型,日后就可用此算法模型根據(jù)未知事物或現(xiàn)象的特征數(shù)據(jù)進(jìn)行類別判別。這個過程就是機(jī)器判別。

可見,獲取事物或現(xiàn)象的特征數(shù)據(jù)是整個機(jī)器學(xué)習(xí)與機(jī)器判別的前道工序。由于事物或現(xiàn)象種類繁多、千差萬別,對事物與現(xiàn)象的特征數(shù)據(jù)的獲取是無法靠人工來實現(xiàn)的,只能借助眾多計算機(jī)技術(shù)手段。這些手段就構(gòu)成了特征工程。

為什么機(jī)器學(xué)習(xí)需要特征工程

現(xiàn)實生活中,人們對事物與現(xiàn)象的認(rèn)識都是基于特征的。反言之,基于特征,人們就可以對一個事物與現(xiàn)象進(jìn)行定義、表示和判別。例如,針對問題"誰是比爾·蓋茨?",人們的第一反應(yīng)是"微軟的主要創(chuàng)始人、軟件領(lǐng)域的天才、很富有、Windows操作系統(tǒng)的發(fā)明者"等。針對問題"華為是一家什么樣的公司?",人們的第一反應(yīng)是"5G技術(shù)領(lǐng)先者、研發(fā)能力很強(qiáng)、高端人才匯聚地、員工薪資待遇好"等。幾個關(guān)鍵特征就可以概括出事物與現(xiàn)象的本質(zhì)了。

回到前述例子,小美給爸爸描述"高大、兇猛、多毛的動物"時,小美的爸爸很快就可以判斷出可能是藏獒,而無須小美再去描述這個動物的膚色、毛的顏色、腿的長度、腿的條數(shù)、肚皮大小、眼睛大小、眼睛顏色、頭的大小、走路的動作速度……事實上,其他特征數(shù)據(jù)可能不是藏獒獨有的,對小美爸爸的判斷起不到有效作用,甚至還會引起干擾,導(dǎo)致誤判。

這說明一個問題:我們對事物或現(xiàn)象的判斷,有時不需要太過于細(xì)節(jié)、全面的描述,只需要抽取適量關(guān)鍵特征就可以。機(jī)器學(xué)習(xí)試圖模擬人的學(xué)習(xí)和思考能力,無疑,也只需要這些適量關(guān)鍵的特征數(shù)據(jù)即可。

另一方面,機(jī)器學(xué)習(xí)要處理的數(shù)據(jù)必須是計算機(jī)可以處理的定量化的數(shù)字?jǐn)?shù)據(jù),而特征數(shù)據(jù)正是可以定量化的數(shù)字?jǐn)?shù)據(jù)。

例如,我們把"高大、兇猛、多毛的動物"表示為"1111"四個數(shù)字,分別代表"高大""兇猛""多毛""動物",而"0001"則分別表示"矮小""溫柔""無毛""動物","1111"和"0001"就是計算機(jī)可以處理的定量化的數(shù)字?jǐn)?shù)據(jù)。

再則,如上所述,特征工程還可以過濾掉那些無效數(shù)據(jù),一方面可以降低誤判風(fēng)險,另一方面可以減少計算機(jī)資源的消耗。

例如,一篇文章,如何通過機(jī)器學(xué)習(xí)來判斷是關(guān)于哪方面的文章,是關(guān)于體育的還是關(guān)于娛樂或財經(jīng)的,是關(guān)于褒義的還是關(guān)于貶義的,是關(guān)于表揚的還是關(guān)于批評的……事實上,我們可以根據(jù)其中的關(guān)鍵詞(即特征數(shù)據(jù))大致判斷出來。一幅圖像(由像素組成),我們也可以通過計算機(jī)技術(shù)提取圖像的關(guān)鍵特征,然后再通過機(jī)器學(xué)習(xí)來進(jìn)行圖像識別。總之,我們無須把整篇文章的所有文字、字符、符號都輸入到機(jī)器學(xué)習(xí)算法模型中,或是把整幅圖像的成千上萬的像素輸入到機(jī)器學(xué)習(xí)算法模型中。一方面,不需要大量無效的數(shù)據(jù);另一方面,可以充分降低計算機(jī)的計算和存儲資源消耗,同時也可以提高機(jī)器學(xué)習(xí)的速度,還不影響機(jī)器學(xué)習(xí)的效果。

特征工程到底涉及哪些"工程"

一般地,特征工程就是從事物與現(xiàn)象的"原始數(shù)據(jù)"(如一篇文章、一幅圖像、一段視頻等)中提煉"特征數(shù)據(jù)"的過程。這個過程通常會涉及異常數(shù)據(jù)的清洗和樣本數(shù)據(jù)的選取、特征提取、數(shù)據(jù)預(yù)處理、特征選擇、數(shù)據(jù)降維等技術(shù)手段,每一個技術(shù)手段背后的邏輯原理與知識都很復(fù)雜。關(guān)于這方面的知識,有興趣的讀者可以參閱有關(guān)文獻(xiàn)。

【擴(kuò)展概念】

特征抽取、特征選擇:兩者達(dá)到的效果是一樣的,都是從已獲取的特征數(shù)據(jù)集中繼續(xù)提煉更為關(guān)鍵、更為主要的特征數(shù)據(jù)集(從多到少),目的是在不影響機(jī)器學(xué)習(xí)效果的情況下,盡可能地提高機(jī)器學(xué)習(xí)的效率,降低計算機(jī)的資源消耗。但是兩者所采用的方式方法卻不同,特征提取主要是通過特征屬性間的關(guān)系,如組合不同的特征屬性,以得到新的屬性;特征選擇是從特征數(shù)據(jù)集中進(jìn)一步選擇出子集,以用于機(jī)器學(xué)習(xí)。

主站蜘蛛池模板: 萝北县| 体育| 临夏县| 滦南县| 绍兴县| 武宣县| 四会市| 佛坪县| 土默特右旗| 三台县| 柞水县| 怀安县| 晋江市| 青川县| 宾阳县| 金沙县| 马关县| 衡东县| 中牟县| 德州市| 招远市| 惠安县| 西城区| 礼泉县| 织金县| 开化县| 太仓市| 涪陵区| 德州市| 武陟县| 遂宁市| 宁都县| 离岛区| 秭归县| 乐清市| 威远县| 札达县| 九寨沟县| 绩溪县| 石屏县| 香港|