機器學習筆記之Logistic迴歸演算法
Logistic迴歸演算法:
優點:計算代價不高,易於理解和實現。
缺點:容易欠擬合,分類精度可能不高。
適用資料型別:數值型和標稱型。
演算法原理:logistic迴歸是一種廣義線性迴歸(generalized linear model),因此與多重線性迴歸分析有很多相同之處。它們的模型形式基本上相同,都具有 w'x+b,其中w和b是待求引數,其區別在於他們的因變數不同,多重線性迴歸直接將w'x+b作為因變數,即y =w'x+b,而logistic迴歸則通過函式L將w'x+b對應一個隱狀態p,p =L(w'x+b),然後根據p
與1-p的大小決定因變數的值。如果L是logistic函式,就是logistic迴歸,如果L是多項式函式就是多項式迴歸。
ps:因為Logistic的幾何形狀很像一個“S”型,所以又叫 sigmoid曲線(S型曲線)
演算法流程:
收集資料:採用任意方法收集資料。
準備資料:由於需要進行距離計算,因此要求資料型別為數值型。
分析資料:採用任意方法對資料進行分析。
訓練演算法:大部分時間將用於訓練,訓練的目的是為了找到最佳的分類迴歸係數。
測試演算法:一旦訓練完成,分類也計算的很快。
使用演算法:對實際資料進行預測。
Logistic函式:
它的幾何形狀:
由圖我們可以看出,在處理二分類問題(0,1)時,x=0,f(x) = 0.5,但函式自變數趨近於正無窮時,函式逼近於1。反之,當函式自變數趨近於負無窮時,函式逼近於0。所以對於任意一個輸入值,我們總能得出一個在(0,1)之間的輸出結果,但輸出結果大於0.5時,我們認為輸出結果為1,反之為0。因此Logistic迴歸也可以被看成是一種概率估計。
函式確定之後我們在看一下它的輸入情況,我們可以將對條件輸入記作:
如果採用向量的寫法可以記作:
其中向量x是輸入資料,w為輸入資料的係數。
所以其實Logistic的訓練過程,其實也就是求最優迴歸係數的過程。
這裡我們就需要一個優化演算法了,也變引出了——梯度下降(上升)演算法
梯度下降(上升)法是一個最優化演算法,通常也稱為最速下降(上升)法。最速下降(上升)法是求解無約束優化問題最簡單和最古老的方法之一,雖然現在已經不具有實用性,但是許多有效演算法都是以它為基礎進行改進和修正而得到的。最速下降(上升)法是用負(正)梯度方向為搜尋方向的,最速下降(上升)法越接近目標值,步長越小,前進越慢。
下面便是梯度下降(上升)演算法的經典圖示了:
梯度下降(上升)演算法的計算公式:
Logistic函式程式碼:
def sigmoid(inX):
return 1.0/(1+exp(-inX))
def gradAscent(dataMatIn, classLabels):
dataMatrix = mat(dataMatIn)
labelMat = mat(classLabels).transpose()
m,n = shape(dataMatrix)
alpha = 0.001
maxCycles = 500
weights = ones((n,1))
for k in range(maxCycles):
h = sigmoid(dataMatrix*weights)
error = (labelMat - h)
weights = weights + alpha * dataMatrix.transpose()* error #梯度上升演算法部分
return weights
我們嘗試使用Logistic迴歸演算法,將這兩組資料在這個二維面上劃分出來(對於人來說這個工作相當簡單。。。)
嗯,看來Logistic迴歸演算法表現的還不錯,至少有五歲小朋友的一筆畫智商了^_^...
相關文章
- 機器學習筆記(2): Logistic 迴歸機器學習筆記
- 機器學習演算法:Logistic迴歸學習筆記機器學習演算法筆記
- 機器學習之Logistic迴歸演算法機器學習演算法
- 機器學習之Logistic迴歸機器學習
- 吳恩達機器學習筆記 —— 7 Logistic迴歸吳恩達機器學習筆記
- 機器學習實戰之Logistic迴歸機器學習
- [機器學習實戰-Logistic迴歸]使用Logistic迴歸預測各種例項機器學習
- P2 鄒博機器學習logistic迴歸機器學習
- 【機器學習】Logistic迴歸ex2data2機器學習
- 吳恩達機器學習課程05——Logistic迴歸吳恩達機器學習
- 機器學習筆記(1):線性迴歸機器學習筆記
- 1.4 - logistic迴歸
- 機器學習筆記-多類邏輯迴歸機器學習筆記邏輯迴歸
- 【機器學習筆記】:大話線性迴歸(一)機器學習筆記
- 【機器學習筆記】:大話線性迴歸(二)機器學習筆記
- 機器學習筆記(2):線性迴歸-使用gluon機器學習筆記
- 機器學習筆記(3):多類邏輯迴歸機器學習筆記邏輯迴歸
- 【機器學習演算法實現】logistic迴歸__基於Python和Numpy函式庫機器學習演算法Python函式
- 機器學習之迴歸指標機器學習指標
- 機器學習之線性迴歸機器學習
- 機器學習之邏輯迴歸機器學習邏輯迴歸
- 【《白話機器學習的數學》筆記1】迴歸機器學習筆記
- Logistic 迴歸-原理及應用
- 機器學習筆記(6):多類邏輯迴歸-使用gluon機器學習筆記邏輯迴歸
- 機器學習筆記(4):多類邏輯迴歸-使用gluton機器學習筆記邏輯迴歸
- 演算法金 | 你真的完全理解 Logistic 迴歸演算法了嗎演算法
- 手擼機器學習演算法 - 嶺迴歸機器學習演算法
- Logistic迴歸、softmax迴歸以及tensorflow實現MNIST識別
- Python機器學習筆記:使用Keras進行迴歸預測Python機器學習筆記Keras
- 吳恩達機器學習筆記 —— 3 線性迴歸回顧吳恩達機器學習筆記
- 機器學習(課堂筆記)Day04:線性迴歸法機器學習筆記
- 機器學習程式碼筆記-2-簡單線性迴歸機器學習筆記
- Andrew NG 深度學習課程筆記:二元分類與 Logistic 迴歸深度學習筆記
- 機器學習之迴歸分析--預測值機器學習
- spark Ml 機器學習之 線性迴歸Spark機器學習
- 機器學習筆記之Kmeans演算法機器學習筆記演算法
- 手擼機器學習演算法 - 邏輯迴歸機器學習演算法邏輯迴歸
- 手擼機器學習演算法 - 線性迴歸機器學習演算法