首页 > 其他分享 >使用matplotlib模拟线性回归

使用matplotlib模拟线性回归

时间:2022-11-16 14:08:05浏览次数:51  
标签:plt reshape matplotlib np dot 线性 100 模拟


首先需要两个模块:

1.numpy
2.matplotlib.pylab

安装命令

pip install numpy

pip install matplotlib

使用matplotlib模拟线性回归_线性回归


线性回归的主要作用就是用一条线性的函数或者表达式来拟合在离散空间的随机点,是一种预测性的建模技术。

安装后导入模块:

import numpy as np
import matplotlib.pylab as plt

1.首先在空间中创建数据:

在线性空间中-1到1中生成100个数字,并通过reshape函数转换成100行1列的数据,并将其打乱。

x = np.linspace(-1,1,100).reshape((100,1))
m = len(x)
y = 0.8*x + 0.1* np.random.randn(m).reshape((m,1))

linespace 的作用就是在-1和1中生成100个数字,并且这100个数字之间的差是相同的。

STEP 2

np.hstack将参数元组的元素数组按水平方向进行叠加
ones_like方法返回一个和给定数组相同类型的数组,这里定义为X

w = np.zeros(2).reshape((2,1))
X = np.hstack((x,np.ones_like(x)))

STEP 3

n = 200
lr = 0.05
J = list()

plt.ion() #ion() 不接受任何参数。只是用于开启交互模式
plt.figure(1,figsize=(8,6)) #创建一个图形

for t in range(n):
pred_y = np.dot(X,w)
cost = 1/(2*m) * np.sum((np.dot(X,w)-y)**2)
J.append(cost)
dw = 1/m * np.dot(X.T,np.dot(X,w)-y)
w = w - lr * dw;
if t % 5 == 0:
plt.subplot(2,1,1)
plt.cla()
plt.scatter(x,y) #在图上绘制x,y坐标为离散点
plt.plot(x,pred_y,'r-',lw=5) #红色线条,粗为5进行拟合
plt.text(0.5,0,'Loss=%.4f' %cost) #显示损失数值
plt.subplot(2,1,2) #新增一个子模块用于显示图形
plt.cla()
plt.plot(J)
plt.pause(0.2)
plt.ioff()
plt.show()

将所有代码结合,就能够得到线性回归的运行示意图。

该图是动态展示的,

使用matplotlib模拟线性回归_拟合_02


当重复次数足够大时,损失函数会变少,得到的直线(曲线)就会更加拟合区间上的离散点。

使用matplotlib模拟线性回归_数组_03

标签:plt,reshape,matplotlib,np,dot,线性,100,模拟
From: https://blog.51cto.com/u_13283563/5856072

相关文章

  • 单元测试 request_mock模拟网络调用
    importunittestfromunittestimportmockfromrequests.exceptionsimportConnectionErrorimportrequests_mockimportrequestsclassMyBugzilla:def__......
  • 实验 Linux Shell实现模拟多进程并发执行【操作系统】
    实验楼【操作系统】​​参考文章​​​​简单样例​​​​添加一个系统调用【实验】​​​​LinuxShell实现模拟多进程并发执行【实验】​​​​test1串行​​​​test2......
  • 2022.11.14模拟赛题解
    树的覆盖\(dp_{i,j,0/1/2}\)表示以\(i\)为根的子树中覆盖\(j\)个点的方案数。其中\(0/1/2\)分别表示了\(3\)种情况。\(0\)表示示当前节点和子节点都没被选中......
  • Python绘制精美可视化数据分析图表(一)-Matplotlib
    前言数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程.这一过程也是质量管理体系的支持过程.在实......
  • 线性DP-2472. 不重叠回文子字符串的最大数目
    问题描述给你一个字符串s和一个正整数k。从字符串s中选出一组满足下述条件且不重叠的子字符串:每个子字符串的长度至少为k。每个子字符串是一个回文串......
  • 线性与树型数据结构可视化模拟器
    线性与树型数据结构可视化模拟器题目2:线性与树型数据结构可视化模拟器[问题描述]数据结构课程是计算机类专业的核心课程之一,是计算机科学与技术必修的专业基础课程。数......
  • 【题解】[模拟赛20221115] Tree
    模拟赛20221115Tree|CQNK\(O(m*n*2^n)\)很好做,但是本题有更优秀的做法:在此记录复杂度\(O(n*2^n)\)的做法。考虑从后往前dp,设dp状态\(f_{s,0/1}\)分别表示在填......
  • NOIP模拟3--目前只有一些鬼畜
    A.三元这东西虽然过了,但是感觉它好鬼畜啊,既没有用到三进制数,也没有把所有串的单个位拿出来讨论,我的dfs只是为了生成全排列……就这玩意还写了177行……什么鬼?#includ......
  • matplotlib 中文问题
    转自:matplotlib图例中文乱码?-pythonic生物人的回答-知乎https://www.zhihu.com/question/25404709/answer/2455652871最近发现一个很nice的Matplotlib字体管理工......
  • 给大家来一次模拟面试吧~
    犹抱琵琶半遮面,千呼万唤始出来~最近在慕课网出了一门全新体系课程-《Java高级工程师》地址为:https://class.imooc.com/sale/javasenior从规划到设计到制作花了1年时......