from numpy import *
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+exp(-inX))
def gradAscent(dataMatIn,classLabels):
dataMatrix=mat(dataMatIn)
labelMat=mat(classLabels).transpose()
#print labelMat
m,n=shape(dataMatrix)
alpha=0.001
maxCycles=500
weights=ones((n,1))
#print weights
for k in range(maxCycles):
h=sigmoid(dataMatrix*weights)
error=(labelMat-h)
weights=weights+alpha*dataMatrix.transpose()*error
return weights
数据集的位置在XX
仍然存在的问题是
1. 倒数第二句,dataMatrix.transpose()*error是如何表示上升(or下降?)方向的?梯度?