下面這個(gè)人的筆記做的還不錯(cuò)
http://www.cnblogs.com/jianzhitanqiao/p/5488659.html
1. Logistic回歸的決策函數(shù)是sigmoid函數(shù),那么它的判定邊界怎么求
突然想通了,是f(z) = sigmoid(z)
當(dāng)z >0時(shí)爪模,輸出1
當(dāng)z<0時(shí)痢站,輸出0
那么函數(shù)z=0就是判定邊界
關(guān)于z的解析式可以是高次的多項(xiàng)式函數(shù)
邏輯回歸的損失函數(shù):---如果將sigmoid函數(shù)代入最小二乘會(huì)得到一條并不收斂的曲線
Logistic回歸損失函數(shù)若使用最小二乘得到的是非凸函數(shù)允蜈,容易陷入局部的極小值冤吨。
解決方法:
似然函數(shù)進(jìn)行極大似然估計(jì)
加入L2正則
LR對(duì)于樣本的處理
樣本太大怎么辦?
1. 采樣再 LR
2. 分布式上 spark mllib
3. 將特征 離散化為 0-1饶套,這樣雖然訓(xùn)練數(shù)據(jù)量沒有變,特征向量還變長了垒探,
但是 因?yàn)?0-1 操作妓蛮,使得計(jì)算速度變快
4. 連續(xù)值的特征,最好 scaling一樣圾叼,使得因子圖 不是 特別的細(xì)長蛤克,而是 圓形,這樣利于優(yōu)化的速度夷蚊,這個(gè)也是可以 加速訓(xùn)練的
--注意樣本的平衡
·-》對(duì)樣本分布敏感
--》下采樣 --》上采樣
--》修改loss func 給予不同權(quán)重
--》采樣后的預(yù)測(cè)結(jié)果构挤,用排序作ok,用作判定請(qǐng)還原
--使用LR 的tech關(guān)于特征的聚類
提前惕鼓,將一些特征先 hash筋现,比如 uuid?
---LR也能用于特征選擇(去除theta為0的特征箱歧,選擇theta大的特征)
-------------關(guān)于模型調(diào)優(yōu)
假設(shè)只看模型:
---選擇合適的正則化(L1矾飞,L2,L1+L2):L2的準(zhǔn)確度高一些呀邢,但是收斂時(shí)間長一些洒沦。L1是截?cái)嘈孕б妗究梢宰鲆欢ǔ潭鹊奶卣鬟x擇,數(shù)據(jù)量特別大用L1】
--正則化系數(shù)C(lambda)【表示懲罰程度有多高】
--收斂閾值e价淌,迭代次數(shù)
--調(diào)整loss func給定不同權(quán)重
Bagging或其他方式的模型融合
--最優(yōu)化算法選擇(‘newton-cg’,'lbfgs'--spark里面用的這個(gè),'liblinear'--默認(rèn)使用梯度下降,'sag')
小樣本liblinear
大樣本sag
多分類‘newton-cg’和‘lbfgs’【也可以用liblinear和sag的one-vs-rest】
-----liblinear--常用庫【臺(tái)灣大學(xué)】
--------存儲(chǔ)方式:libsvm稀疏向量存儲(chǔ)格式申眼,海量數(shù)據(jù)下單機(jī)速度還ok
-------高維度離散化特征瞒津,準(zhǔn)確率逼近非線性切分
------參數(shù)調(diào)節(jié)方便
SKlearn中的LR實(shí)際上就是liblinear封裝的
L1正則和L2正則的區(qū)別
L2正則是一種縮放效應(yīng),會(huì)讓大部分特征都拿到權(quán)重但是括尸,幅度小
L1正則是截?cái)嗍叫?yīng)仲智,有可能很多特征的權(quán)重會(huì)變?yōu)?
2. SVM適合數(shù)據(jù)量比較小的情況,因?yàn)橛?jì)算量大
并且對(duì)于非均衡樣本姻氨,效果較差