LR注意點

下面這個人的筆記做的還不錯

http://www.cnblogs.com/jianzhitanqiao/p/5488659.html

1. Logistic回歸的決策函數是sigmoid函數,那么它的判定邊界怎么求

突然想通了,是f(z) = sigmoid(z)

當z >0時,輸出1

當z<0時,輸出0

那么函數z=0就是判定邊界

關于z的解析式可以是高次的多項式函數

邏輯回歸的損失函數:---如果將sigmoid函數代入最小二乘會得到一條并不收斂的曲線

sigmoid最小二乘損失函數

Logistic回歸損失函數若使用最小二乘得到的是非凸函數,容易陷入局部的極小值。

解決方法:

似然函數costfunc

似然函數進行極大似然估計


加入L2正則

LR對于樣本的處理

樣本太大怎么辦?

1. 采樣再 LR

2. 分布式上 spark mllib

3. 將特征 離散化為 0-1,這樣雖然訓練數據量沒有變,特征向量還變長了,

但是 因為 0-1 操作,使得計算速度變快

4. 連續(xù)值的特征,最好 scaling一樣,使得因子圖 不是 特別的細長,而是 圓形,這樣利于優(yōu)化的速度,這個也是可以 加速訓練的

--注意樣本的平衡

·-》對樣本分布敏感

--》下采樣 --》上采樣

--》修改loss func 給予不同權重

--》采樣后的預測結果,用排序作ok,用作判定請還原

--使用LR 的tech關于特征的聚類

提前,將一些特征先 hash,比如 uuid?

---LR也能用于特征選擇(去除theta為0的特征,選擇theta大的特征)

-------------關于模型調優(yōu)

假設只看模型:

---選擇合適的正則化(L1,L2,L1+L2):L2的準確度高一些,但是收斂時間長一些。L1是截斷性效益【可以做一定程度的特征選擇,數據量特別大用L1】

--正則化系數C(lambda)【表示懲罰程度有多高】

--收斂閾值e,迭代次數

--調整loss func給定不同權重

Bagging或其他方式的模型融合

--最優(yōu)化算法選擇(‘newton-cg’,'lbfgs'--spark里面用的這個,'liblinear'--默認使用梯度下降,'sag')

小樣本liblinear

大樣本sag

多分類‘newton-cg’和‘lbfgs’【也可以用liblinear和sag的one-vs-rest】


-----liblinear--常用庫【臺灣大學】

--------存儲方式:libsvm稀疏向量存儲格式,海量數據下單機速度還ok

-------高維度離散化特征,準確率逼近非線性切分

------參數調節(jié)方便

SKlearn中的LR實際上就是liblinear封裝的

L1正則和L2正則的區(qū)別

L2正則是一種縮放效應,會讓大部分特征都拿到權重但是,幅度小

L1正則是截斷式效應,有可能很多特征的權重會變?yōu)?






2. SVM適合數據量比較小的情況,因為計算量大

并且對于非均衡樣本,效果較差

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容