博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
梯度下降法实现最简单线性回归问题python实现
阅读量:5959 次
发布时间:2019-06-19

本文共 1099 字,大约阅读时间需要 3 分钟。

梯度下降法是非常常见的优化方法,在神经网络的深度学习中更是必会方法,但是直接从深度学习去实现,会比较复杂。本文试图使用梯度下降来优化最简单的LSR线性回归问题,作为进一步学习的基础。

import numpy as npimport pandas as pdfrom numpy import *from pandas import *import matplotlib.pyplot as pltx = np.array([[1,2],[2,1],[3,2.5],[4,3],              [5,4],[6,5],[7,2.7],[8,4.5],              [9,2]])m, n = np.shape(x)x_data = np.ones((m,n))x_data[:,:-1] = x[:,:-1]y_data = x[:,-1]print(x_data.shape)print(y_data.shape)m, n = np.shape(x_data)theta = np.ones(n)def batchGradientDescent(maxiter,x,y,theta,alpha):    xTrains = x.transpose()    for i in range(0,maxiter):        hypothesis = np.dot(x,theta)        loss = (hypothesis-y)        gradient = np.dot(xTrains,loss)/m        theta = theta - alpha * gradient        cost = 1.0/2*m*np.sum(np.square(np.dot(x,np.transpose(theta))-y))        print("cost: %f"%cost)    return thetaresult = batchGradientDescent(10,x_data,y_data,theta,0.01)print(result)newy = np.dot(x_data,result)fig, ax = plt.subplots()ax.plot(x[:,0],newy, 'k--')ax.plot(x[:,0],x[:,1], 'ro')plt.show()print("final: " + result)

 

转载于:https://www.cnblogs.com/kidsitcn/p/9889106.html

你可能感兴趣的文章
2015年末必备前端工具集
查看>>
【Solidity】8. 杂项 - 深入理解Solidity
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
FT Partners CEO:Fintech游戏才刚刚开始,未来真正的关注点在这里
查看>>
Go语言大神亲述:历七劫方可成为程序员!
查看>>
【盘点】2017杭州云栖大会迁云实战Workshop
查看>>
Visual Studio 2008提高工作效率的小技巧
查看>>
深入研究Clang(七) Clang Lexer代码阅读笔记之Lexer
查看>>
对话依图医疗总裁倪浩:AI 产品只是第一步,未来要和医院制定中国儿童骨龄新标准...
查看>>
mysql并行复制
查看>>
Duilib学习笔记《06》— 窗体基类WindowImpBase
查看>>
共筑开放AI生态:ONNX标准得到华为、英特尔等更多厂商支持
查看>>
辅助企业IT进化的路上 数人云的不变与多变
查看>>
释放大数据生产力 Kyligence发布最新版旗舰产品KAP2.4
查看>>
惠普:应把大数据科学家作为一种共享资源
查看>>
中国人工智能学会通讯——自然语言处理中的技术评测
查看>>
开启openssl
查看>>
你必须关注超融合基础设施的理由
查看>>
善用佳软站长:畅谈大数据时代的知识管理
查看>>
AT&T:BYOD在2015年达“拐点”
查看>>