- 結(jié)構(gòu)化數(shù)據(jù)(表)
- 半結(jié)構(gòu)化數(shù)據(jù)(文本,日志)
- 非結(jié)構(gòu)化數(shù)據(jù)(圖像,視頻)
- 參數(shù)空間
- 決策模型
- 概率模型
- 或者
- 生成模型:由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布P(X,Y),然后求出條件概率分布P(Y|X)作為預(yù)測的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。(樸素貝葉斯)
- 生成模型可以還原聯(lián)合概率分布p(X,Y),并且有較快的學(xué)習(xí)收斂速度,還可以用于隱變量的學(xué)習(xí)
- 判別模型:由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)作為預(yù)測的模型,即判別模型。(k近鄰、決策樹)
- 直接面對預(yù)測,往往準(zhǔn)確率較高,直接對數(shù)據(jù)在各種程度上的抽象,所以可以簡化模型
- 準(zhǔn)則
-
實質(zhì)公式場景對參數(shù)的看法利用的信息最小化結(jié)構(gòu)風(fēng)險loss+正則
最大似然概率積
(帶正則的最大似然)貝葉斯估計
+
把參數(shù)作為先驗知識 -
根據(jù)貝葉斯定理,后驗函數(shù)正比于似然函數(shù)乘以先驗概率,所以后驗概率函數(shù)一般表達(dá)如:
? ? ? ? 貝葉斯估計中的先驗概率其實就相當(dāng)于最小化結(jié)構(gòu)風(fēng)險函數(shù)中的正則項,若先驗為拉普拉斯分布,則為L1,若先驗為高斯分布,則為L2
- 算法
- 最優(yōu)化方法
(二)數(shù)據(jù)
1.常見抽樣方法
(1)簡單隨機抽樣:無放回抽樣,有放回抽樣
(2)分層抽樣
2.類別樣本不平衡的解決方法(假設(shè)負(fù)樣本遠(yuǎn)遠(yuǎn)大于正樣本數(shù)量)
(1)欠采樣:對負(fù)樣本進行欠采樣;一般不單純地進行欠采樣,而是結(jié)合集成學(xué)習(xí)來進行欠采樣;將負(fù)樣本劃分為若干個集合供不同分類器使用,這樣對每個分類器來看都進行了欠采樣,但在全局來看卻不會丟失重要信息;
(2)重采樣:對正樣本進行重采樣;一般不單純地進行重采樣,而是對正樣本進行插值等來產(chǎn)生新的正樣本;
(3)閾值移動:不是簡單地將概率閾值0.5作為正負(fù)樣本的區(qū)分界限,若負(fù)樣本過多,那么正樣本的閾值將往低于0.5方向調(diào)整;
3.處理數(shù)據(jù)缺失的常用方法:
(1)用平均值、中值、分位數(shù)、眾數(shù)、隨機值等替代;
(2)通過建模,使用其他變量來預(yù)測缺失值;
(3)將變量映射到高維空間:比如性別變量有男,女以及缺失3種情況,則映射為3個變量:是否男,是否女,是否缺失;
(4)整列刪除
4.構(gòu)造線下驗證集的常用方法:
(1)hold-out-validation:將線下數(shù)據(jù)隨機劃分為一大一小兩部分,大的為訓(xùn)練集,小的為驗證集,重復(fù)若干次;(典型做法是三七分)
(2)cross-validation:將線下數(shù)據(jù)劃分為k份,每次只用k-1份來訓(xùn)練,剩下的1份作為驗證集,重復(fù)k次;(典型做法是k取10,k偏小則欠擬合,k偏大樣本增多則過擬合)
(3)bootstrapping:從原始數(shù)據(jù)集D中有放回地采樣,得到同樣大小的D1,D1作為訓(xùn)練集,D-D1作為驗證集;
PS:
1)訓(xùn)練集與驗證集的劃分要盡可能保持?jǐn)?shù)據(jù)分布的一致性,避免因數(shù)據(jù)劃分過程引入額外的偏差而對最終結(jié)果產(chǎn)生影響,例如在分類任務(wù)中至少要保持樣本的類別比例相似;如果從采樣的角度來看待數(shù)據(jù)集的劃分過程,則保留類別比例的采樣方式通常稱為“分層采樣”;
2)驗證集較小時,評估結(jié)果的方差較大,過擬合;訓(xùn)練集較小時,評估結(jié)果的偏差較大,欠擬合;
3)leave-one-out是k-fold cross-validation的特殊例子,只留一個樣本做驗證集;評估結(jié)果往往比較準(zhǔn)確,但是不適用于大樣本數(shù)據(jù);(訓(xùn)練的計算開銷太大)
4)bootstrapping可以產(chǎn)生多個不同的訓(xùn)練集,適用于ensemble learning;同時,由于重復(fù)采樣,所以會改變初始訓(xùn)練集的分布,造成樣本泄露,因此一般適用于小樣本,在數(shù)據(jù)量足夠的情況下,常采用hold-out-validation或者cross-validation;
5.常見的離線評價指標(biāo):
(1)準(zhǔn)確率(Accuracy)與平均準(zhǔn)確率(Average Per-class Accuracy)
其中平均準(zhǔn)確率是對各個類的準(zhǔn)確率取平均值
(2)混淆矩陣:對二分類結(jié)果進行詳細(xì)表述的一個矩陣
怎么畫出X軸Y軸
適用于/優(yōu)點關(guān)注范圍用一個值衡量的話?缺點
ROC
通過改變0.5這個閾值使得真陽性和假陽性變化假陽性真陽性排序質(zhì)量單個集合AUC假設(shè)平衡PRCPercision/RecallPercisionRecall不平衡整體F1比較不平滑
6.常見的在線評價指標(biāo)——A/B test
7.驗證集和測試集的區(qū)別
驗證集:用于調(diào)整子模型或者其超參數(shù),做模型選擇
測試集:用來評測多個最終模型
如果采用 k-折交叉驗證等重采樣方法,尤其當(dāng)重采樣方法已經(jīng)被嵌套在模型驗證中時,「驗證數(shù)據(jù)集」和「測試數(shù)據(jù)集」的概念可能會淡化
(三)特征
1.冗余特征
(1)冗余特征指的是其所包含的信息能從其他特征中推演出來;
(2)去除冗余特征會減輕學(xué)習(xí)過程的負(fù)擔(dān),增加冗余特征會降低學(xué)習(xí)任務(wù)的難度;
2.特征選擇:從給定的特征集合中選擇出相關(guān)特征子集的過程稱作“特征選擇”;其中包括子集搜索問題與子集評價問題:
(1)子集搜索:前向搜索(逐漸往子集增加特征),后向搜索(逐漸往全集剔除特征)
(2)子集評價:信息增益,基尼指數(shù)
PS:
(1)子集搜索中的前后向搜索都是貪心策略,所以不一定是最優(yōu),這是不進行窮舉搜索所無法避免的;
(2)將特征子集搜索機制與子集評價機制相結(jié)合,可以得到特征選擇方法,例如前向搜索與信息熵結(jié)合,得到的是決策樹的特征選擇方法;
3.特征選擇常見方法:過濾式(filter),包裹式(wrapper),嵌入式(embedding)
(1)過濾式 Filter:
根據(jù)CHI,PCA等降維
先做特征選擇,再訓(xùn)練學(xué)習(xí)器
優(yōu)點: 快速, 只需要基礎(chǔ)統(tǒng)計知識, 特征選擇過程與后續(xù)的學(xué)習(xí)器的訓(xùn)練沒有關(guān)系 。
缺點:特征之間的組合效應(yīng)難以挖掘。
(2)包裹式 Wrapper :
根據(jù)效果好的算法的結(jié)果搜索 “量身定做”的特征子集
優(yōu)點: 直接面向算法優(yōu)化,從最終學(xué)習(xí)性能來看,包裹式比過濾式更好,不需要太多知識。
缺點: 龐大的搜索空間, 需要定義啟發(fā)式策略。
(3)嵌入式Embedded:
將特征選擇與學(xué)習(xí)器訓(xùn)練融為一體使用各種的稀疏和懲罰項
優(yōu)點: 快速, 并且面向算法,兩者在同一個優(yōu)化過程中完成,即在學(xué)習(xí)器訓(xùn)練過程中自動地進行了特征選擇。
缺點: 需要調(diào)整結(jié)構(gòu)和參數(shù)配置, 而這需要深入的知識和經(jīng)驗。
(四)模型
1.模型選擇的常用方法:
(1)正則化
(2)交叉驗證
PS:當(dāng)假設(shè)空間含有不同的復(fù)雜度(例如,不同的參數(shù)個數(shù))的模型時,就要面臨模型選擇的問題;
2.過擬合與欠擬合
(1)過擬合是模型的學(xué)習(xí)能力太強,把樣本的噪聲都學(xué)習(xí)進去;
(2)欠擬合是模型的學(xué)習(xí)能力太弱,連樣本的一般特性都沒有學(xué)習(xí)進去;
3.泛化能力與泛化誤差上界
(1)泛化能力是指由該方法學(xué)習(xí)到的模型對未知數(shù)據(jù)的預(yù)測能力,是學(xué)習(xí)方法本質(zhì)上最重要的性質(zhì);
(2)泛化誤差上界:訓(xùn)練誤差越小,泛化誤差上界也越小;樣本容量越大,泛化誤差上界也越小;模型越復(fù)雜,泛化誤差上界越大;
- regularize:(規(guī)范; 使有規(guī)則; 使有秩序)
- Regularization(先驗規(guī)范化/正則化/懲罰項): 利用先驗知識,在處理過程中引入正則化因子(regulator),增加向模型收斂的哪個方面引導(dǎo)約束的作用,比如稀疏,比如防止過擬合,處理噪聲跟異常點。
- 通過添加正則項指定一組與原不適定問題相“鄰近”的適定問題的解,去逼近原問題的解?
- 都是通過增加模型的loss function來懲罰模型
- 正則化其實是決策模型的概念,其對應(yīng)于概率模型中的貝葉斯估計;貝葉斯估計比起極大似然估計,多了參數(shù)的先驗知識;即假設(shè)模型參數(shù)是符合一個先驗的概率分布的
- 通過把(權(quán)重為0的個數(shù))這樣的正則項加入,降低了權(quán)值的維度,從而提高了在一定數(shù)據(jù)樣本上的泛化能力
-
別名意義公式對特征的效果性能作用過擬合下降的梯度假設(shè)參數(shù)服從的分布L0
sigma(x==0)稀疏差一點
L1lasso權(quán)重絕對值loss + |xi| 產(chǎn)生稀疏的特征求導(dǎo)較困難特征選擇防止過擬合斜率拉普拉斯L2ridge嶺權(quán)重平方和loss + sigma(xi^2)選擇更多的特征,這些特征都會接近于0最吼規(guī)則化防止過擬合二次
高斯
-
- 這張圖里,方框是一種約束,使得模型的參數(shù)在方框里面,一圈一圈是逐漸逼近的目標(biāo)函數(shù)(從紫色圈到擴散,為了滿足loss里的稀疏條件),其中w2或者w1=0的點就是稀疏點,所以交點就是滿足正則化同時達(dá)到一定模型性能的模型點,因為L1一般會用=0的位置(即角)相交于模型(稀疏點,lasso點,模型點三點一致),L2一般會讓模型靠近0,從而防止過擬合,但是模型從哪個方向靠近0都是沒關(guān)系的,只關(guān)心均方差就可以
- Normalization 歸一化 :把數(shù)據(jù)變?yōu)椋?,1)之間的小數(shù) , 消除量綱。
-
公式minmax
零均值(Z-score)減去均值,乘以方差:y=(x-means)/ variance對數(shù)y=lg (x)arctany=arctan(x)*2/PI - 比最大最小歸一化更好的方法是歸一到Z值,也就是說,特征值距離它的平均值有多遠(yuǎn),并除去本身的標(biāo)準(zhǔn)差,Batch norm的源頭
- 歸一化可以處理量綱問題,有利于優(yōu)化迭代速度(梯度下降),提高精度(KNN)
Standardization 標(biāo)準(zhǔn)化:是將數(shù)據(jù)按比例縮放,使之落入一個小的特定區(qū)間(如,0均值)
Logisticy=1/(1+e^(-x))
數(shù)據(jù)分布很遠(yuǎn)可導(dǎo),廣泛應(yīng)用
5.常用的防止過擬合的方法:
(1)數(shù)據(jù)集擴增
(2)正則化:約束參數(shù)大小
6.bias與variance
(1)bias:結(jié)果和預(yù)測的偏差,擬合誤差,表示模型的擬合能力,偏差越小,模型的擬合能力越強;(寬廣網(wǎng)的DNN部分)
擬合誤差表示是否已經(jīng)把線偏差到指定位置
(2)variance:結(jié)果和預(yù)測的方差,泛化誤差,表示模型的泛化能力,方差越小,模型的泛化能力越強;(寬廣網(wǎng)的LR部分)
方差表示這根線有多符合這個驗證集
(3)error = bias + variance
是個問題
7.調(diào)試性能較差的分類器
- 對于出現(xiàn)了高方差(過擬合)
- 增加更多的數(shù)據(jù),降低模型復(fù)雜度
- ill-condition,可以用L2正則化處理,或者檢查數(shù)據(jù),重新搜索參數(shù)
- 對于出現(xiàn)了高偏差(欠擬合)
- 增加模型復(fù)雜度,或者嘗試別的模型
- 改變目標(biāo):
- 訓(xùn)練和測試數(shù)據(jù)不均衡的情況下,應(yīng)該關(guān)注準(zhǔn)確率和召回率
- 注意的問題:很低的訓(xùn)練誤差,甚至是0不一定很好,只是有可能出現(xiàn)了N小于P的情況,樣本數(shù)小于特征數(shù)
8.模型參數(shù)與超參數(shù)
(1)機器學(xué)習(xí)模型建立過程其實是一個參數(shù)學(xué)習(xí)與調(diào)優(yōu)的過程,參數(shù)包括模型參數(shù)與超參數(shù);
(2)模型參數(shù)使指通過模型訓(xùn)練中的學(xué)習(xí)算法而進行調(diào)整的,而模型超參數(shù)不是通過學(xué)習(xí)算法而來的,但是同樣也需要進行調(diào)優(yōu),比如特征的維數(shù)等;
(3)常見的調(diào)參方法有:網(wǎng)格搜索,隨機搜索,啟發(fā)式搜索;
(4)調(diào)參是通過線下驗證集進行的;
9.VC維(Vapnik-Chervonenkis Dimension):VC維是統(tǒng)計學(xué)習(xí)理論中的一個核心概念,它是目前為止對函數(shù)集學(xué)習(xí)性能的最好描述指標(biāo)
(1)shatter(打散)概念:給定訓(xùn)練樣本集合x1,x2,...,xn;,其中每個樣本有兩個可選的label(+1, -1),因此總共有2的n次方種不同的label組合;如果對于其中每一種組合,分類模型(函數(shù)集) F 都能夠?qū)ζ溥M行正確的劃分,那么我們稱 F 能夠?qū)⒂?xùn)練樣本集合打散(shatter);

上圖共有3個樣本,可以看到,對于樣本的任意一種label組合,圖中的直線都可以將正樣本和負(fù)樣本分開;這時我們稱這條直線可以將這三個樣本打散(shatter);

上圖中顯示了四個樣本,如果只用一條直線,那么無論這條直線怎么劃都不能將正負(fù)樣本分開;
(2)VC維的概念:指函數(shù)集H能夠打散的最大樣本數(shù)稱為H的VC維;
(3)對于一個模型來說,其VC維越大,則其模型復(fù)雜度越高,需要更多的訓(xùn)練數(shù)據(jù),因此為了防止過擬合,加入正則項,其實也就是降低模型的VC維;
(4)一個機器學(xué)習(xí)模型想要取得好的效果,這個模型需要滿足以下兩個條件:
1. 模型在我們的訓(xùn)練數(shù)據(jù)上的表現(xiàn)要不錯,也就是 trainning error 要足夠小。
2. 模型的 vc-dimension 要低。換句話說,就是模型的自由度不能太大,以防overfit.
換句話說,模型的維度大的容易過擬合,而數(shù)據(jù)量小的容易過擬合
PS:線性SVM的VC維為d+1(任何線性分類器的VC維都是d+1);高斯核函數(shù)的VC維為無窮大;NN(Neural Networks )的VC維為參數(shù)量;樹模型的vc維度很接近樣本
10.集成學(xué)習(xí)(ensemble learning)的常用方法:
(1)bagging:訓(xùn)練不同的模型,對預(yù)測結(jié)果取均值或者投票等(減小variance,增強泛化);
(2)boosting:迭代算法,在上一次分類結(jié)果上進行迭代調(diào)整(減小bias,增強擬合);
(3)stacking/cascade:訓(xùn)練不同的模型,用每個模型的預(yù)測作為輸入,訓(xùn)練新的模型;
11.多分類的常見方法(假設(shè)N個類)
(1)one vs rest:構(gòu)建N個分類器,每個分類器依次將每個類做為正樣本,剩余的類作為負(fù)樣本
(2)one vs one:構(gòu)建N*(N-1)/2個分類器,每個分類器選擇兩個類的樣本進行訓(xùn)練
- 區(qū)別:如果模型是參數(shù)的線性函數(shù),并且存在線性分類面,那么就是線性分類器,否則不是。
- 常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性回歸
- 常見的非線性分類器:決策樹、RF、GBDT、多層感知機




- deal(即團購單,下同)維度的特征:主要是deal本身的一些屬性,包括價格、折扣、銷量、評分、類別、點擊率等
- user維度的特征:包括用戶等級、用戶的人口屬性、用戶的客戶端類型等
- user、deal的交叉特征:包括用戶對deal的點擊、收藏、購買等
- 距離特征:包括用戶的實時地理位置、常去地理位置、工作地、居住地等與poi的距離


通用模型舉隅
排序?qū)?/h1>召回層【協(xié)同過濾去除不合適的,選取重要的】-----------------------------------用戶畫像層【回流到FFM那層】非線性映射層:全連接,wide【泛化】&deep【記憶】特征處理層:FFM特征組合,tfidf計算,降維層,語義提取embedding層
LR跟NB的區(qū)別:相同:都是特征的線性表達(dá),都是求條件概率P(y|x)不同:NB是生成模型,直接在訓(xùn)練數(shù)據(jù)計算P(x|y)和P(y)的概率,從而利用貝葉斯公式計算P(y|x)。LR是判別模型,通過最大化P(y|x)的函數(shù)產(chǎn)生。NB比較Naive。當(dāng)數(shù)據(jù)集比較小的時候,應(yīng)該選用Naive Bayes,為了能夠取得很好的效果,數(shù)據(jù)的需求量為O(log n)。 當(dāng)數(shù)據(jù)集比較大的時候,應(yīng)該選用Logistic Regression,為了能夠取得很好的效果,數(shù)據(jù)的需求量為O( n)
模型集成方法:
Bagging
【切分?jǐn)?shù)據(jù)集,結(jié)果加權(quán)】Bagging試圖在小樣本集上實現(xiàn)相似的學(xué)習(xí)模塊,然后對預(yù)測值求平均值。對于Bagging一般來說,你可以在不同數(shù)據(jù)集上使用不同學(xué)習(xí)模塊。正如你所期望的那樣,這樣可以幫助我們減少方差,增強泛化。
Boosting
【誤差梯度下降】Boosting是一項迭代技術(shù),它在上一次分類的基礎(chǔ)上調(diào)整觀測值的權(quán)重。如果觀測值被錯誤分類,它就會增加這個觀測值的權(quán)重,反之亦然。Boosting一般會減少偏置誤差然后構(gòu)建強大的預(yù)測模型。但是,有些時候它們也會在訓(xùn)練數(shù)據(jù)上過擬合。
Stacking
【簡單的blending】訓(xùn)練集中取子集,交叉訓(xùn)練基模型,再用總模型匯總。這樣做可以減少偏置誤差和方差(泛化誤差)。

線性stacking:
用線性模型做最終模型,這樣就能看見每個模型的權(quán)重
二次線性stacking:
把模型的輸出和他們之間結(jié)果的組合一起作為最終模型的輸入
Blending:不會信息泄露,融合一切模型和參數(shù)沒有stacking的交叉驗證的性能一般采用這種
如何選擇要融合的模型的超參數(shù):比如,標(biāo)準(zhǔn)化的時候選用三種:
- 不標(biāo)準(zhǔn)化數(shù)據(jù)
- 使用z標(biāo)準(zhǔn)化
- 使用0-1標(biāo)準(zhǔn)化
另外,在特征選擇和數(shù)據(jù)缺失值填補的時候使用不同參數(shù)
Bagging
【切分?jǐn)?shù)據(jù)集,結(jié)果加權(quán)】Bagging試圖在小樣本集上實現(xiàn)相似的學(xué)習(xí)模塊,然后對預(yù)測值求平均值。對于Bagging一般來說,你可以在不同數(shù)據(jù)集上使用不同學(xué)習(xí)模塊。正如你所期望的那樣,這樣可以幫助我們減少方差,增強泛化。
Boosting
【誤差梯度下降】Boosting是一項迭代技術(shù),它在上一次分類的基礎(chǔ)上調(diào)整觀測值的權(quán)重。如果觀測值被錯誤分類,它就會增加這個觀測值的權(quán)重,反之亦然。Boosting一般會減少偏置誤差然后構(gòu)建強大的預(yù)測模型。但是,有些時候它們也會在訓(xùn)練數(shù)據(jù)上過擬合。
Stacking
【簡單的blending】訓(xùn)練集中取子集,交叉訓(xùn)練基模型,再用總模型匯總。這樣做可以減少偏置誤差和方差(泛化誤差)。
線性stacking:
用線性模型做最終模型,這樣就能看見每個模型的權(quán)重
二次線性stacking:
把模型的輸出和他們之間結(jié)果的組合一起作為最終模型的輸入
- 不標(biāo)準(zhǔn)化數(shù)據(jù)
- 使用z標(biāo)準(zhǔn)化
- 使用0-1標(biāo)準(zhǔn)化