【特征工程】特征工程技術(shù)與方法

引言

在之前學習機器學習技術(shù)中,很少關注特征工程(Feature Engineering),然而,單純學習機器學習的算法流程,可能仍然不會使用這些算法,尤其是應用到實際問題的時候,常常不知道怎么提取特征來建模。

特征是機器學習系統(tǒng)的原材料,對最終模型的影響是毋庸置疑的。

特征工程的重要意義

數(shù)據(jù)特征會直接影響你使用的預測模型和實現(xiàn)的預測結(jié)果。準備和選擇的特征越好,則實現(xiàn)的結(jié)果越好。

影響預測結(jié)果好壞的因素:模型的選擇、可用的數(shù)據(jù)、特征的提取。

優(yōu)質(zhì)的特征往往描述了數(shù)據(jù)的固有結(jié)構(gòu)。

大多數(shù)模型都可以通過數(shù)據(jù)中良好的結(jié)構(gòu)很好的學習,即使不是最優(yōu)的模型,優(yōu)質(zhì)的特征也可以得到不錯的效果。優(yōu)質(zhì)特征的靈活性可以讓你使用簡單的模型運算的更快,更容易理解,更容易維護。

優(yōu)質(zhì)的特征可以在使用不是最優(yōu)的模型參數(shù)的情況下得到不錯的預測結(jié)果,這樣你就不必費力去選擇最適合的模型和最優(yōu)的參數(shù)了。

特征工程定義

特征工程是將原始數(shù)據(jù)轉(zhuǎn)化為特征,更好表示預測模型處理的實際問題,提升對于未知數(shù)據(jù)的準確性。它是用目標問題所在的特定領域知識或者自動化的方法來生成、提取、刪減或者組合變化得到特征。

下面的圖給出了特征工程的概貌:

特征工程的子問題

機器學習中的特征(Feature)

在機器學習和模式識別中,特征是在觀測現(xiàn)象中的一種獨立、可測量的屬性。選擇信息量大的、有差別性的、獨立的特征是模式識別、分類和回歸問題的關鍵一步。

最初的原始特征數(shù)據(jù)集可能太大,或者信息冗余,因此在機器學習的應用中,一個初始步驟就是選擇特征的子集,或構(gòu)建一套新的特征集,減少功能來促進算法的學習,提高泛化能力和可解釋性。

在表格數(shù)據(jù)中,觀測數(shù)據(jù)或?qū)嵗▽砀竦囊恍校┯刹煌淖兞炕蛘邔傩裕ū砀竦囊涣校?gòu)成,這里屬性其實就是特征。但是與屬性一詞不同的是,特征是對于分析和解決問題有用、有意義的屬性。

在機器視覺中,一幅圖像是一個觀測,但是特征可能是圖中的一條線;在自然語言處理中,一個文本是一個觀測,但是其中的段落或者詞頻可能才是一種特征;在語音識別中,一段語音是一個觀測,但是一個詞或者音素才是一種特征。

特征的重要性(Feature Importance)

你可以客觀的評價特征的實用性。判別特征的重要性是對特征進行選擇的預先指標,特征根據(jù)重要性被分配分數(shù),然后根據(jù)分數(shù)不同進行排序,其中高分的特征被選擇出來放入訓練數(shù)據(jù)集。

如果與因變量(預測的事物)高度相關,則這個特征可能很重要,其中相關系數(shù)和獨立變量方法是常用的方法。

在構(gòu)建模型的過程中,一些復雜的預測模型會在算法內(nèi)部進行特征重要性的評價和選擇,如多元自適應回歸樣條法(Multivariate

Adaptive Regression Splines, MARS)、隨機森林(Random Forest)、梯度提升機(Gradient

Boosted Machines)。這些模型在模型準備階段會進行變量重要性的確定。

特征提?。‵eature Extraction)

一些觀測數(shù)據(jù)如果直接建模,其原始狀態(tài)的數(shù)據(jù)太多。像圖像、音頻和文本數(shù)據(jù),如果將其看做是表格數(shù)據(jù),那么其中包含了數(shù)以千計的屬性。

特征提取是自動地對原始觀測降維,使其特征集合小到可以進行建模的過程。

對于表格式數(shù)據(jù),可以使用主元素分析(Principal Component Analysis)、聚類等映射方法;對于圖像數(shù)據(jù),可以進行線(line)或邊緣(edge)的提?。桓鶕?jù)相應的領域,圖像、視頻和音頻數(shù)據(jù)可以有很多數(shù)字信號處理的方法對其進行處理。

特征選擇(Feature Selection)

不同的特征對模型的準確度的影響不同,有些特征與要解決的問題不相關,有些特征是冗余信息,這些特征都應該被移除掉。

特征選擇是自動地選擇出對于問題最重要的那些特征子集的過程。

特征選擇算法可以使用評分的方法來進行排序;還有些方法通過反復試驗來搜索出特征子集,自動地創(chuàng)建并評估模型以得到客觀的、預測效果最好的特征子集;還有一些方法,將特征選擇作為模型的附加功能,像逐步回歸法(Stepwise regression)

就是一個在模型構(gòu)建過程中自動進行特征選擇的算法。

特征構(gòu)建(Feature Construction)

特征重要性和選擇是告訴使用者特征的客觀特性,但這些工作之后,需要你人工進行特征的構(gòu)建。

特征構(gòu)建需要花費大量的時間對實際樣本數(shù)據(jù)進行處理,思考數(shù)據(jù)的結(jié)構(gòu),和如何將特征數(shù)據(jù)輸入給預測算法。

對于表格數(shù)據(jù),特征構(gòu)建意味著將特征進行混合或組合以得到新的特征,或通過對特征進行分解或切分來構(gòu)造新的特征;對于文本數(shù)據(jù),特征夠自己按意味著設計出針對特定問題的文本指標;對于圖像數(shù)據(jù),這意味著自動過濾,得到相關的結(jié)構(gòu)。

特征學習(Feature Learning)

特征學習是在原始數(shù)據(jù)中自動識別和使用特征。

現(xiàn)代深度學習方法在特征學習領域有很多成功案例,比如自編碼器和受限玻爾茲曼機。它們以無監(jiān)督或半監(jiān)督的方式實現(xiàn)自動的學習抽象的特征表示(壓縮形式),其結(jié)果用于支撐像語音識別、圖像分類、物體識別和其他領域的先進成果。

抽象的特征表達可以自動得到,但是你無法理解和利用這些學習得到的結(jié)果,只有黑盒的方式才可以使用這些特征。你不可能輕易懂得如何創(chuàng)造和那些效果很好的特征相似或相異的特征。這個技能是很難的,但同時它也是很有魅力的,很重要的。

特征工程的流程

機器學習中數(shù)據(jù)的轉(zhuǎn)換過程:

選擇數(shù)據(jù):收集整合數(shù)據(jù),將數(shù)據(jù)規(guī)劃化為一個數(shù)據(jù)集

預處理數(shù)據(jù):對數(shù)據(jù)進行清洗、格式化、采樣

轉(zhuǎn)換數(shù)據(jù):特征工程所在

對數(shù)據(jù)建模:構(gòu)建模型、評估模型、調(diào)整模型

特征工程的迭代過程:

對特征進行頭腦風暴:深入分析問題,觀察數(shù)據(jù)特點,參考其他問題的有關特征工程的方法并應用到自己問題中

特征的設計:你可以自動提取特征,手動構(gòu)造特征,或?qū)烧呦嘟Y(jié)合

特征選擇:使用不同的特征重要性評分方法或特征選擇方法

評估模型:利用所選擇的特征對測試數(shù)據(jù)進行預測,評估模型準確性


轉(zhuǎn)載請注明作者Jason Ding及其出處

Github博客主頁(http://jasonding1354.github.io/)

GitCafe博客主頁(http://jasonding1354.gitcafe.io/)

CSDN博客(http://blog.csdn.net/jasonding1354)

簡書主頁(http://m.itdecent.cn/users/2bd9b48f6ea8/latest_articles)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容