机器学习第五章代码.docx

机器学习第五章代码.docx

ID:61434643

大小:13.74 KB

页数:5页

时间:2021-01-30

机器学习第五章代码.docx_第1页
机器学习第五章代码.docx_第2页
机器学习第五章代码.docx_第3页
机器学习第五章代码.docx_第4页
机器学习第五章代码.docx_第5页
资源描述:

《机器学习第五章代码.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、5—1.Logistic回归梯度上升优算法#加载数据,前两列是点所属的X1,X2坐标,最后一列是该点所属分类。fromnumpyimport*defloadDataSet():#加载数据dataMat=[];labelMat=[]fr=open('testSet.txt')#打开文本文件testSet.txtforlineinfr.readlines():#逐行读取lineArr=line.strip().split()dataMat.append([1.0,float(lineArr[0]),flo

2、at(lineArr[1])])#因为线性回归化式为H(x)=W0+W1*X1+W2*X2即为(W0,W1,W2)*(1,X1,X2),其中(W0,W1,W2)即为所求回归系数W。为了方便计算,读出X1,X2后要在前面补上一个1.0labelMat.append(int(lineArr[2]))returndataMat,labelMat#计算sigmoid函数defsigmoid(inX):    return1.0/(1+exp(-inX))#梯度上升算法计算出最佳回归系数defgradAscen

3、t(dataMatIn,classLabels):  dataMatrix=mat(dataMatIn)#转换为NumPy矩阵数据类型    labelMat=mat(classLabels).transpose()#转换为NumPy矩阵数据类型  m,n=shape(dataMatrix)    alpha=0.001                          #步长    maxCycles=500                    #循环次数    weights=ones((n,1

4、))               #回归系数初始化为1#循环maxCycles次,每次都沿梯度向真实值labelMat靠拢Forkinrange(maxCycles):               h=sigmoid(dataMatrix*weights)    #矩阵相乘       error=(labelMat-h) #向量减法运算        weights=weights+alpha*dataMatrix.transpose()*error#矩阵相乘,dataMatrix.transpos

5、e()*error就是梯度f(w) returnweights5—2画出数据集和Logistic回归最佳拟合直线的函数。#画出各个训练点,根据weights(即回归的各个参数)画出直线,以便直观的看到划分是否正确defplotBestFit(weights):    importmatplotlib.pyplotasplt    #画点    dataMat,labelMat=loadDataSet()    dataArr=array(dataMat)    n=shape(dataArr)[0] 

6、   xcord1=[];ycord1=[]    xcord2=[];ycord2=[]    foriinrange(n):      ifint(labelMat[i])==1:        xcord1.append(dataArr[i,1]);ycord1.append(dataArr[i,2])      else:        xcord2.append(dataArr[i,1]);ycord2.append(dataArr[i,2])    fig=plt.figure()    

7、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) #x取值区间为[-3.0,3.0),步长为0.1 y=(-weights[0]-weights[1]*x1)/weights[2] ax.plot(x,y) plt.xlabel('X1');plt.ylabel('X

8、2');#显示 plt.show()5—3随机梯度上升算法defstocGradAscent0(dataMatrix,classLabels):m,n=shape(dataMatrix)alpha=0.01weights=ones(n)#初始化为1的矩阵foriinrange(m):h=sigmoid(sum(dataMatrix[i]*weights))error=classLabels[i]-hweights=weights+alpha*error*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。