2.深度学习-线性回归

news2024/11/27 15:49:52

文章目录

    • 环境配置(必看)
    • 线性回归
      • 代码工程
      • 运行结果
        • 1.对比图
        • 2.运行结果

环境配置(必看)

Anaconda-创建虚拟环境的手把手教程相关环境配置看此篇文章,本专栏深度学习相关的版本和配置,均按照此篇文章进行安装。

线性回归

代码工程

import keras
import numpy as np
import matplotlib.pyplot as plt

from keras import layers
from tensorflow.keras import layers


def myregression():
    """
    自实现一个线性回归预测
    :return:
    """

    # 1.x 构造数据
    x = np.linspace(0, 100, 30)

    # 2.目标数据
    y = 3 * x + np.random.randn() * 2

    # 3.初始化模型  Sequential--顺序模型
    model = keras.Sequential()

    # 4.添加层 Dense(输出数据的维度,输入数据的维度)
    # y = a * x + b    从模型可以看出,输出和输出都是1维的
    model.add(layers.Dense(1, input_dim=1, name='abc'))

    # 5.可以输出模型的层结构
    model.summary()

    # 6.编译模型
    # optimizer='adam' - 内置优化算法, loss='mse'--损失函数--均方差
    model.compile(optimizer='adam', loss='mse')

    # 7.训练模型
    # epochs -- 把所有的数据训练多少次
    model.fit(x, y, epochs=7000)

    # 8.预测
    # print(model.predict(x))

    # 添加标题,x轴坐标,y轴坐标的标签,fontsize代表字体大小
    plt.title("linear regression", fontsize=24)
    plt.xlabel("input", fontsize=14)
    plt.ylabel("output of Value", fontsize=14)

    plt.scatter(x, y, c='r')    # 红色的点图是y = 3 * x + np.random.randn() * 2的图
    plt.plot(x, model.predict(x))   # 蓝色的线图是预测的图
    plt.show()

    # 预测具体的x的值 所对应的y值
    print("x输入150,对应的预测值为->:", model.predict([150]))

	# 输出权重
    abcd = model.get_layer('abc')
    print(abcd.weights)


myregression()	# 记得运行函数

运行结果

1.对比图

红色的点图是y = 3 * x + np.random.randn() * 2的图
蓝色的线图是预测的图
可以看出二者的趋势是吻合的,说明我们训练的模型效果还不错
在这里插入图片描述

2.运行结果

一共训练了7000次,可以看到 loss 的值已经出现了过拟合的一个状态,所以大家在训练时这个模型的model.fit(x, y, epochs=7000),epochs可以设置为6000看看状态。
在这里插入图片描述
从下图中可以看出
对训练好的模型输入150,输出455.9168
权重值:3.0267823
偏差值:1.8994627
对比我们设置的y = 3 * x + np.random.randn() * 2
说明此模型针对线性回归的预测效果还不错
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1825663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业 UI 风格,展现独特魅力

工业 UI 风格,展现独特魅力

「TCP 重要机制」滑动窗口 粘包问题 异常情况处理

🎇个人主页:Ice_Sugar_7 🎇所属专栏:计网 🎇欢迎点赞收藏加关注哦! 滑动窗口&粘包问题&异常情况处理 🍉滑动窗口🍌流量控制🍌拥塞控制🍌延时应答&…

【Agent应用】营销大师 | 文案创作助手

💕营销大师 | 文案创作助手💕 🔥 解锁无限创意可能!想要轻松驾驭朋友圈、小红书、公众号?渴望一键生成PPT提纲、诗词创作、作文灵感?我们应有尽有! 🌟 功能亮点 朋友圈文案&#x1…

为什么文件占用的空间会大于文件实际大小

以windows系统举例,先看几张图: 图1:文件的大小比占用空间更小。 图2:文件的大小和占用空间大小一致。 图3:文件大小比占用空间大小更大。 上面3张图展示了文件大小与占用空间的大小几种情况,前两种场景是…

【Java】解决Java报错:MalformedURLException in URL Construction

文章目录 引言一、MalformedURLException的定义与概述1. 什么是MalformedURLException?2. MalformedURLException的常见触发场景3. 示例代码 二、解决方案1. 检查并纠正URL格式2. 使用URI类进行预处理3. 动态构建URL4. 使用第三方库进行URL验证 三、最佳实践1. 始终…

Internet地址

要求和目的 深入理解java InetAddress类的基本用法,并且可以掌握Java程序的编写和调试。 实验环境 Java语言,PC平台 实验具体内容 设计和编写以下程序: 程序1: 1)编写可以获得本机地址的Java程序,然…

k8s学习--helm的详细解释及安装和常用命令

文章目录 Helm简介什么是Helm主要组件核心概念chart结构总结 应用环境一、helm部署二、helm基础使用 Helm简介 什么是Helm Helm 是 Kubernetes 的一个包管理工具,它允许用户定义、安装和升级复杂的 Kubernetes 应用程序。Helm 通过使用 “Charts” 的概念来简化应…

在k8s上部署一个简单的应用

部署一个简单的应用 实验目标: 部署一个简单的 web 应用,比如 Nginx 或者一个自定义的 Node.js 应用。 实验步骤: 创建一个 Deployment。创建一个 Service 来暴露应用。验证应用是否可以通过 Service 访问。 今天我们来做一下昨天分享的可…

HTML静态网页成品作业(HTML+CSS)—— 零食商城网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

模型 WOOP

说明:系列文章 分享 模型,了解更多👉 模型_思维模型目录。不再拖延和懒惰,让梦想照进现实。 1 WOOP模型的应用 1.1 WOOP模型提高自己健身习惯 如果你想要养成健身的习惯,那么使用WOOP模型来提高自己健身习惯&#xf…

【菜狗学前端】uniapp(vue3|微信小程序)实现外卖点餐的左右联动功能

记录,避免之后忘记...... 一、目的:实现左右联动 右->左 滚动(上拉/下拉)右侧,左侧对应品类选中左->右 点击左侧品类,右侧显示对应品类 二、实现右->左 滚动(上拉/下拉)右…

awtk如何实现键盘和输入框

1.创建默认键盘 新建窗体-keyboard 2.新建编辑框 3.设置编辑框属性 4.点击编辑框即可打开默认键盘,若想修改键盘样式可以在默认键盘修改或自定义键盘 5.获取输入字符 widget_t* wifi_edit widget_lookup(win, "edit", TRUE);//获取单行编辑控件 widge…

HAL库开发--串口

知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 开发流程 串口功能配置 串口功能开启 串口中断配置 串口参数配置 查询配置结果 发送功能测试 中断接收功能测试 printf配置 DMA收发 配置 DMA发送 DMA接收(方式1) DMA接收(方式2) 总结 前言…

SpringBoot+Maven项目的配置构建

文章目录 1、application.properties2、pom.xml 1、application.properties 也可使用yml yaml #静态资源 spring.mvc.static-path-pattern/images/** #上传文件大小设置 spring.http.multipart.max-file-size10MB spring.http.multipart.max-request-size10MBspring.mvc.path…

ubuntu vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…

统计信号处理基础 习题解答10-15

题目 对随机变量的随机性的一个度量是它的熵(entropy),熵定义为: 如果,求这个熵,并说明它与PDF集中度的关系。观察到数据后,后验PDF的熵可以确定为: 且它应该比小。因此&#xff0c…

如何用Dokan在WooCommerce上创建多用户商城系统和多供应商市场

由于客户行为的变化以及技术的进步,在线业务如今变得越来越受欢迎。顾客现在可以在家中购物,因为这将节省大量时间并扩大他们的选择。这有助于促进所有在线商店场景的发展,包括多供应商市场。 如果您正在寻求如何在WooCommerce商城上创建多供…

基于CentOS Stream 9平台安装MySQL8.4.0 LTS

1. 安装之前 1.1 查看系统版本 [rootcoisini /]# cat /etc/redhat-release CentOS Stream release 9 1.2 查看cpu架构 [rootcoisini /]# lscpu 架构: x86_64 CPU 运行模式: 32-bit, 64-bit 2. MySQL官方下载https://dev.mysql.com/downloads/mysql/ 或…

勒索病毒剖析

2016年不自己勒索了 卖病毒 让别人勒索 傻瓜式勒索 黑客用的是非对称加密 全世界只有黑客有那把私钥 反向解密不了 传统爆破容易被检测,黑客慢速爆破,利用超级多的僵尸进行试错,慢慢试出来账号密码 因为一般运维设备在防火墙的白名单里&…

FullCalendar日历组件集成实战(14)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…