简单一元线性回归实现python

简单一元线性回归实现python

简单一元线性回归实现python

#线性回归梯度下降

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import matplotlib

import seaborn as sns

import datetimefrom sklearn.linear_model

importLinearRegression

matplotlib.rcParams['font.family']='kaiti'

df=pd.read_csv('C:/Users/韭菜盒子/Desktop/Salary_Data.csv',delimiter=',',encoding='utf-8'

x_data=df.iloc[:,0].values

#print(x_data)

x_data=pd.DataFrame(x_data)

x_data=x_data.values

y_data=df.iloc[:,1].values

# print(y_data)

y_data=pd.DataFrame(y_data)y_data=y_data.values

# plt.scatter(x_data,y_data,)

# plt.show()

k=0

#参数

b=0

#参数

lr=0.001

#学习率

epochs=10000

#迭代次数

class lineral_model1(object):

#手写

m=float(len(x_data))

def loss_function(self,x_data,y_data,k,b):

error=0

for i in range(len(x_data)):

error+=(((k*x_data[i])+b)-y_data[i])**2

return error/2.0/self.m

#损失函数

#梯度下降法求参数

def gradient_decent(self,x_data,y_data,k,b,epochs,lr):

for i in range(epochs):

k_brad=0

b_brad=0

for j in range(len(x_data)):

k_brad += (1/self.m)* x_data[j]*(((k *x_data[j])+b)-y_data[j])

b_brad +=(1/self.m) * (((k*x_data[j])+b)-y_data[j])

k=k-lr*k_brad

b=b-lr*b_brad

return k,b

benben=lineral_model1()

error1=benben.loss_function(x_data,y_data,k,b)

print(error1)

#k,b为0 时的损失函数值

k1,r1=benben.gradient_decent(x_data,y_data,k,b,epochs,lr)

#print(k1,r1)

plt.plot(x_data,y_data,'b.')

plt.plot(x_data,k1*x_data+r1,'r',label='me')

error2=benben.loss_function(x_data,y_data,k1,r1)

#调用进行梯度下降后的k,b,求得此时损失函数的值

#直接掉包实现

#sklearn

model=LinearRegression()

model.fit(x_data,y_data)

plt.plot(x_data,model.predict(x_data),'b',label='sklearn')

plt.legend()

plt.show()

简单一元线性回归实现python相关教程

python一元线性回归绘制_简单一元线性回归实现python相关推荐

  1. python金字塔图绘制_如何用R或Python绘制3d(4变量)三元(金字塔)图?

    嗯,我自己用了wikipedia article.SO post和一些蛮力解决了这个问题.对不起,代码墙,但你必须画出所有的绘图轮廓和标签等等.在import numpy as np import m ...

  2. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  3. 一般线性模型和线性回归模型_您的线性回归模型指南

    一般线性模型和线性回归模型 Interpretability is one of the biggest challenges in machine learning. A model has mor ...

  4. python基本图形绘制_【Python】Python基本图形绘制-Go语言中文社区

    1.Python蟒蛇图形绘制: 代码: #PythonDraw.py import turtle turtle.setup(650, 350, 200, 200) turtle.penup() tur ...

  5. python中len用法_简单介绍Python中的len()函数的使用

    简单介绍Python中的len()函数的使用 函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数:str:要计算的字符串.列表.字典.元组等 4:返回 ...

  6. python态密度曲线绘制_使用Multiwfn绘制态密度(DOS)图考察电子结构

    使用Multiwfn绘制态密度(DOS)图考察电子结构 文/Sobereva@北京科音 First release: 2019-May-14  Last update: 2020-Nov-17 0 前 ...

  7. python中输入字符串_简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...

  8. python画指数函数图像_「指数函数图像」python画出e指数函数的图像 - seo实验室...

    指数函数图像 这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ...#!/us ...

  9. python数据分析模块包括_数据开发必会 | Python数据分析模块

    作为数据开发,Python强大的数据分析模块还是必须要会的,横向拓展数据分析与挖掘技术栈也是很有必要的.本文将对Pandas.NumPy.SciPy.Matplotlib等分析挖掘库的安装和使用进行简 ...

最新文章

  1. 5G+AI:影响未来的新趋势
  2. 战略资产配置matlab,资产组合有效前沿的解和最优解(MATLAB语言)
  3. 基本概念之运算符与表达式
  4. SAP PP模块调研问卷
  5. centos 6.5 rpm mysql_Linux平台(CentOS 6.5) RPM包方式安装 Mysql 5.7
  6. python和excell_Python与Excel 不得不说的事情
  7. NHibernate Profiler使用方法
  8. 【声辐射】——不同坐标系下的格林函数
  9. 51nod 1292 字符串中的最大值V2(后缀自动机)
  10. 一文读懂架构师都不知道的isinstance检查机制
  11. P2515 [HAOI2010]软件安装
  12. linux之curl命令
  13. 5类6类7类网线对比_超详细的超五类、六类、七类网线的对比
  14. java 单击按钮改变背景颜色_java点击按钮换背景颜色?
  15. 光电反射传感器 红外对管模块
  16. EDK2 Build Flow
  17. [虚拟机]hyper-v简介及安装使用(图文详解)
  18. 送给 xdm 的 10 个 web 在线前端资源,优雅永不过时~
  19. windows用python读取文件open()函数
  20. 一心多用多线程-线程池ThreadPoolExecutor-看这篇就够了

热门文章

  1. mediasoup详解
  2. linux快速扫ip段端口,手把手教你 3 个 Linux 中快速检测端口的小技巧
  3. RESTEasy初探
  4. 中国人英语学习的七个阶段
  5. 机器学习——监督学习和无监督学习的区别
  6. cocos creator 部署微信云开发
  7. 行业报告 | 机器人行业发展概览
  8. 湖南大学21夏训练四3.相同生日
  9. 墨门云上网行为管控系统的特点和优势
  10. unsigned long int