特征的選擇對(duì)于整個(gè)模型預(yù)測(cè)的準(zhǔn)確性有至關(guān)重要的作用,好的特征集對(duì)于一個(gè)機(jī)器學(xué)習(xí)模型的預(yù)測(cè)效果的邊際貢獻(xiàn)遠(yuǎn)遠(yuǎn)大于好的模型的貢獻(xiàn):
- 不同的機(jī)器學(xué)習(xí)模型(SVM或RandomForest等)對(duì)于有效的特征集的訓(xùn)練效果,差別不會(huì)特別大;
- 但是,如果特征集很爛,無論什么模型,都很難有較好的訓(xùn)練效果。
所以,還是那句話:
Garbage in, garbage out !
1. 什么是特征(Features)?
特征是任何機(jī)器學(xué)習(xí)模型的進(jìn)行訓(xùn)練的”原材料”,無論是監(jiān)督式模型(Supervised)還是無監(jiān)督式(Unsupervised)模型,都需要特征集作為輸入變量(Input variables)。當(dāng)然監(jiān)督式模型相比無監(jiān)督式模型還需要輸出變量(Output),我們稱之為目標(biāo)(target)。無論是特征還是目標(biāo),它們的類型無非以下幾種:
- 二元制(Binary):如{漲,跌}, {對(duì), 錯(cuò)}, {男, 女};
- 有限的離散集 (finite discrete): 如一周有七天(星期一、星期二...),或者一個(gè)城市的行政區(qū)(黃埔、靜安...)。這些數(shù)據(jù)可以是有序的,也可以是無序的。
- 連續(xù)性數(shù)值:處于負(fù)無窮到正無窮所有數(shù)值,如股價(jià)、利率等
2. 特征怎么來?
特征是機(jī)器學(xué)習(xí)模型的“原材料”,那特征的“原材料”是什么?其實(shí)就是原始數(shù)據(jù),例如股票的行情數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)等;將這些原始數(shù)據(jù)經(jīng)過一系列的轉(zhuǎn)換加工得到特征,例如技術(shù)指標(biāo)(MACD、DMA等)。在這個(gè)轉(zhuǎn)換的過程中涉及到一系列的數(shù)據(jù)處理的流程,下面我們進(jìn)行詳細(xì)說明。
數(shù)據(jù)清洗及處理
做研究最怕什么?數(shù)據(jù)是錯(cuò)的,那一切無從談起,在盡可能的確保數(shù)據(jù)質(zhì)量的前提下,我們還是要對(duì)數(shù)據(jù)進(jìn)行規(guī)范性的清洗,無論是原始數(shù)據(jù)、還是經(jīng)轉(zhuǎn)換后的特征集都要經(jīng)過以下步驟進(jìn)行處理:
- 缺失值處理:1. 直接刪除(常用); 2. 或者進(jìn)行插值處理(Interpolate);
- 異常值處理:1. 直接刪除; 2. 極值處理到一個(gè)正常區(qū)間(推薦);
- 標(biāo)準(zhǔn)化處理:1. 正態(tài)標(biāo)準(zhǔn)化(常用);2. 其他標(biāo)準(zhǔn)化(見文末);
- 相關(guān)性指標(biāo)處理:有時(shí)候特征集當(dāng)中有些指標(biāo)的相關(guān)性特別高,對(duì)于一些模型,這種指標(biāo)間的高度相關(guān)可能會(huì)降低模型的預(yù)測(cè)效果,所以在訓(xùn)練模型之前,要找出相關(guān)性較高的幾對(duì)指標(biāo),并保留其中一個(gè)。
-
線性相關(guān)指標(biāo)處理:除了上文提高一對(duì)高度相關(guān)的指標(biāo)的問題,同時(shí)也可能存在某幾個(gè)指標(biāo)與另一個(gè)指標(biāo)存在線性回歸的關(guān)系,這也會(huì)影響模型的預(yù)測(cè)效果。01
- 特征的轉(zhuǎn)換(可選):如PCA等方法
3. 怎么選擇特征(或指標(biāo))?
訓(xùn)練任何一個(gè)機(jī)器學(xué)習(xí)的模型時(shí),輸入的特征并不是越多越好,如果一股腦放入幾十上百個(gè)特征去訓(xùn)練,往往會(huì)適得其反。一個(gè)模型的好壞往往取決于幾個(gè)(三到五個(gè))核心的指標(biāo)。所以特征的選擇就極為重要。特征選擇主要由以下兩類方法:
過濾法:該方法的特點(diǎn)是不需要機(jī)器學(xué)習(xí)模型的參與,直接測(cè)量特征與預(yù)測(cè)目標(biāo)(Target)的相關(guān)程度,只要通過某些選取標(biāo)準(zhǔn)的指標(biāo)才會(huì)被應(yīng)用到模型的訓(xùn)練中。
封裝法:該方法與過濾法最大的區(qū)別是在選特征的時(shí)候運(yùn)用的相關(guān)的機(jī)器學(xué)習(xí)模型,直接通過篩選預(yù)測(cè)效果好的指標(biāo)作為特征集。
兩種方法各有優(yōu)缺點(diǎn),過濾法會(huì)刪除相關(guān)度較低的特征,缺點(diǎn)是某些特征可能本身與目標(biāo)相關(guān)度較低,但與其他特征結(jié)合起來可能會(huì)提高預(yù)測(cè)的效果,所以存在誤刪的情況。封裝法直接將特征輸入模型,通過各種迭代選出最適合某些模型的一組特征;缺點(diǎn)時(shí)運(yùn)算效率太慢,而且存在過度擬合的風(fēng)險(xiǎn)。最適合的解決辦法是,通過過濾法篩選出一批有潛力的特征,再通過封裝法精選特征,從而構(gòu)建一個(gè)預(yù)測(cè)效果良好的機(jī)器學(xué)習(xí)模型。
在這篇文章中,我們主要討論過濾法的實(shí)際運(yùn)用。通過各種不同的判斷特征重要性的方法與標(biāo)準(zhǔn)選則相應(yīng)的特征,無外乎以下幾種方法:
- 選擇重要性最高的前N個(gè)特征;
- 選擇重要性最高的前n%的特征;
- 選擇重要性超過一定閾值s的特征。
無論是N、n還是s,都可以通過優(yōu)化的方法找到最優(yōu)值運(yùn)用到最后的模型中去。
3.1 重要性
現(xiàn)在主要的問題就是怎么評(píng)價(jià)一個(gè)特征對(duì)于所需預(yù)測(cè)的目標(biāo)的重要性,我們稱之為Variable Importance(VI)。結(jié)合各方面的文獻(xiàn),VI的評(píng)價(jià)方法主要有以下指標(biāo):
- 信息熵(Mutual Information)
- Cramer's V
(未完待續(xù))
總結(jié)
所有算法的學(xué)習(xí)都要了解該算法所針對(duì)的問題,以及這個(gè)問題是不是你當(dāng)前遇到的。不推薦窮舉式的嘗試去找出一個(gè)最優(yōu)的組合,這樣的做法
附錄
其他標(biāo)準(zhǔn)化方法