一、高斯混合模型GMM
GMM算法(服從混合正態(tài)分布)作為EM算法族的一個(gè)例子瑞躺,它指定了各個(gè)參與雜合的分布都是高斯分布靶草,即分布參數(shù)表現(xiàn)為均值Mu和方差Sigma雨膨。通過EM算法作為計(jì)算使用的框架松蒜,迭代地算出各個(gè)高斯分布的參數(shù)扔茅。
二、GMM和k-means的比較
相同點(diǎn)
均為無監(jiān)督方法秸苗,都是迭代執(zhí)行的算法召娜,且迭代的策略也相同:算法開始執(zhí)行時(shí)先對需要計(jì)算的參數(shù)賦初值,然后交替執(zhí)行兩個(gè)步驟惊楼,一個(gè)步驟是對數(shù)據(jù)的估計(jì)(k-means是估計(jì)每個(gè)點(diǎn)所屬簇玖瘸;GMM是計(jì)算隱含變量的期望;);第二步是用上一步算出的估計(jì)值重新計(jì)算參數(shù)值檀咙,更新目標(biāo)參數(shù)(k-means是計(jì)算簇心位置雅倒;GMM是計(jì)算各個(gè)高斯分布的中心位置和協(xié)方差矩陣)
不同點(diǎn)
1)需要計(jì)算的參數(shù)不同:k-means是簇心位置;GMM是各個(gè)高斯分布的參數(shù)
2)計(jì)算目標(biāo)參數(shù)的方法不同:k-means是計(jì)算當(dāng)前簇中所有元素的位置的均值弧可;GMM是基于概率的算法蔑匣,是通過計(jì)算似然函數(shù)的最大值實(shí)現(xiàn)分布參數(shù)的求解的。
3)依據(jù)不同:K-means聚類利用數(shù)據(jù)點(diǎn)之間的歐式距離大小棕诵,將數(shù)據(jù)劃分到不同的類別裁良,歐式距離較短的點(diǎn)處于同一類。算法結(jié)果直接返回的是數(shù)據(jù)點(diǎn)所屬的類別校套。
GMM假設(shè)所有數(shù)據(jù)點(diǎn)來自多個(gè)參數(shù)不同的高斯分布价脾,給出的是每一個(gè)觀測點(diǎn)由哪個(gè)高斯分量生成的概率,算法結(jié)果返回的是數(shù)據(jù)點(diǎn)屬于不同類別的概率笛匙。
4)嚴(yán)謹(jǐn)性來說侨把,用概率進(jìn)行描述數(shù)據(jù)點(diǎn)的分類,GMM顯然要比K-mean好很多妹孙。
5)一個(gè)更流行的做法是先用 K-means (已經(jīng)重復(fù)并取最優(yōu)值了)得到一個(gè)粗略的結(jié)果秋柄,然后將其作為初值(只要將 K-means 所得的 聚類中心傳給 GMM即可),再用 GMM 進(jìn)行細(xì)致迭代
三涕蜂、時(shí)間序列模型之灰色系統(tǒng)與灰色預(yù)測法
灰色系統(tǒng)是相對于黑色系統(tǒng)和白色系統(tǒng)而言的华匾。
白色系統(tǒng):系統(tǒng)的內(nèi)部特征是完全已知的,即系統(tǒng)的信息是完全充分的机隙。
黑色系統(tǒng):一個(gè)系統(tǒng)的內(nèi)部信息對外界來說是一無所知的蜘拉,只能通過他與外界的聯(lián)系來加以觀測研究。
灰色系統(tǒng):一部分信息是已知的有鹿,另一部分信息是未知的旭旭,系統(tǒng)內(nèi)各因素之間具有不確定關(guān)系。其特點(diǎn)是‘少數(shù)據(jù)建拇邪希’持寄,著重研究‘外延明確源梭,內(nèi)涵不明確’的對象。
灰色系統(tǒng)是指“部分信息已知稍味,部分信息未知“的”小樣本“废麻,”貧信息“的不確定系統(tǒng),以灰色模型(G,M)為核心的模型體系模庐。
灰色預(yù)測法:灰色預(yù)測法是一種對含有不確定因素的系統(tǒng)進(jìn)行預(yù)測的方法 烛愧。它通過鑒別系統(tǒng)因素之間發(fā)展趨勢的相異程度,即進(jìn)行關(guān)聯(lián)分析掂碱,并對原始數(shù)據(jù)進(jìn)行生成處理來尋找系統(tǒng)變動的規(guī)律怜姿,生成有較強(qiáng)規(guī)律性的數(shù)據(jù)序列,然后建立相應(yīng)的微分方程模型疼燥,從而預(yù)測事物未來發(fā)展趨勢的狀況沧卢。它用等時(shí)間距離觀測到的反應(yīng)預(yù)測對象特征的一系列數(shù)量值構(gòu)造灰色預(yù)測模型,預(yù)測未來某一時(shí)刻的特征量醉者,或者達(dá)到某一特征量的時(shí)間但狭。
優(yōu)點(diǎn):對于不確定因素的復(fù)雜系統(tǒng)預(yù)測效果較好,且所需樣本數(shù)據(jù)較信冉弧熟空;
缺點(diǎn):基于指數(shù)率的預(yù)測沒有考慮系統(tǒng)的隨機(jī)性,中長期預(yù)測精度較差搞莺。
適用情形
? 序列性:用等時(shí)距觀測到的反映預(yù)測對象特征的一系列數(shù)量值構(gòu)造灰色預(yù)測模型,預(yù)測未來某一時(shí)刻的特征量掂咒,或達(dá)到某一
特征量的時(shí)間才沧。(時(shí)間性或者說序列性是灰色預(yù)測的很重要的一個(gè)特征點(diǎn))
? 少數(shù)據(jù)性:原始數(shù)據(jù)序列可以少到只有4個(gè)數(shù)據(jù)。
四绍刮、Boosting温圆,AdaBoost,GBDT孩革,XGBoost岁歉,LightGBM
Boosting方法訓(xùn)練基分類器時(shí)采用串行的方式,各個(gè)基分類器之間有依賴膝蜈。其基本思想是根據(jù)當(dāng)前模型損失函數(shù)的負(fù)梯度信息來訓(xùn)練新加入的弱分類器锅移,然后將訓(xùn)練好的弱分類器以累加的形式結(jié)合到現(xiàn)有模型中。這個(gè)過程是在不斷地減小損失函數(shù)饱搏,使得模型偏差不斷降低非剃。但Boosting的過程并不會顯著降低方差。這是因?yàn)锽oosting的訓(xùn)練過程使得各弱分類器之間是強(qiáng)相關(guān)的推沸,缺乏獨(dú)立性备绽,所以并不會對降低方差有作用券坞。Boosting是一個(gè)加法模型,它是由若干個(gè)基函數(shù)及其權(quán)值乘積之和的累加肺素,要想辦法使損失函數(shù)的期望取最小值恨锚,又因?yàn)槭羌臃P停晕颐恳徊街粚ζ渲幸粋€(gè)基函數(shù)及其系數(shù)進(jìn)行求解倍靡,這樣逐步逼近損失函數(shù)的最小值猴伶,也就是說要使損失函數(shù)最小,那就得使新加的這一項(xiàng)剛好等于損失函數(shù)的負(fù)梯度菌瘫,這樣不就一步一步使得損失函數(shù)最快下降蜗顽。
AdaBoost:提高那些被前一輪弱分類器錯(cuò)誤分類樣本的權(quán)值,而降低那些被正確分類樣本的權(quán)值雨让。這樣一來雇盖,那些沒有得到正確分類的數(shù)據(jù),由于其權(quán)值的加大而受到后一輪的弱分類器的更大關(guān)注栖忠,于是崔挖,分類問題就被一系列的弱分類器“分而治之”。至于第二個(gè)問題庵寞,即弱分類器的組合狸相,AdaBoost采取加權(quán)多數(shù)表決的方法。具體地捐川,加大分類誤差率小的弱分類器的權(quán)值脓鹃,使其在表決中起較大的作用狂男,減小分類誤差率較大的弱分類器的權(quán)值井厌,使其在表決中起較小的作用。
GBDT和其它Boosting算法一樣萍悴,通過將表現(xiàn)一般的數(shù)個(gè)模型(通常是深度固定的決策樹)組合在一起來集成一個(gè)表現(xiàn)較好的模型岩齿。抽象地說太颤,模型的訓(xùn)練過程是對一任意可導(dǎo)目標(biāo)函數(shù)的優(yōu)化過程。通過反復(fù)地選擇一個(gè)指向負(fù)梯度方向的函數(shù)盹沈,該算法可被看做在函數(shù)空間里對目標(biāo)函數(shù)進(jìn)行優(yōu)化龄章。因此可以說Gradient Boosting = Gradient Descent + Boosting。
XGBoost是對GBDT的優(yōu)化乞封,原始的GBDT算法基于經(jīng)驗(yàn)損失函數(shù)的負(fù)梯度來構(gòu)造新的決策樹做裙,只是在決策樹構(gòu)建完成后再進(jìn)行剪枝。而XGBoost在決策樹構(gòu)建階段就加入了正則項(xiàng)歌亲。XGBoost通過對目標(biāo)函數(shù)做二階泰勒展開菇用,從而求出下一步要擬合的樹的葉子節(jié)點(diǎn)權(quán)重(需要先確定樹的結(jié)構(gòu)),從而根據(jù)損失函數(shù)求出每一次分裂節(jié)點(diǎn)的損失減小的大小陷揪,從而根據(jù)分裂損失選擇合適的屬性進(jìn)行分裂惋鸥。
lightGBM杂穷,基于決策樹算法的分布式梯度提升框架,包含兩個(gè)關(guān)鍵點(diǎn):light即輕量級卦绣,GBM 梯度提升機(jī)耐量。LightGBM是XGBoost的改進(jìn)版,相比于前者滤港,它添加了很多新的方法來改進(jìn)模型廊蜒,包括:并行方案、基于梯度的單邊檢測溅漾、排他性特征捆綁等山叮。
五、AdaBoost V.S. GBDT
和AdaBoost一樣添履,Gradient Boosting也是重復(fù)選擇一個(gè)表現(xiàn)一般的模型并且每次基于先前模型的表現(xiàn)進(jìn)行調(diào)整屁倔。不同的是,AdaBoost是通過提升錯(cuò)分?jǐn)?shù)據(jù)點(diǎn)的權(quán)重來定位模型的不足而Gradient Boosting是通過算梯度(gradient)來定位模型的不足暮胧。因此相比AdaBoost, Gradient Boosting可以使用更多種類的目標(biāo)函數(shù),而當(dāng)目標(biāo)函數(shù)是均方誤差時(shí)锐借,計(jì)算損失函數(shù)的負(fù)梯度值在當(dāng)前模型的值即為殘差。而AdaBoost只給出了損失函數(shù)為指數(shù)損失函數(shù)往衷。
六钞翔、xgboost vs GBDT
(1)GBDT迭代時(shí)只考慮了一階導(dǎo)數(shù),xgboost迭代時(shí)考慮了一階席舍、二階導(dǎo)數(shù)布轿,xgboost可以自定義損失函數(shù),只需要一階来颤、二階可導(dǎo)驮捍;
(2)xgboost在損失函數(shù)中添加了正則化項(xiàng),防止過擬合脚曾;
(3)傳統(tǒng)GBDT以決策樹為基本分類器,xgboost還支持其他線性分類器启具,這時(shí)候xgboost相當(dāng)于帶正則化項(xiàng)的LR回歸本讥、線性回歸;
(4)xgboost還引入了衰減(shrinkage鲁冯,相當(dāng)于學(xué)習(xí)速率)拷沸、列抽樣,降低過擬合可能性薯演;
(5)xgboost對于缺失值可以自動學(xué)習(xí)出分裂方向撞芍;
(6)訓(xùn)練事先排好序并以block的形式存儲,可以并行計(jì)算跨扮,尋找特征的最佳分割點(diǎn)序无;
(7)由于底層支持容錯(cuò)的分布式通信框架rabit验毡,xgboost支持分布式計(jì)算,可以運(yùn)行在MPI帝嗡,YARN上
七晶通、lightGBM vs XGBoost
1)XGBoost使用基于預(yù)排序的決策樹算法,每遍歷一個(gè)特征就需要計(jì)算一次特征的增益哟玷,時(shí)間復(fù)雜度為O(datafeature)狮辽。
而LightGBM使用基于直方圖的決策樹算法,直方圖的優(yōu)化算法只需要計(jì)算K次巢寡,時(shí)間復(fù)雜度為O(Kfeature)
2)XGBoost使用按層生長(level-wise)的決策樹生長策略喉脖,LightGBM則采用帶有深度限制的按葉子節(jié)點(diǎn)(leaf-wise)算法。在分裂次數(shù)相同的情況下抑月,leaf-wise可以降低更多的誤差树叽,得到更好的精度。leaf-wise的缺點(diǎn)在于會產(chǎn)生較深的決策樹爪幻,產(chǎn)生過擬合菱皆。
3)支持類別特征,不需要進(jìn)行獨(dú)熱編碼處理
4)優(yōu)化了特征并行和數(shù)據(jù)并行算法挨稿,除此之外還添加了投票并行方案
5)采用基于梯度的單邊采樣來保持?jǐn)?shù)據(jù)分布仇轻,減少模型因數(shù)據(jù)分布發(fā)生變化而造成的模型精度下降
6)特征捆綁轉(zhuǎn)化為圖著色問題,減少特征數(shù)量
八奶甘、特征工程
時(shí)間戳處理
時(shí)間戳屬性通常需要分離成多個(gè)維度比如年篷店、月、日臭家、小時(shí)疲陕、分鐘、秒鐘钉赁。分解類別屬性
一些屬性是類別型而不是數(shù)值型蹄殃,舉一個(gè)簡單的例子,由{紅你踩,綠诅岩、藍(lán)}組成的顏色屬性,最常用的方式是把每個(gè)類別屬性轉(zhuǎn)換成二元屬性带膜,即從{0,1}取一個(gè)值吩谦。因此基本上增加的屬性等于相應(yīng)數(shù)目的類別,并且對于你數(shù)據(jù)集中的每個(gè)實(shí)例膝藕,只有一個(gè)是1(其他的為0)式廷,這也就是獨(dú)熱(one-hot)編碼方式(類似于轉(zhuǎn)換成啞變量)。
3.分箱/分區(qū)
將數(shù)值型屬性轉(zhuǎn)換成類別呈現(xiàn)更有意義芭挽,同時(shí)能使算法減少噪聲的干擾滑废,通過將一定范圍內(nèi)的數(shù)值劃分成確定的塊蝗肪。舉個(gè)例子,我們預(yù)測一個(gè)人是否擁有某款衣服策严,這里年齡是一個(gè)確切的因子穗慕。其實(shí)年齡組是更為相關(guān)的因子,所有我們可以將年齡分布劃分成1-10,11-18,19-25,26-40等妻导。
- 交叉特征
將兩個(gè)或更多的類別屬性組合成一個(gè)逛绵。當(dāng)組合的特征要比單個(gè)特征更好時(shí),這是一項(xiàng)非常有用的技術(shù)倔韭。數(shù)學(xué)上來說术浪,是對類別特征的所有可能值進(jìn)行交叉相乘。
假如擁有一個(gè)特征A,A有兩個(gè)可能值{A1寿酌,A2}胰苏。擁有一個(gè)特征B,存在{B1醇疼,B2}等可能值硕并。然后,A&B之間的交叉特征如下:{(A1秧荆,B1)倔毙,(A1,B2)乙濒,(A2陕赃,B1),(A2颁股,B2)}么库,并且你可以給這些組合特征取任何名字。但是需要明白每個(gè)組合特征其實(shí)代表著A和B各自信息協(xié)同作用甘有。一個(gè)更好地詮釋好的交叉特征的實(shí)例是類似于(經(jīng)度诉儒,緯度)。
特征選擇
自動選出對于解決問題最有用的特征子集亏掀,減少特征數(shù)量允睹、降維,使模型泛化能力更強(qiáng)幌氮,減少過擬合,增強(qiáng)對特征和特征值之間的理解特征縮放
某些特征比其他特征擁有高得多的跨度值胁澳。舉個(gè)例子该互,將一個(gè)人的收入和他的年齡進(jìn)行比較,更具體的例子韭畸,如某些模型(像嶺回歸)要求你必須將特征值縮放到相同的范圍值內(nèi)宇智。通過縮放可以避免某些特征比其他特征獲得大小非常懸殊的權(quán)重值蔓搞。特征提取
特征提取涉及到從原始屬性中自動生成一些新的特征集的一系列算法,降維算法就屬于這一類随橘。特征提取是一個(gè)自動將觀測值降維到一個(gè)足夠建模的小數(shù)據(jù)集的過程喂分。對于列表數(shù)據(jù),可使用的方法包括一些投影方法机蔗,像主成分分析和無監(jiān)督聚類算法蒲祈。對于圖形數(shù)據(jù),可能包括一些直線檢測和邊緣檢測萝嘁,對于不同領(lǐng)域有各自的方法梆掸。
九、預(yù)處理函數(shù)
使用sklearn中的preproccessing庫來進(jìn)行數(shù)據(jù)預(yù)處理
十牙言、為什么進(jìn)行獨(dú)熱編碼酸钦?
特征并不總是連續(xù)值,而有可能是分類值咱枉,如果將分類值用數(shù)字表示卑硫,效率會高很多。但是蚕断,即使轉(zhuǎn)化為數(shù)字表示后欢伏,上述數(shù)據(jù)也不能直接用在我們的分類器中。因?yàn)榛ǎ诸惼魍J(rèn)數(shù)據(jù)數(shù)據(jù)是連續(xù)的颜懊,并且是有序的。為了解決上述問題风皿,其中一種可能的解決方法是采用獨(dú)熱編碼河爹,又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來對N個(gè)狀態(tài)進(jìn)行編碼桐款,每個(gè)狀態(tài)都由他獨(dú)立的寄存器位咸这,并且在任意時(shí)候,其中只有一位有效魔眨。
例如:
自然狀態(tài)碼為:000,001,010,011,100,101
獨(dú)熱編碼為:000001,000010,000100,001000,010000,100000
可以這樣理解媳维,對于每一個(gè)特征,如果它有m個(gè)可能值遏暴,那么經(jīng)過獨(dú)熱編碼后侄刽,就變成了m個(gè)二元特征。并且朋凉,這些特征互斥州丹,每次只有一個(gè)激活。因此,數(shù)據(jù)會變成稀疏的墓毒。
這樣做的好處主要有:
解決了分類器不好處理屬性數(shù)據(jù)的問題
在一定程度上也起到了擴(kuò)充特征的作用
十一吓揪、特征選擇的常見方法:
特征選擇算法可能會用到評分方法來排名和選擇特征,比如相關(guān)性或其他確定特征重要性的方法所计,更進(jìn)一步的方法可能需要通過試錯(cuò)柠辞,來搜索出特征子集。
還有通過構(gòu)建輔助模型的方法主胧,逐步回歸就是模型構(gòu)造過程中自動執(zhí)行特征選擇算法的一個(gè)實(shí)例叭首,還有像Lasso回歸和嶺回歸等正則化方法也被歸入到特征選擇,通過加入額外的約束或者懲罰項(xiàng)加到已有模型(損失函數(shù))上讥裤,以防止過擬合并提高泛化能力放棒。
根據(jù)特征選擇的形式又可以將特征選擇方法分為3種:
Filter:過濾法,按照發(fā)散性或者相關(guān)性對各個(gè)特征進(jìn)行評分己英,設(shè)定閾值或者待選擇閾值的個(gè)數(shù)间螟,選擇特征。
Wrapper:包裝法损肛,根據(jù)目標(biāo)函數(shù)(通常是預(yù)測效果評分)厢破,每次選擇若干特征,或者排除若干特征治拿。
Embedded:嵌入法摩泪,先使用某些機(jī)器學(xué)習(xí)的算法和模型進(jìn)行訓(xùn)練,得到各個(gè)特征的權(quán)值系數(shù)劫谅,根據(jù)系數(shù)從大到小選擇特征见坑。類似于Filter方法,但是是通過訓(xùn)練來確定特征的優(yōu)劣捏检。
使用sklearn中的feature_selection庫來進(jìn)行特征選擇
1.Filter
方差選擇法:使用方差選擇法荞驴,先要計(jì)算各個(gè)特征的方差,然后根據(jù)閾值贯城,選擇方差大于閾值的特征熊楼。
相關(guān)系數(shù)法:使用相關(guān)系數(shù)法,先要計(jì)算各個(gè)特征對目標(biāo)值的相關(guān)系數(shù)以及相關(guān)系數(shù)的P值能犯。
卡方檢驗(yàn):經(jīng)典的卡方檢驗(yàn)是檢驗(yàn)定性自變量對定性因變量的相關(guān)性鲫骗。選擇卡方值排在前面的K個(gè)特征作為最終的特征選擇
互信息法:經(jīng)典的互信息也是評價(jià)定性自變量對定性因變量的相關(guān)性的,選擇互信息排列靠前的特征作為最終的選取特征
2.Wrapper
遞歸特征消除法:使用一個(gè)基模型來進(jìn)行多輪訓(xùn)練踩晶,每輪訓(xùn)練后执泰,消除若干權(quán)值系數(shù)的特征,再基于新的特征集進(jìn)行下一輪訓(xùn)練渡蜻。
3.Embedded
基于懲罰項(xiàng)的特征選擇法:使用帶懲罰項(xiàng)的基模型坦胶,除了篩選出特征外,同時(shí)也進(jìn)行了降維。由于L1L1范數(shù)有篩選特征的作用顿苇,因此,訓(xùn)練的過程中税弃,如果使用了L1L1范數(shù)作為懲罰項(xiàng)纪岁,可以起到特征篩選的效果
基于樹模型的特征選擇法:訓(xùn)練能夠?qū)μ卣鞔蚍值念A(yù)選模型:GBDT、RandomForest和Logistic Regression等都能對模型的特征打分则果,通過打分獲得相關(guān)性后再訓(xùn)練最終模型
十二幔翰、 如何證明根號2是無理數(shù)
反證法:
假設(shè)根號2是有理數(shù),那么假設(shè)根號2=m/n(m,n都是正整數(shù),且m,n互質(zhì),如果不互質(zhì),那么我們還可以約分,就沒有意義了)
根號2=m/n 兩邊平方化簡 得 2n2=m2
于是m一定要是偶數(shù),可以設(shè)m=2s 其中s是正整數(shù)
那么2n2=4s2 化簡n2=2s2
于是n也一定要是偶數(shù),于是 m n 都是偶數(shù) 還可以繼續(xù)約分,這就和假設(shè)m n互質(zhì)相矛盾了,所以假設(shè)不成立,即根號2是無理數(shù)