机器学习第五章代码.docx
《机器学习第五章代码.docx》由会员分享,可在线阅读,更多相关《机器学习第五章代码.docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、51 Logistic 回归梯度上升优算法 #加载数据,前两列是点所属的 X1, X2 坐标, 最后一列是该点所属分类。from numpy import *def loadDataSet(): #加载数据 dataMat = ; labelMat = fr = open(testSet.txt) #打开文本文件testSet.txt for line in fr.readlines(): #逐行读取 lineArr = line.strip().split() dataMat.append(1.0,float(lineArr0),float(lineArr1) # 因为线性回归化式为 H(x
2、) = W0 + W1*X1 + W2*X2即为 (W0, W1, W2)*(1, X1, X2), 其中 (W0, W1, W2) 即为所求回归系数 W。 为了方便计算, 读出 X1, X2 后要在前面补上一个 1.0 labelMat.append(int(lineArr2)return dataMat,labelMat#计算 sigmoid 函数def sigmoid(inX): return 1.0/(1+exp(-inX)# 梯度上升算法计算出最佳回归系数def gradAscent(dataMatIn, classLabels):dataMatrix = mat(dataMatIn
3、) #转换为NumPy矩阵数据类型labelMat = mat(classLabels).transpose() #转换为NumPy矩阵数据类型 m,n = shape(dataMatrix)alpha = 0.001 # 步长maxCycles = 500 # 循环次数weights = ones(n,1)# 回归系数初始化为1#循环 maxCycles次, 每次都沿梯度向真实值 labelMat 靠拢For k in range(maxCycles): h = sigmoid(dataMatrix*weights) # 矩阵相乘error=(labelMat-h) #向量减法运算weigh
4、ts = weights + alpha * dataMatrix.transpose()* error #矩阵相乘,dataMatrix.transpose()* error 就是梯度f(w)return weights52 画出数据集和Logistic回归最佳拟合直线的函数。#画出各个训练点,根据 weights(即回归的各个参数) 画出直线, 以便直观的看到划分是否正确def plotBestFit(weights):import matplotlib.pyplot as plt# 画点dataMat,labelMat=loadDataSet()dataArr = array(dataM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器 学习 第五 代码
限制150内