首页 > 编程语言 >线性回归算法

线性回归算法

时间:2023-03-11 22:14:31浏览次数:35  
标签:loss gradient 回归 rate current 算法 points learning 线性

1.算法原理

y=w*x+b+ε

loss=Σ(w*xi+b-yi)2

w'=w-lr*(loss对w求偏导)           # 梯度下降算法

b'=b-lr*(loss对b求偏导)             # 梯度下降算法

 2.基于numpy实现
def compute_loss(b,w,points):
	loss = 0
	n = len(points)
	for i in range(n):
		x = points[i,0]
		y = points[i,1]
		loss += (y-(w*x+b))**2
	return loss/n

def step_gradient(current_b,current_w,points,learning_rate):
	b_gradient = 0
	w_gradient = 0
	n = len(points)
	for i in range(0,n):
		x = points[i,0]
		y = points[i,1]
		# grad_b = 2*(w*x+b-y)
		b_gradient += (2/n)*((current_w*x+current_b)-y)
		# grad_w = 2*(w*x+b-y)*x
		w_gradient += (2/n)*x*((current_w*x+current_b)-y)
	current_b = current_b - learning_rate * b_gradient
	current_w = current_w - learning_rate * w_gradient
	return current_b,current_w

def gradient_descent_runner(points,start_b,start_w,learning_rate,num):
	b = start_b
	w = start_w
	for _ in range(num):
		b,w = step_gradient(b,w,np.array(points),learning_rate)
	return b,w

def run():
	points = np.genfromtxt("data.csv",delimiter=",")
	learning_rate = 0.0001
	b = 0
	w = 0
	num = 1000
	loss = compute_loss(b,w,points)
	print(w,b,loss)
	b,w = gradient_descent_runner(points,b,w,learning_rate,num)
	loss = compute_loss(b,w,points)
	print(w,b,loss)

  

  

标签:loss,gradient,回归,rate,current,算法,points,learning,线性
From: https://www.cnblogs.com/navysummer/p/17207142.html

相关文章

  • 避免死锁(银行家算法)
    避免死锁(银行家算法)1、什么是安全序列2、安全序列、不安全状态、死锁的联系3、银行家算法实现思想知识回顾......
  • 图论算法
    图论算法第一节基本概念一、什么是图?很简单,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,定义为:graph=(V,E)。V是一个非空有限集合,代表顶点(结点),E代表边的集合。......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述       随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文介绍了LTE的概念......
  • 量子图形加密算法的MATLAB代码实现
    一、概述目前主流的量子图形加密算法有量子像素编码算法(QuantumImagePixelEncoding,QIPE)、量子像素置乱算法(QuantumImagePixelScrambling,QIPS)等。一个简......
  • 八大排序算法
    概述排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。......
  • 卡尔曼滤波算法综述(KF、EKF、UKF和IMM)
    本篇博文是对之前学习的书籍《卡尔曼滤波原理及应用--------MATLAB仿真》里面的卡尔曼滤波知识做一个回顾,里面不会包含具体的公式推导,只是对里面的几种算法做一个综述,......
  • 最短路径算法
    原理1.算出目前数据中,起点到终点的最短路径2.路径从短到长获取目前最短的路径,设置标识,有标识的不参与下一步循环 packagecom.jason.base.arithmetic;importlom......
  • 【质因数分解算法详解】C/Java/Go/Python/JS/Dart/Swift/Rust等不同语言实现
    关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异什么是质因数算法?即任意一个合数可以分解为多个质数相乘。例如:20=2*2*545=3*3*5210=2*......
  • 《渗透测试》算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护 2023 day8
           1数据在传输的时候为什么要进行编码   安全测试的时候往往会对url等地方进行修改、构造数据。数据传输的时候被编码的话,如果不按照对应编码......