逻辑回归原理
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?邏輯回歸原理
1 邏輯回歸簡介
logistic回歸(LR),是一種廣義的線性回歸分析模型,常用于數據挖掘,疾病預測,經濟預測等方面。
優點:計算代價低,思路清晰易于理解和實現;
缺點:它是一個線性的分類器,不使用額外策略,處理不來非線性問題(線性分類器的通病),容易欠擬合,分類精度可能不高。
邏輯回歸是一個名為回歸實為分類的經典算法,他的模型如下:
對于一個輸入向量,輸出一個0-1的概率值,表示其為正例的概率。這個函數也叫Sigmoid函數,其中z又等于,其實它是x的一個線性函數,所以說它是一個廣義的線性回歸函數,其實說的就是這里z和x的關系,y的x并不是線性的,但是z和x是線性的,z和y之間是單調的。我們所說的輸入特征向量就是x,輸出的y是一個0-1的值,那么表示的就是一個樣本為正例的概率。這里的向量默認為列向量,轉置之后就是行向量。
邏輯回歸的整個表達式,輸入特征向量x,首先經過一個線性變換變成z,然后在根據Sigmoid計算得到y值,最后得到預測結果
1.1 線性變換過程
一般來說在二維空間下線性變化是kx+b,對于這里也是一樣,系數矩陣乘以特征向量再加一個常數,才是一個完整的線性變化,如下。一般來說,可以寫成下面的方式,把b乘以1,就可以變成后面矩陣的變化情況,那么接下來b可以不寫,因為把b丟到w里面,后面也都是這樣表達的
為了方便,不寫b就變成下面公式,其實是有b的不過在這省略了
1.2 Sigmoid函數
Sigmoid函數如上圖,它的定義域是-∞到+∞,其實z可以隨便給,值域是0到1,在輸入為0的時候,y值是0.5.它的目的就是把經過線性變換之后的處于-∞到+∞之間的一個數映射到0-1之間。
其實為了映射到0-1之間還有其他很多函數,如單位階躍函數,為什么使用Sigmoid函數呢?核心問題是單位階躍在0這里不可導,后面計算很復雜,而Sigmoid后面推倒非常容易。
1.3 小總
邏輯回歸模型,就是每個特征的回歸系數,即,也就是說有訓練集就為為了算出W是多少能夠和數據的擬合度最高。
邏輯回歸的性質:是線性分類器,如果不加特殊處理是無法解決非線性問題的
建模過程:通過數據集,計算出“最合適”的系數向量,越合適擬合度越高(最合適也可以理解為是錯誤概率最低的情況)
應用:
2 極大似然估計原理
假設有箱子甲和乙,甲箱子8個紅色的球和1個藍色的球,乙箱子有8個藍色的球和1個紅色的球,那么從這兩個箱中隨機選一個箱子,不管選什么都是8比1的關系,然后從選擇之后的箱子再隨機抽一個,假設抽到的是藍色的,那么要估計這個球是甲還是乙箱子的。其實這是一個根據數據和結果推倒中間參數的過程,來自乙箱的概率為
極大似然估計(Maximum likelihood):利用已知的樣本和結果,反推最有可能導致這樣結果的參數值
2.1 極大似然數學表達式的邏輯推理
利用實驗結果D={x1,x2...,xn}得到某個參數值θ,使樣本出現的概率最大。似然函數如下
L就是loss損失的意思,等于在θ條件下出現D的概率,其中D是這些事件的集合,假設各個事件都是獨立的,這里就可以變成一個連乘,那就用∏表示。
那么極大似然函數就是根據似然函數求解argmax(L(θ)),其中使他得到最大的θ,就是似然估計要得到的結果
2.2 例子
設樣本服從正態分布N(μ,σ2),用似然法估計參數
所以這里是強假設的,在這個條件之上,我們就要計算它的參數,估計的參數就是μ和σ2。步驟如下:
①建立(對數)似然函數
因為連乘對我們是不友好的,所以要求他的對數。似然函數是關于μ,σ2的函數,定義和前面一樣,對于某個樣本而言,他屬于真實樣本的乘積,意思就是希望每一個樣本都屬于真實值的概率是最大的,所以對于每一個概率都要連乘,連乘的內容就是在給定參數的條件下屬于真實樣本的概率。連乘內部的這一項其實就是正態分布的概率密度函數,因為連乘對我們是不友好的,所以要求他的對數。
在知道了對數似然之后就要對其極大值求解,這里其實有兩個參數μ和σ2,xi是通過采用或者調研得到的是已知的,n是樣本量也是已知參數
②求解使似然函數最大的參數,也就是結果
其實就是求導,并且導函數等于0。關于μ的導函數推倒如下:其中第一項和μ是沒有任何關系的求導就沒了,后面的一項分母和μ也沒關系,分子和μ有關系,其實也就是多項式,把2拿下來,負號拿下來就變成-2倍的后一項,-和-相抵,2和分母的2相抵。關于σ2的導函數如下
這時候就可以求出μ和σ2
3 用極大似然建立損失函數
3.1 求極大似然依賴的概率
前面說了極大似然是一個概率,然后根據那個概率逐步推倒,邏輯回歸能用極大似然就要找出概率函數,概率是在最后一步產生的,比如輸入的特征向量為兩個維度的,經過線性變換,然后在根據Sigmoid計算得到y值,y值的含義就是這個樣本屬于類別1的概率是多少,y是0-1之間的,y越大說明屬于正樣本的概率越高。
既然邏輯回歸用極大似然建立損失函數,而極大似然依賴概率,那么既然這里找到了這個概率,就可以利用這個概率建立損失函數,上圖的0.09和0.79就是概率。用數學公式寫出來就如下
給定一個輸入x,那么輸出標簽為1的概率就是邏輯回歸這個模型的函數,其中對于一個任意輸入x,這個結果就是輸出標簽為1的值,把他化簡如下:
在給定x的條件下,標簽為1的概率,把它定義成φ(z)其他表示方式h(z)等。同樣對于輸入x輸出標簽為0的概率如下圖
把上面兩個表達式合并,那就是給定了某個x,它的標簽屬于它自己真實標簽的概率,因為這里面分別是1和0,我們并不知道它的真實的標簽是什么,那么給定x,它屬于它真實的標簽的概率就如下:
假定x是屬于類別1的,yi就等于1,任何數的0次方就能與1,只有φ(z),所以是正確的,反之x屬于類別0也是一樣的推理。所以這個表達式表示該樣本屬于真實標簽的概率,就和似然的定義吻合了,那么有了這個表達式就可以用它建立似然函數。
3.2 用極大似然建立損失函數
邏輯回歸中極大似然規律是:最大化每個樣本屬于真實標簽的概率,采用似然估計就是如下表達式
這里的變量是W系數向量所以是L(w),它等于每一個樣本屬于真實標簽的概率的連乘,就是大家都屬于真實標簽的概率,當然這里有假設各個樣本都是獨立互不影響的,其中P概率這一項上面已經推倒出來了。所以這個函數就是邏輯回歸的損失函數,而且是用極大似然建立的,接下來就是求他的最大值。連乘對我們很不友好,一般在優化問題的求解過程中連乘是非常難計算的,就用對數極大似然,一般這是通用的套路,就是求它的log,再一般一點大寫的L表示連乘狀態下的極大似然,而小寫的l表示對數極大似然,那么這里就得到如下表達式,其中這里選的是自然對數ln,求對數,連乘就邊和連續求和,指數項拿下來變成系數項。
這個函數看起來就對我們友好很多了。我們講極大似然,一般建立似然之后要求極大值,就是要找出這里面的參數對它求偏導。
那么接下來要做的事情就是把上圖使右邊的求和項最大的w的值,那么關于這個表達式的通用寫法采用梯度上升法,最大化對數似然函數。前面正太分布的例子直接求偏導,那是因為邏輯回歸他的表達式求解過程會非常復雜而且是很難計算的,那這種場景一般采用梯度上升求解最大值,一般梯度上升很容易求導局部最優。其實其他書上的梯度下降法和它正好相反,就是把l(w)變成-l(w),就變成最小化似然函數,就變成梯度下降了。他們的最終結果是一樣的,所以不影響推倒。
3.3 梯度相關知識
梯度:就是一個方向向量,表示某一函數在某點處沿著該方向(梯度的方向)最快。因為是方向向量那么就依賴某一個函數,某一個函數的某一個點的向量似然是不同的,那這個梯度表示的是這個函數在這個點的梯度的方向變化率最大,變化速度最快。
假設一座山的海拔與坐標關系為f(x,y),且處處可導,等高線如下圖
這個圖表達了海拔與坐標的關系,對于p0而言,其變化率最快的方向是p0p1這個向量,那么這個向量就是函數f(x,y)在p0點的梯度。對于p1而言,p1p2這個向量的方向是上升最快的。也就是說梯度并不是固定的某一個方向,隨著某個點的變化是在變化的。
梯度在數學表達式中中記為grad(x,y),定義式如下:
梯度在數學用反三角表達,表達的是一個方向向量,那么他是函數在這個點下方向向量的值,其中梯度求解的方式就是求偏導。
舉例如下:
4 用梯度上升(梯度下降)最優化參數求解
前面已推倒出邏輯回歸的對數似然如下:
我們的目的就是要求解參數w其中w=argmax(L(W)),就是說使其w最大的就是我們要求解的。一般通用的方法是計算損失函數關于參數向量的每個Wi的偏導,之后連列方程組,并且另他等于0對其進行求解,如下:
這個對于邏輯回歸是非常難求解的,為了簡化計算參數梯度上升方式求解,方法如下:
①首先隨機初始化一個回歸系數向量w,②之后重復的迭代,對于每次迭代,計算當前點下的梯度,之后在計算w+α*梯度,α是個入參可以隨便給,這個w是當前情況下的w值,然后梯度是變化率最快的那個方向,這里α*梯度表示的是一個步長。(可以理解為在一個山腰上,發現沿著這個方向走能最快上山,那么α表示走一步的步長,)不能走太多,因為梯度方向一直在變,走一小步之后會有一個新的w,用這個新的w更新舊的w,之后再去迭代。
4.1 公式推導過程
損失函數如下:
這是關于w的函數,等號右邊w包含在了Zi里面,因為z是w的一個線性變化。把φ(z)和1-φ(z)帶進去
梯度上升法的求解過程就是求梯度再去更新參數。求解l關于w的偏導,求和還是求和
其中這一項就是邏輯回歸的表達式,而yi是xi的真實的標簽,而邏輯回歸的輸出就是預測值,所以一減就是真實的誤差。
?
邏輯回歸偽代碼如下:
首先把所有變量導進來,,然后初始化w隨便初始化給全0或全1都可以,然后alpha是個入參就是每次跨的步長(學習率),接下來就是重復迭代,對于迭代循環每次要做的事就是第一步求解梯度,第二步更新參數,第三步更新w。
?
5 最大熵模型
最大熵模型的定義:假設滿足所有約束條件的模型集合為c,定義在條件概率P(Y|X)上的條件熵為
則模型集合c中條件熵最大的模型稱為最大熵模型。因為與邏輯回歸形式類似,又稱為對數線性模型
最大熵原理:在所有可能的概率模型中,熵最大的模型最好。
假設離散隨機變量X的概率分布為P(x),那么熵為
就是對所有P(x)*logP(x)求和再加一個符號
熵的取值范圍為,他肯定是一個正數,代表的是一個信息量,一般來說信息量越大的值,熵是越大的,信息量越小熵越小。
舉例:假設有一場中國對戰巴西的足球賽,假設兩對正常發揮,其實這個事情本身對于結果是沒有太多信息量的。根據經驗中國足球實例較弱,因為我們都知道兩對實力有相差,我們勝的機會比較低,而相反輸的記錄較高。所以這個隨機變量的結果勝平負,那么他的熵是非常小的可以簡單估算,假設勝的幾率是10%,平10%,輸80%,所以H(P)的值非常低。所以在這種沒有信息量的事件他的熵比較小。反過來看英法兩國比賽旗鼓相當,所以事情很難明確有人知道,那么他們的信息量就比較多,假設勝的幾率是30%,平40%,輸30%.這樣求出來的熵值就比較大,相比中巴的大很多。
簡單來說,對于隨機變量來說,如果他的每個可選擇的可能性越趨近于等概率,他的熵就越大,相反越不趨近于等概率,那么他的熵就會越小,其實就是信息量。等概率就是我們不知道結果信息量比較大,而不等概率就是這個事情越來越顯而易見了,就是信息量比較小。就像1+1等于2我們都知道就沒有信息量。
?
總結
                            
                        - 上一篇: 执行计划 分析一条sql语句的效率 my
 - 下一篇: mysql 逻辑备份导入数据库_mysq