logistic回歸演算法是乙個最優化演算法,回歸就是擬合的過程。logistic回歸的思想就是利用現有資料對分類邊界建立線性回歸公式,今天我們用這個演算法來解決二值分類問題。
from numpy import *
def loaddataset():
datamat = ; labelmat =
fr = open('testset.txt')
for line in fr.readlines():
linearr = line.strip().split()
return datamat,labelmat
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
第乙個函式還是初始化資料,datamat是屬性資料集,在datamat的第一列都設定為1主要是為了方便計算。labelmat儲存的是標籤資料。第二個函式即是sigmoid函式公式。第三個函式是最主要的函式,用於計算最佳回歸係數。首先將儲存特徵值的列表轉換成矩陣形式。以便進行計算,將標籤資料轉換成列向量。alpha是向目標移動的步長,maxcycles是迭代次數,我們可以改變這兩個值來確定最佳的回歸係數。for迴圈裡的前兩句是計算真是類別與**類別的差值,接下來按照差值的方向調整回歸係數。 Logistic回歸(隨機梯度上公升)
由於梯度上公升優化演算法在每次更新資料集時都需要遍歷整個資料集,計算複雜都較高,這裡有乙個隨機梯度上公升演算法也可以求得回歸係數,這種演算法一次只用乙個樣本點來更新回歸係數。def stocgradascent0 datamatrix,classlabels m,n shape datamatrix...
梯度上公升法求解Logistic回歸
對率函式h 1 1 e z z t x 1 p p yi p 1 yi 極大似然函式為 p p yi p 1 yi 假定p h xi 則p 1 h xi 則 p p yi p 1 yi h xi yi 1 h xi 1 yi 兩邊同時取對數,則 lnp ln h xi yi 1 h xi 1 yi ...
Logistic 回歸梯度上公升優化函式
in 183 def loaddataset datamat labelmat fr open testset.txt for line in fr.readlines linearr line.strip split return datamat,labelmat in 184 def sigmo...