11
+e−z
1 1+
e−zz=w
0x0+
w1x1
+w2x
2+..
.+wn
xxz =w
0x0+
w1x1
+w2x
2+..
.+wn
xx(z=wt
x z=w
tx) 在每個特徵上都乘以乙個回歸係數,然後把所有結果值相加,將這個總和代入sigmoid函式中,進而得到乙個範圍在0~1直接的數值。(1類:大於0.5; 0類:小於0.5)
梯度上公升法基於的思想是:要找到函式的最大值,最好是沿著該函式的梯度方向探尋 ∇f
(x,y
)=⎛⎝
∂f(x
,y)∂
x∂f(
x,y)
∂y⎞⎠
∇ f(
x,y)
=(∂f
(x,y
)∂x∂
f(x,
y)∂y
)
from numpy import *
defloaddataset
(): datamat =
labelmat =
fr = open('testset.txt')
for line in fr.readlines():
linearr = line.strip().split()
return datamat,labelmat
defsigmoid
(inx):
return
1.0/(1+exp(-inx))
defgradascent
(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
defplotbestfit
(weights):
import matplotlib.pyplot as plt
datamat,labelmat = loaddataset()
dataarr = array(datamat)
n = shape(dataarr)[0]#行
xcord1 =
ycord1 =
xcord2 =
ycord2 =
for i in range(n):
if int(labelmat[i]) == 1:
else:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(xcord1, ycord1, s=30, c='red', marker='s')
ax.scatter(xcord2, ycord2, s=30,c='green')
x = arange(-3.0, 3.0, 0.1)
y = (-weights[0] - weights[1] * x) / weights[2]
ax.plot(x,y)
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()
if __name__ == '__main__':
dataarr,labelmat = loaddataset()
w = gradascent(dataarr,labelmat)
plotbestfit(w.geta())
輸出結果:
隨機梯度上公升演算法:
def
stocgradascent0
(datamatrix, classlabels):
m,n = shape(datamatrix)
alpha = 0.01
weights = ones(n)
for i in range(m):
h = sigmoid(sum(datamatrix[i]*weights))
error = classlabels[i] - h
weights = weights + alpha * error * datamatrix[i]
return weights
輸出結果:
機器學習 機器學習實戰 Logistic回歸
我們在每個特徵上都乘以乙個回歸係數,然後把所有的結果值相加,將這個總和代入sigmoid函式中,進而得到乙個範圍在0 1之間的數值。任何大於0.5的資料被分入1類,小於0.5的被歸入0類。所以此種回歸也可以被看成是一種概率估計。收集資料 任意 準備資料 由於需要進行距離計算,因此要求資料型別為數值型...
機器學習實戰札記 Logistic回歸
這段時間裡,我一直在嘗試將open nsfw加入到手機,給手機瀏覽器增加色情檢測功能,這個分階段進行,在前面的幾篇文章中,都談到了這方面的嘗試 我的第乙個caffe c 程式 我的第乙個caffe android程式 利用人工智慧檢測色情 然而,當我將open nsfw移植到手機上執行時 原始碼已上...
機器學習實戰筆記 Logistic回歸
這裡我們會提到sigmoid函式,而且這個函式 梯度上公升法和梯度下降法 就像是神經網路的乙個神經元 個人這麼看而已 也像二極體的0.7v電壓,這裡面會提到梯度下降法,也會了解資料中缺失的處理。logistics回歸會讓我們接觸最優化演算法。其實我們生活中這樣的問題很多,例如如何在最短時間內從a地到...