python/邏輯迴歸

正則化方法,防止過擬合,提高泛化能力

在機器學習算法中,常常將原始數據集分爲三部分:training data、validation data 、testing data。
其中validation data用來避免過擬合, 根據validation data上的效果確定學習速率、迭代停止時機等。testing data則用來判斷模型的好壞。

L2 regularization權重衰減

L2正則化就是在代價函數後面加上一個正則化項:
L2
C0表示原始的代價函數。λ是正則化係數,n爲訓練集的樣本大小,w爲模型參數。意義就是所有參數w的平方和除以訓練集樣本大小,係數1/2爲了計算方便。L2正則化項效果是減小w,防止參數w過大導致過擬合,更小的權值w,表示網絡的複雜度更低。
正則化係數λ的值越大,表示對模型的複雜度懲罰越大。

L1 regularization

L1
L1正則化是所有的權重w的絕對值的和,除以樣本大小n,λ是正則化係數。L1正則化不需要乘以1/2。
L1的正則化的效果是當w>0時,更新後w變小;w<0,更新後w變大,讓w往0靠攏,使網絡中的權重儘可能爲0,相當於減少模型複雜度,防止過擬合。

過擬合問題往往來源於過多的特徵,解決的方法就是減少特徵數量,或者正則化。

Logistic regression

轉載:http://blog.csdn.net/pakko/article/details/37878837
http://www.cnblogs.com/guyj/p/3800519.html
Logistic迴歸主要用於二分類問題。
對於線性的決策邊界,邊界形式爲:
線性

決策邊界,構造的預測函數如下,表示結果取1的概率,
邏輯函數
結合0和1兩種概率,可以寫爲:
概率

通過最大似然估計來求解參數。參數的似然函數爲:
似然函數

轉換爲:
這裏寫圖片描述

最終求平均值,得到代價函數爲:
cost函數

通常還要使用正則化的方法來約束模型的參數,防止過擬合。

Cost(Θ) =argmin

此外,f(x)需要添加常數b修正爲:

f(x)=g(ΘTx)=11+eΘTxb

Θ 和b的迭代:
Θj:=ΘjβCost(Θ,b)Θ

b:=bβCost(Θ,b)b

scikit-learn中的邏輯迴歸

import sklearn import linear_model
clf=linear_model.LogisticRegression(C=1.0,penalty=’l1’,tol=1e-6)
clf.fit(x,y)

penalty指定選擇L1或L2正則化,newton-cg、lbfgs只支持L2。
C 正則化強度,越小正則化強度越強。
solver 指定算法,可選有newton-cg、lbfgs、liblinear、sag。小的樣本選擇liblinear,sag適合大的數據集,對於多分類問題,只能選擇newton-cg、lbfgs。

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