当前位置: 首页 > news >正文

python 矩阵乘法梯度下降_使用python numpy矩阵类的梯度下降

我试图用python实现一元梯度下降算法。我尝试了很多不同的方法,但都没用。下面是我尝试过的一个例子。我做错什么了?提前谢谢!!!在from numpy import *

class LinearRegression:

def __init__(self,data_file):

self.raw_data_ref = data_file

self.theta = matrix([[0],[0]])

self.iterations = 1500

self.alpha = 0.001

def format_data(self):

data = loadtxt(self.raw_data_ref, delimiter = ',')

dataMatrix = matrix(data)

x = dataMatrix[:,0]

y = dataMatrix[:,1]

m = y.shape[0]

vec = mat(ones((m,1)))

x = concatenate((vec,x),axis = 1)

return [x, y, m]

def computeCost(self, x, y, m):

predictions = x*self.theta

squaredErrorsMat = power((predictions-y),2)

sse = squaredErrorsMat.sum(axis = 0)

cost = sse/(2*m)

return cost

def descendGradient(self, x, y, m):

for i in range(self.iterations):

predictions = x*self.theta

errors = predictions - y

sumDeriv1 = (multiply(errors,x[:,0])).sum(axis = 0)

sumDeriv2 = (multiply(errors,x[:,1])).sum(axis = 0)

print self.computeCost(x,y,m)

tempTheta = self.theta

tempTheta[0] = self.theta[0] - self.alpha*(1/m)*sumDeriv1

tempTheta[1] = self.theta[1] - self.alpha*(1/m)*sumDeriv2

self.theta[0] = tempTheta[0]

self.theta[1] = tempTheta[1]

return self.theta

regressor = LinearRegression('ex1data1.txt')

output = regressor.format_data()

regressor.descendGradient(output[0],output[1],output[2])

print regressor.theta

有一点更新;我以前尝试用一种更“矢量化”的方式来实现,比如:

^{pr2}$

这导致θ为[[-0.86221218],[0.88827876]]。在

相关文章:

  • oracle 存储过程调用java_oracle 存储过程调用java一
  • java春天_java – 春天的Aspectj
  • java开发微信设计论文_集客微信公众号: 本科毕业设计:基于WxJava框架的集客微信公众号的设计与实现...
  • java 判断是不是英文怎么说_java判断一个字符串是中文还是英文
  • linux+mysql运算符_MySQL 运算符
  • saxreader java_SAXReader saxReader = new SAXReader();来解析xml文件
  • 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  • JAVA循环读取菜单_java循环菜单
  • mysql一条sql的执行过程_【MySQL深入】一条SQL的执行过程
  • java高级编程英语单词_Java高级编程
  • 强对象 java_java对象的强引用,软引用,弱引用和虚引用
  • grafana mysql插件_grafana插件动态数据
  • java runtime api_java runtime 入门
  • java中capitals_Java程序按值对映射进行排序
  • PHP两文件嵌套循环引用,thinkphp模板多层循环嵌套无效问题?
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【React系列】如何构建React应用程序
  • Apache的基本使用
  • echarts花样作死的坑
  • git 常用命令
  • Java多线程(4):使用线程池执行定时任务
  • markdown编辑器简评
  • node学习系列之简单文件上传
  • Rancher-k8s加速安装文档
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • tensorflow学习笔记3——MNIST应用篇
  • underscore源码剖析之整体架构
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 产品三维模型在线预览
  • 关于springcloud Gateway中的限流
  • 使用SAX解析XML
  • 为什么要用IPython/Jupyter?
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 字符串匹配基础上
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​第20课 在Android Native开发中加入新的C++类
  • # Apache SeaTunnel 究竟是什么?
  • #pragma once
  • (python)数据结构---字典
  • (Ruby)Ubuntu12.04安装Rails环境
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十八)三元表达式和列表解析
  • (转)h264中avc和flv数据的解析
  • (转)shell调试方法
  • .net framework profiles /.net framework 配置
  • .Net MVC4 上传大文件,并保存表单
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 托管代码与非托管代码
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET学习全景图
  • @RequestBody的使用
  • @requestBody写与不写的情况
  • @RequestMapping-占位符映射