邏輯迴歸與梯度降低法所有詳細推導

第三章 使用sklearn 實現機學習的分類算法

分類算法

  • 分類器的性能與計算能力和預測性能很大程度上取決於用於模型訓練的數據
  • 訓練機器學習算法的五個步驟:
    1. 特徵的選擇
    2. 肯定評價性能的標準
    3. 選擇分類器及其優化算法
    4. 對模型性能的評估
    5. 算法的調優

sklearn初步使用

  • 3.1 sklearn中包括的processing 模塊中的標準化類,StandardScaler對特徵進行標準化處理
from sklearn.processing import StandardSacler
sc = StandardScaler() #實例化
sc.fit(X_train)
sc.transform(X_train)
# - 以上兩句能夠並寫成一句sc.fit_transform(X_trian)
# - 咱們使用相同的放縮參數分別對訓練和測試數據集以保證他們的值是彼此至關的。**可是在使用fit_transform 只能對訓練集使用,而測試機則只使用fit便可。**
# - sklearn中的metrics類中包含了不少的評估參數,其中accuracy_score,
# - 中accuracy_score(y_test,y_pred),也就是那y_test與預測值相比較,得出正確率
y_pred = model.predict(X_test-std)

過擬合現象

過擬合現象出現有兩個緣由:python

  • 訓練集與測試集特徵分佈不一致(黑天鵝和白天鵝)
  • 模型訓練的太過複雜,而樣本量不足。
    同時針對兩個緣由而出現的解決方法:
  • 收集多樣化的樣本
  • 簡化模型
  • 交叉檢驗
    模型擬合

邏輯斯諦迴歸

感知機的一個最大缺點是:在樣本不是徹底線性可分的狀況下,它永遠不會收斂。
分類算中的另外一個簡單高效的方法:logistics regression(分類模型)算法

  • 不少狀況下,咱們會將邏輯迴歸的輸出映射到二元分類問題的解決方案,須要確保邏輯迴歸的輸出始終落在在0-1之間,此時S型函數的輸出值正好知足了這個條件,其中:

概率比(odd ratio)

特定的事件的發生的概率,用數學公式表示爲:$\frac{p}{1-p} $,其中p爲正事件的機率,不必定是有利的事件,而是咱們將要預測的事件。以一個患者患有某種疾病的機率,咱們能夠將正事件的類標標記爲y=1。
如圖機器學習

  • 也就是樣本特徵與權重的線性組合,其計算公式:
    z = w·x + b
  • 預測獲得的機率能夠經過一個量化器(單位階躍函數)簡單的轉化爲二元輸出
  • 若是y>0.5 則判斷該樣本類別爲1,如y<0.5,則斷定該樣本是其餘類別。
  • 對應上面的展開式,若是z≥0,則判斷類別是1,不然是其餘。
  • 閾值也就是0.5

經過邏輯斯諦迴歸模型的代價函數得到權重

  • 斷定某個樣本屬於類別1或者0 的條件機率以下:
  • 邏輯迴歸的代價函數是最小二乘損失函數
    PQBB5D.png
  • 爲了推導出邏輯斯蒂迴歸的代價函數,須要先定義一個極大似然函數L,
  • 用極大似然估計來根據給定的訓練集估計出參數w,對上式兩邊取對數,化簡爲

    求極大似然函數的最大值等價於求-l(w)的最小值,即:

利用梯度降低法求參數

  • 在開始梯度降低以前,sigmoid function有一個很好的性質,

    梯度的負方向就是代價函數降低最快的方向,藉助泰勒展開,能夠獲得(函數可微,可導)

    其中,f'(x) 和δ爲向量,那麼這二者的內積就等於

    當θ=π時,也就是在δ與f'(x)的方向相反時,取得最小值, 也就是降低的最快的方向了
    這裏也就是: f(x+δ) - f(x) = - ||δ||·||f'(x)||

    也就是
  • 其中,wj表示第j個特徵的權重,η爲學習率,用來控制步長。
  • 對損失函數J(θ)中的θ的第j個權重求偏導,
    因此,在使用梯度降低法更新權重時,只要根據公式

    當樣本量極大的時候,每次更新權重須要耗費大量的算力,這時能夠採起隨機梯度降低法,這時,每次迭代的時候須要將樣本從新打亂,而後用下面的式子更新權重

參考文獻:函數

  • Raschka S. Python Machine Learning[M]. Packt Publishing, 2015
  • 周志華. 機器學習 : = Machine learning[M]. 清華大學出版社, 2016.
相關文章
相關標籤/搜索