http://www.zhihu.com/question/31989952
連續(xù)特征的離散化:在什么情況下將連續(xù)的特征離散化之后可以獲得更好的效果渣淳?
Q:CTR預(yù)估恰聘,發(fā)現(xiàn)CTR預(yù)估一般都是用LR,而且特征都是離散的絮宁。為什么一定要用離散特征呢?這樣做的好處在哪里?
A:
在工業(yè)界晤愧,很少直接將連續(xù)值作為邏輯回歸模型的特征輸入,而是將連續(xù)特征離散化為一系列0蛉腌、1特征交給邏輯回歸模型官份,這樣做的優(yōu)勢有以下幾點:
0、 離散特征的增加和減少都很容易烙丛,易于模型的快速迭代舅巷。(離散特征的增加和減少,模型也不需要調(diào)整河咽,重新訓(xùn)練是必須的钠右,相比貝葉斯推斷方法或者樹模型方法迭代快)
1、稀疏向量內(nèi)積乘法運算速度快忘蟹,計算結(jié)果方便存儲飒房,容易擴展;
2寒瓦、離散化后的特征對異常數(shù)據(jù)有很強的魯棒性:比如一個特征是年齡>30是1情屹,否則0。如果特征沒有離散化杂腰,一個異常數(shù)據(jù)“年齡300歲”會給模型造成很大的干擾垃你;離散化后年齡300歲也只對應(yīng)于一個權(quán)重,如果訓(xùn)練數(shù)據(jù)中沒有出現(xiàn)特征"年齡-300歲"喂很,那么在LR模型中惜颇,其權(quán)重對應(yīng)于0,所以少辣,即使測試數(shù)據(jù)中出現(xiàn)特征"年齡-300歲",也不會對預(yù)測結(jié)果產(chǎn)生影響凌摄。特征離散化的過程,比如特征A漓帅,如果當(dāng)做連續(xù)特征使用锨亏,在LR模型中痴怨,A會對應(yīng)一個權(quán)重w,如果離散化,那么A就拓展為特征A-1器予,A-2浪藻,A-3...,每個特征對應(yīng)于一個權(quán)重,如果訓(xùn)練樣本中沒有出現(xiàn)特征A-4乾翔,那么訓(xùn)練的模型對于A-4就沒有權(quán)重爱葵,如果測試樣本中出現(xiàn)特征A-4,該特征A-4也不會起作用。相當(dāng)于無效反浓。但是萌丈,如果使用連續(xù)特征,在LR模型中雷则,y = w*a,a是特征辆雾,w是a對應(yīng)的權(quán)重,比如a代表年齡,那么a的取值范圍是[0..100]巧婶,如果測試樣本中,出現(xiàn)了一個測試用例乾颁,a的取值是300,顯然a是異常值艺栈,但是w*a還是有值英岭,而且值還非常大,所以湿右,異常值會對最后結(jié)果產(chǎn)生非常大的影響诅妹。
3、邏輯回歸屬于廣義線性模型毅人,表達能力受限吭狡;單變量離散化為N個后,每個變量有單獨的權(quán)重丈莺,相當(dāng)于為模型引入了非線性划煮,能夠提升模型表達能力,加大擬合缔俄;在LR模型中弛秋,特征A作為連續(xù)特征對應(yīng)的權(quán)重是Wa。A是線性特征俐载,因為y = Wa*A,y對于A的導(dǎo)數(shù)就是Wa,如果離散化后蟹略,A按區(qū)間離散化為A_1,A_2,A_3。那么y = w_1*A_1+w_2*A_2+w_3*A_3.那么y對于A的函數(shù)就相當(dāng)于分段的線性函數(shù)遏佣,y對于A的導(dǎo)數(shù)也隨A的取值變動挖炬,所以,相當(dāng)于引入了非線性状婶。
4意敛、 離散化后可以進行特征交叉馅巷,加入特征A 離散化為M個值,特征B離散為N個值草姻,那么交叉之后會有M*N個變量令杈,進一步引入非線性,提升表達能力碴倾;
5、特征離散化后掉丽,模型會更穩(wěn)定跌榔,比如如果對用戶年齡離散化,20-30作為一個區(qū)間捶障,不會因為一個用戶年齡長了一歲就變成一個完全不同的人僧须。當(dāng)然處于區(qū)間相鄰處的樣本會剛好相反,所以怎么劃分區(qū)間是門學(xué)問项炼;按區(qū)間離散化担平,劃分區(qū)間是非常關(guān)鍵的。
6锭部、特征離散化以后暂论,起到了簡化了邏輯回歸模型的作用,降低了模型過擬合的風(fēng)險拌禾。(當(dāng)使用連續(xù)特征時取胎,一個特征對應(yīng)于一個權(quán)重,那么湃窍,如果這個特征權(quán)重較大闻蛀,模型就會很依賴于這個特征,這個特征的一個微小變化可能會導(dǎo)致最終結(jié)果產(chǎn)生很大的變化您市,這樣子的模型很危險觉痛,當(dāng)遇到新樣本的時候很可能因為對這個特征過分敏感而得到錯誤的分類結(jié)果,也就是泛化能力差茵休,容易過擬合薪棒。而使用離散特征的時候,一個特征變成了多個泽篮,權(quán)重也變?yōu)槎鄠€盗尸,那么之前連續(xù)特征對模型的影響力就被分散弱化了,從而降低了過擬合的風(fēng)險帽撑。)
李沐曾經(jīng)說過:模型是使用離散特征還是連續(xù)特征泼各,其實是一個“海量離散特征+簡單模型” 同 “少量連續(xù)特征+復(fù)雜模型”的權(quán)衡。既可以離散化用線性模型亏拉,也可以用連續(xù)特征加深度學(xué)習(xí)扣蜻。就看是喜歡折騰特征還是折騰模型了逆巍。通常來說,前者容易莽使,而且可以n個人一起并行做锐极,有成功經(jīng)驗;后者目前看很贊芳肌,能走多遠還須拭目以待灵再。
http://www.zhihu.com/question/28641663/answer/41653367
機器學(xué)習(xí)中,有哪些特征選擇的工程方法亿笤?
特征選擇是特征工程中的重要問題(另一個重要的問題是特征提若崆ā),坊間常說:數(shù)據(jù)和特征決定了機器學(xué)習(xí)的上限净薛,而模型和算法只是逼近這個上限而已汪榔。由此可見,特征工程尤其是特征選擇在機器學(xué)習(xí)中占有相當(dāng)重要的地位肃拜。機器學(xué)習(xí)做得好不好痴腌,被數(shù)據(jù)和模型共同影響,比如說燃领,數(shù)據(jù)本身不可分士聪,那么SVM等分類算法再牛逼,也不能完全正確分開柿菩。數(shù)據(jù)集本身是有內(nèi)在特性的戚嗅,數(shù)據(jù)集本身的特征決定了機器學(xué)習(xí)的上限。所以枢舶,一個機器學(xué)習(xí)算法可能在數(shù)據(jù)集A上效果很好懦胞,但在數(shù)據(jù)集B上效果很差,這是很正常的現(xiàn)象凉泄,因為數(shù)據(jù)集A和B的內(nèi)在特性不一樣躏尉。我以前學(xué)別人使用GBDT提取特征,別人使用GBDT提取特征后众,可以使分類效果提升胀糜,但是,我使用了GBDT提特征蒂誉,并沒有使效果提升教藻。因為數(shù)據(jù)集特性不一樣。所以右锨,數(shù)據(jù)集的特性決定了算法能達到效果的上限括堤。
通常而言,特征選擇是指選擇獲得相應(yīng)模型和算法最好性能的特征集,工程上常用的方法有以下:
1.計算每一個特征與響應(yīng)變量的相關(guān)性:工程上常用的手段有計算皮爾遜系數(shù)和互信息系數(shù)悄窃,皮爾遜系數(shù)只能衡量線性相關(guān)性而互信息系數(shù)能夠很好地度量各種相關(guān)性讥电,但是計算相對復(fù)雜一些,好在很多toolkit里邊都包含了這個工具(如sklearn的MINE)轧抗,得到相關(guān)性之后就可以排序選擇特征了.(其實就是計算輸出關(guān)于輸入的導(dǎo)數(shù)恩敌,如果某個特征很大程度上影響了輸出,那么該特征就會比較重要)横媚。
2. 構(gòu)建單個特征的模型纠炮,通過模型的準(zhǔn)確性為特征排序,借此來選擇特征灯蝴,另外抗碰,記得JMLR'03上有一篇論文介紹了一種基于決策樹的特征選擇方法,本質(zhì)上是等價的绽乔。當(dāng)選擇到了目標(biāo)特征之后,再用來訓(xùn)練最終的模型碳褒;
3.?通過L1正則項來選擇特征:L1正則方法具有稀疏解的特性折砸,因此天然具備特征選擇的特性,但是要注意沙峻,L1沒有選到的特征不代表不重要睦授,原因是兩個具有高相關(guān)性的特征可能只保留了一個,如果要確定哪個特征重要應(yīng)再通過L2正則方法交叉檢驗摔寨;
4. 訓(xùn)練能夠?qū)μ卣鞔蚍值念A(yù)選模型:RandomForest和Logistic Regression等都能對模型的特征打分去枷,通過打分獲得相關(guān)性后再訓(xùn)練最終模型;
5. 通過特征組合后再來選擇特征:如對用戶id和用戶特征最組合來獲得較大的特征集再來選擇特征是复,這種做法在推薦系統(tǒng)和廣告系統(tǒng)中比較常見删顶,這也是所謂億級甚至十億級特征的主要來源,原因是用戶數(shù)據(jù)比較稀疏淑廊,組合特征能夠同時兼顧全局模型和個性化模型逗余,這個問題有機會可以展開講。
6. 通過深度學(xué)習(xí)來進行特征選擇:目前這種手段正在隨著深度學(xué)習(xí)的流行而成為一種手段季惩,尤其是在計算機視覺領(lǐng)域录粱,原因是深度學(xué)習(xí)具有自動學(xué)習(xí)特征的能力,這也是深度學(xué)習(xí)又叫unsupervisedfeature learning的原因画拾。從深度學(xué)習(xí)模型中選擇某一神經(jīng)層的特征后就可以用來進行最終目標(biāo)模型的訓(xùn)練了啥繁。
這是結(jié)合sklearn的特征選擇方法: http://www.cnblogs.com/zhizhan/p/5035306.html?
在廣告LR模型中,為什么要做特征組合青抛?
在業(yè)界旗闽,LR模型之所以很受歡迎,主要是因為LR模型本質(zhì)是對數(shù)線性模型,實現(xiàn)簡單宪睹,易于并行愁茁,大規(guī)模擴展方便,迭代速度快亭病,同時使用的特征比較好解釋鹅很,預(yù)測輸出在0與1之間契合概率模型。(模型的可解釋性舉例罪帖,比如A-B的權(quán)重比較大促煮,A代表用戶,B代表物品整袁,那么可以認為A是對B比較感興趣的)但是菠齿,線性模型對于非線性關(guān)系缺乏準(zhǔn)確刻畫,特征組合正好可以加入非線性表達坐昙,增強模型的表達能力绳匀。另外,廣告LR中炸客,基本特征可以認為是用于全局建模疾棵,組合特征更加精細,是個性化建模痹仙,因為在這種大規(guī)模離散LR中是尔,單對全局建模會對部分用戶有偏,對每一用戶建模又數(shù)據(jù)不足易過擬合同時帶來模型數(shù)量爆炸开仰,所以基本特征+組合特征兼顧了全局和個性化拟枚。比如特征向量中,有用戶A众弓,B恩溅,C,物品E,F,G谓娃”┙常基本的特征A,B.C.E.F.G對應(yīng)的權(quán)重,對應(yīng)的是每個對象的偏置權(quán)重傻粘,但如果A偏好E,B偏好F每窖,那么組合特征A-E,B-F就是對用戶的個性進行建模,組合特征A-E,B-F的權(quán)重就是代表A對E的喜好弦悉,和B-F的喜好窒典。
http://www.zhihu.com/question/34271604
Tips
什么是卡方檢驗?用方差來衡量某個觀測頻率和理論頻率之間差異性的方法
什么是皮爾森卡方檢驗稽莉?這是一種最常用的卡方檢驗方法瀑志,它有兩個用途:1是計算某個變量對某種分布的擬合程度,2是根據(jù)兩個觀測變量的Contingency table來計算這兩個變量是否是獨立的。主要有三個步驟:第一步用方差和的方式來計算觀測頻率和理論頻率之間卡方值劈猪;第二步算出卡方檢驗的自由度(行數(shù)-1乘以列數(shù)-1)昧甘;第三步比較卡方值和對應(yīng)自由度的卡方分布,判斷顯著性战得。
什么是p-value充边?簡單地說,p-value就是為了驗證假設(shè)和實際之間一致性的統(tǒng)計學(xué)意義的值常侦,即假設(shè)檢驗浇冰。有些地方叫右尾概率,根據(jù)卡方值和自由度可以算出一個固定的p-value聋亡,
什么是響應(yīng)變量(response value)肘习?簡單地說,模型的輸入叫做explanatroy variables坡倔,模型的輸出叫做response variables漂佩,其實就是要驗證該特征對結(jié)果造成了什么樣的影響
什么是統(tǒng)計能力(statistical power)?
什么是度量(metric)?
什么是零假設(shè)(null hypothesis)?在相關(guān)性檢驗中,一般會取“兩者之間無關(guān)聯(lián)”作為零假設(shè)罪塔,而在獨立性檢驗中排霉,一般會取“兩者之間是獨立”作為零假設(shè)呛哟。與零假設(shè)相對的是備擇假設(shè)(對立假設(shè))拯腮,即希望證明是正確的另一種可能硼控。
什么是多重共線性港柜?
什么是grid search请契?