import numpy
as np
def loadDataSet():
dataMat
= []; labelMat
= []
fr
= open('testSet.txt')
for line
in fr
.readlines
():
lineArr
= line
.strip
().split
()
dataMat
.append
([1.0, float(lineArr
[0]), float(lineArr
[1])])
labelMat
.append
(int(lineArr
[2]))
return dataMat
,labelMat
def sigmoid(inX
):
return 1.0/(1+np
.exp
(-inX
))
def gradAscent(dataMatIn
, classLabels
):
dataMatrix
= np
.mat
(dataMatIn
)
labelMat
= np
.mat
(classLabels
).transpose
()
m
,n
= np
.shape
(dataMatrix
)
print(m
,n
)
alpha
= 0.001
maxCycles
= 500
weights
= np
.ones
((n
,1))
for k
in range(maxCycles
):
h
= sigmoid
(dataMatrix
*weights
)
error
= (labelMat
- h
)
weights
= weights
+ alpha
* dataMatrix
.transpose
()* error
return weights
dataMat
,labelMat
= loadDataSet
()
print(gradAscent
(dataMat
, labelMat
))
转载请注明原文地址: https://lol.8miu.com/read-26093.html