from numpy import *
def loadDataSet():
dataMat=[];
labelMat=[];
fr=open('C:/Users/xuwei/Desktop/机器学习/机器学习实战(pdf版+源码)/machinelearninginaction/Ch05/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) #mat是转换为numpy的矩阵数据
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) #h是一个列向量
error=(labelMat-h) #计算真实类别和预测类别的差值