其實並沒有本質上的區別,就是邏輯回歸多了乙個sigmoid函式,使樣本能對映到[0,1]之間的數值,用來做分類問題。
簡單的例子就是可以使用吳恩達的課程中的例子來解釋,線性回歸用來**房價,能找到乙個公式來盡量擬合房價和影響房價因素之間的關係,最後得到的公式能準確的用來**房價。在對引數不斷調優以找到一組最擬合資料的引數來構成乙個最好的模型,就是線性回歸。邏輯回歸通過sigmoid函式將任何連續的數值對映到[0,1]之間。
線性回歸用來**,邏輯回歸用來分類。
線性回歸是擬合函式,邏輯回歸是**函式
線性回歸的引數計算方法是最小二乘法,邏輯回歸的引數計算方法是梯度下降。
![在這裡插入描述](
邏輯回歸模型預估的是樣本屬於某個分類的概率,其損失函式(cost function)可以像線型回歸那樣,以均方差來表示;也可以用對數、概率等方法。損失函式本質上是衡量」模型預估值「到「實際值」的距離,選取好的「距離」單位,可以讓模型更加準確。
均方差距離
另外,上面的損失函式相對θ
並非是凸函式,而是有很多極小值(local minimum)的函式。因此,很多凸優化的演算法(如梯度下降)無法收斂到全域性最優點。
log距離
均方差作為lr模型的距離衡量標準,最「預估錯誤」的懲罰太過柔和。因此,最後訓練出來的模型會出現較多的「極端」預估錯誤情況。另外,均方差損失函式的非凸性也限制了其使用價值。
log距離作為損失函式的公式如下:
概率距離
lr模型預估的是概率,自然的,損失函式可以用聯合概率分布來衡量。
正則化的思想是,\theta前面的引數會使得函式變得很大,如果想要最小化整個函式的話,那麼正則化部分的\theta必須要小才能滿足要求(可以將\theta壓縮到接近0)。一般正則化不對\theta增加懲罰項,只對1到n,只是約定俗成的,就算對0懲罰也沒有什麼影響。一般我們不知道是哪個引數導致過擬合,所以我們懲罰所有的引數。
logistic 回歸是一種被人們廣泛使用的演算法,因為它非常高效,不需要太大的計算量,又通俗易懂,不需要縮放輸入特徵,不需要任何調整,且很容易調整,並且輸出校準好的**概率。
與線性回歸一樣,當你去掉與輸出變數無關的屬性以及相似度高的屬性時,logistic 回歸效果確實會更好。因此特徵處理在 logistic 和線性回歸的效能方面起著重要的作用。
logistic 回歸的另乙個優點是它非常容易實現,且訓練起來很高效。在研究中,我通常以 logistic 回歸模型作為基準,再嘗試使用更複雜的演算法。
由於其簡單且可快速實現的原因,logistic 回歸也是乙個很好的基準,你可以用它來衡量其他更複雜的演算法的效能。
它的乙個缺點就是我們不能用 logistic 回歸來解決非線性問題,因為它的決策面是線性的。我們來看看下面的例子,兩個類各有倆例項。
這意味著邏輯回歸在你已經確定了所有重要的自變數之前還不會成為乙個有用的工具。由於其結果是離散的,logistic 回歸只能**分類結果。它同時也以其容易過擬合而聞名。
class
sklearn
.linear_model.logisticregression(
penalty=』l2』, 引數型別:str,可選:『l1』 or 『l2』, 預設: 『l2』。該引數用於確定懲罰項的範數
dual=
false
, 引數型別:bool
,預設:false。雙重或原始公式。使用liblinear優化器,雙重公式僅實現l2懲罰。
tol=
0.0001
, 引數型別:float,預設:e-
4。停止優化的錯誤率
c=1.0, 引數型別:float,預設;1。正則化強度的導數,值越小強度越大。
fit_intercept=
true
, 引數型別:bool,預設:true。確定是否在目標函式中加入偏置。
intercept_scaling=
1, 引數型別:float,預設:1。僅在使用「liblinear」且self.fit_intercept設定為true時有用。
class_weight=
none
, 引數型別:dict,預設:none。根據字典為每一類給予權重,預設都是1
. random_state=
none
, 引數型別:int,預設:none。在打亂資料時,選用的隨機種子。
solver=
'warn'
, 引數型別:str,可選:
, 預設:liblinear。選用的優化器。
max_iter=
100, 引數型別:int,預設:100。迭代次數。
multi_class=
'warn'
, 引數型別:str,可選:,預設:ovr。如果選擇的選項是'ovr',那麼二進位制問題適合每個標籤。對於「多項式」,最小化的損失是整個概率分布中的多項式損失擬合,即使資料是二進位制的。當solver =
'liblinear'時,'multinomial'不可用。如果資料是二進位制的,或者如果solver =
'liblinear','auto'選擇'ovr',否則選擇'multinomial'。
verbose=
0, 引數型別:int,預設:0。對於liblinear和lbfgs求解器,將詳細設定為任何正數以表示詳細程度。
warm_start=
false
, 引數型別:bool,預設:false。是否使用之前的優化器繼續優化。
n_jobs=
none,引數型別:bool,預設:none。是否多執行緒
)
邏輯回歸演算法梳理
邏輯回歸演算法梳理 1 邏輯回歸與線性回歸的聯絡與區別 區別 邏輯回歸 值返回的離散值,線性回歸返回的連續值 聯絡 2 邏輯回歸的原理 邏輯回歸就是這樣的乙個過程 面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞 3 邏輯回歸損失...
邏輯回歸演算法梳理
其原理是將樣本的特徵和樣本發生的概率聯絡起來。優化方法 模型評估指標 在資料極度偏斜的情況下,分類準確度存在問題,比如 癌症,因此只用分類準確度是遠遠不夠的。引入以下指標,優點 缺點 樣本的過取樣和欠取樣 直接基於原始訓練集進行學習,但在用訓練好的分類器進行 時,將y 1 y嵌入到決策過程中,稱為 ...
邏輯回歸演算法梳理
區別 線性回歸主要用來解決連續值 的問題,邏輯回歸用來解決分類的問題,輸出的屬於某個類別的概率。面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞 正則化方法 正則化是結構風險最小化策略的實現,是在經驗風險上加乙個正則化項或懲罰項。...