用戶畫像常用算法

決策樹

1、決策樹,是一種分類算法和迴歸算法(這裏只介紹分類算法)

2、決策樹算法的構建分爲3個部分:特徵的選擇,決策樹的生成,決策樹的剪枝;(主要參考李航的《統計學習方法》第五章

    a、特徵的選擇—-選擇使信息增益最大的特徵;即選擇一個分類特徵必須是分類確定性更高,此特徵纔是更好的;

    b、決策樹的生成—ID3,C4.5算法,此時用迭代的方式構建決策樹;注意此時的決策樹,因爲每次選的都是局部最優解,所以是過擬合的;

    c、決策樹的剪枝—決策樹剪枝是爲了防止過擬合,根據全局cost function ,如果剪掉一個數支,cost function 會變小,那麼剪掉這個樹枝;

線性迴歸算法

迴歸的目的是預測數值型的目標值。最直接的辦法是依據輸入寫出一個目標值的計算公式,該公式就是所謂的迴歸方程(regression equation)。求迴歸方程中的迴歸係數的過程就是迴歸。
線性迴歸(linear regression)意味着可以將輸入項分別乘以一些常量,再將結果加起來得到輸出。
線性迴歸的一個問題是有可能出現欠擬合現象,因爲它求的是具有最小均方誤差的無偏估計。爲了降低預測的均方誤差,可以在估計中引入一些偏差,其中一個方法是局部加權線性迴歸(Locally Weighted Linear Regression, LWLR)。如果數據的特徵比樣本點還多,也就是說輸入數據的矩陣X不是滿秩矩陣,非滿秩矩陣在求逆時會出現問題。爲了解決這個問題,可以使用嶺迴歸(ridge regression)、lasso法、前向逐步迴歸。
嶺迴歸:在矩陣XTX上加一個λI從而使得矩陣非奇異,進而能對XTX+λI求逆。其中矩陣I是一個m*m的單位矩陣,對角線上元素全爲1,其他元素全爲0。而λ

是一個用戶定義的數值。在這種情況下,迴歸係數的計算公式將變成:

w^=(XTX+λI)−1XTy

嶺迴歸最先用來處理特徵數多餘樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計。這裏通過引入
λ來限制了所有w之和,通過引入該懲罰項,能夠減少不重要的參數,這個技術在統計學中也叫做縮減(shrinkage)。

一旦發現模型和測量值之間存在差異,就說出現了誤差。當考慮模型中的“噪聲”或者說誤差時,必須考慮其來源。訓練誤差和測試誤差由三個部分組成:偏差、測量誤差和隨機噪聲。

方差是可以度量的。取出兩組隨機樣本集並擬合,得到兩組迴歸係數。兩組迴歸係數之間的差異大小就是模型方差大小的反映

樹迴歸算法

CART(Classification And Regression Trees,分類迴歸樹)
迴歸樹:假設葉節點是常數值,這種策略認爲數據中的複雜關係可以用樹結構來概括。爲成功構建以分段常數爲葉節點的樹,需要度量出數據的一致性。數據集的混亂度即平方誤差的總值(總方差=均方差*樣本個數)。
模型樹:把葉節點設定爲分段線性(piecewise linear)函數。

通過降低決策樹的複雜度來避免過擬合的過程稱爲剪枝(pruning)。

Kmeans算法

  1. 確定聚類個數K 
  2. 選定K個D維向量作爲初始類中心 
  3. 對每個樣本計算與聚類中心的距離,選擇最近的作爲該樣本所屬的類 
  4. 在同一類內部,重新計算聚類中心(幾何重心) 不斷迭代,直到收斂:

(損失函數爲此就是Kmeans算法(其實是默認了我們樣布服從均值爲μ,方差爲某固定值的K個高斯分佈,混合高斯分佈),如果(x-μ)不是平方,而只是絕對值那就是Kmedian算法,混合拉普拉斯分佈)每個樣本到聚類中心的距離之和或平方和不再有很大變化。對損失函數求導,,可以看到其實我們更新聚類中心的時候,就是按照梯度的方向更新的。由於損失函數有局部極小值點,所以它是初值敏感的,取不同的初值可能落在不同的極小值點。

輪廓係數(silhouetee)可以對聚類結果有效性進行驗證。python中有該方法,metrics.silhouetee_score。越接近1聚的越好,越接近-1聚的越不好。適用於球形聚類的情況。

缺點:1.對初始聚類中心敏感,緩解方案是多初始化幾遍,選取損失函數小的。2.必須提前指定K值(指定的不好可能得到局部最優解),緩解方法,多選取幾個K值,grid search選取幾個指標評價效果情況3.屬於硬聚類,每個樣本點只能屬於一類 4.對異常值免疫能力差,可以通過一些調整(不取均值點,取均值最近的樣本點)5.對團狀數據點區分度好,對於帶狀不好(譜聚類或特徵映射)。儘管它有這麼多缺點,但是它仍然應用廣泛,因爲它速度快,並且可以並行化處理。

優點:速度快,適合發現球形聚類,可發現離羣點

缺失值問題:離散的特徵:將缺失的作爲單獨一類,90%缺失去掉連續的特徵:其他變量對這個變量回歸,做填補;樣本平均值填補;中位數填補。

對於初始點選擇的問題,有升級的算法Kmeans++,每次選取新的中心點時,有權重的選取(權重爲距離上箇中心店的距離),

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章