Lineage邏輯回歸分類算法


Lineage邏輯回歸分類算法

線性回歸和邏輯回歸參考文章:

http://blog.csdn.net/viewcode/article/details/8794401

http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html

 

1、概述

Lineage邏輯回歸是一種簡單而又效果不錯的分類算法

什么是回歸:比如說我們有兩類數據,各有50十個點組成,當我門把這些點畫出來,會有一條線區分這兩組數據,我們擬合出這個曲線(因為很有可能是非線性),就是回歸。我們通過大量的數據找出這條線,並擬合出這條線的表達式,再有新數據,我們就以這條線為區分來實現分類。

 

學習過程:

 

下圖是一個數據集的兩組數據,中間有一條區分兩組數據的線。

 

顯然,只有這種線性可分的數據分布才適合用線性回歸

 

邏輯回歸的模型 是一個非線性模型,sigmoid函數,又稱邏輯回歸函數。但是它本質上又是一個線性回歸模型,因為除去sigmoid映射函數關系,其他的步驟,算法都是線性回歸的。可以說,邏輯回歸,都是以線性回歸為理論支持的。

只不過,線性模型,無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。

 

 2、算法思想

Lineage回歸分類算法就是將線性回歸應用在分類場景中

在該場景中,計算結果是要得到對樣本數據的分類標簽,而不是得到那條回歸直線

 

2.1、算法圖示

1) 算法目標()?

大白話:計算各點的y到擬合線的垂直距離,如果

距離>0, 分為類A

距離<0, 分為類B

 

2) 如何得到擬合線呢?

大白話:只能先假設,因為線或面的函數都可以表達成

y(擬合)=w1*x1 + w2*x2 + w3*x3 + ...

其中的w是待定參數

x是數據的各維度特征值

因而上述問題就變成了 樣本y(x) - y(擬合) >0 ? A : B

 

3) 如何求解出一套最優的w參數呢?

基本思路:代入“先驗數據”來逆推求解

但針對不等式求解參數極其困難

通用的解決辦法,將對不等式的求解做一個轉換:

  1. “樣本y(x) - y(擬合) ”的差值壓縮到一個0~1的小區間,
  2. 然后代入大量的樣本特征值,從而得到一系列的輸出結果;
  3. 再將這些輸出結果跟樣本的先驗類別比較,並根據比較情況來調整擬合線的參數值,從而是擬合線的參數逼近最優

從而將問題轉化為逼近求解的典型數學問題

 

 2.2、sigmoid函數

上述算法思路中,通常使用sigmoid函數作為轉換函數

函數表達式:

 

注:此處的x是向量

 

函數曲線:

之所以使用sigmoid函數,就是讓樣本點經過運算后得到的結果限制在0~1之間,壓縮數據的巨幅震盪,從而方便得到樣本點的分類標簽(分類以sigmoid函數的計算結果是否大於0.5為依據)

 

 3、算法實現分析

3.1、實現思路

算法思想的數學表述:

把數據集的特征值設為x1x2x3......

求出它們的回歸系數wi

z=w1*x1+w2*x2..... 然后將z值代入sigmoid函數並判斷結果,即可得到分類標簽

 

問題在於如何得到一組合適的參數wi

通過解析的途徑很難求解,而通過迭代的方法可以比較便捷地找到最優解

簡單來說,就是不斷用樣本特征值代入算式,計算出結果后跟其實際標簽進行比較,根據差值來修正參數,然后再代入新的樣本值計算,循環往復,直到無需修正或已到達預設的迭代次數

注:此過程用梯度上升法來實現。

 

3.2、梯度上升算法

通俗解釋:通過小步前進——》調整方向——》繼續小步前進——》最終逼近最優解

梯度上升是指找到函數增長的方向。在具體實現的過程中,不停地迭代運算直到w的值幾乎不再變化為止。

如圖所示:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM