ai-2、机器学习之线性回归
机器学习之线性回归
- 1、机器学习
- 2、线性回归
- 2.1、梯度下降法
- 3、python下调用scikit-learn
1、机器学习









2、线性回归









####所以y可以当成我们需要的结果,根据公式可以求的y一撇的值更小,所以更接近需要的结果,所以y一撇拟合性更好
2.1、梯度下降法


已知:
J = f ( ( (p ) ) ) = 3.5p 2 ^2 2-14p+14
p i _i i = 0.5 , α \alpha α = 0.01
p i + 1 _{i+1} i+1= ??
∵ \because ∵ 一元二次函数 f ( ( (p ) ) ) = ap 2 ^2 2-bp+c的幂函数求导公式
f ( ( (x ) ) ) = x a ^a a -> f ′ f\prime f′( x x x) = ax a − 1 ^{a-1} a−1
∵ \because ∵
3.5p 2 ^2 2其导数为2*3.5p ( 2 − 1 ) ^{(2-1)} (2−1) = 7p
-14p其导数为-14*p ( 1 − 1 ) ^{(1-1)} (1−1)=-14
14为常数项导数为0
∵ \because ∵ 3.5p 2 ^2 2-14p+14的导数是7p-14
∴ \therefore ∴ α \alpha α δ δ p i \frac{\delta}{\delta p_i} δpiδf ( ( (p i _{i} i ) ) ) = 7p-14
∵ \because ∵ p i _i i = 0.5
∴ \therefore ∴ 代入 α \alpha α δ δ p i \frac{\delta}{\delta p_i} δpiδf ( ( (p i _{i} i ) ) )=7*0.5-14=-10.5
∴ \therefore ∴ 损失函数J = 0.5-0.01*(-10.5) = 0.605
∴ \therefore ∴ 损失函数梯度值为0.605



3、python下调用scikit-learn

https://scikit-learn.org/stable/

可以用简短的代码求解模型



import numpy as np
from sklearn.linear_model import LinearRegression
# 获取数据
x = [1,2,3,4,5,6,7,8,9,10]
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
X = x.reshape(-1, 1)
y = np.array([7,9,11,13,15,17,19,21,23,25])
# 寻找a、b(y = ax + b)
lr_model = LinearRegression()
lr_model.fit(X,y)# 展示a、b
a = lr_model.coef_
b = lr_model.intercept_#打印系数a和截距b
print("系数a",a)
print("截距b",b)#对新数据进行预测
x_new = np.array([11,12])
X_new = x_new.reshape(-1, 1)
predictions = lr_model.predict(X_new)#打印预测数据
print("预测数据是:",predictions)




import numpy as np
from sklearn.linear_model import LinearRegression
# 获取数据
x = [1,2,3,4,5,6,7,8,9,10]
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
X = x.reshape(-1, 1)
y = np.array([7,9,11,13,15,17,19,21,23,25])
# 寻找a、b(y = ax + b)
lr_model = LinearRegression()
lr_model.fit(X,y)# 展示a、b
a = lr_model.coef_
b = lr_model.intercept_#打印系数a和截距b
print("系数a",a)
print("截距b",b)#对新数据进行预测
x_new = np.array([0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,11])
X_new = x_new.reshape(-1, 1)
predictions = lr_model.predict(X_new)#打印预测数据
print("预测数据是:",predictions)from sklearn.metrics import mean_squared_error,r2_score
MSE = mean_squared_error(y,predictions)
R2 = r2_score(y,predictions)#打印均方差,r方值
print("MSE:",MSE)
print("R2:",R2)#画图对比y/ 和y可视化模型表现
from matplotlib import pyplot as plt
plt.scatter(y,predictions)

matplotlib绘制散点图

#绘制散点图import matplotlib.pyplot as plt# 生成示例数据
np.random.seed(42)
x_values = np.random.rand(100)
y_values = x_values + np.random.randn(100) * 0.1 # 绘制散点图
plt.scatter(x_values, y_values, color='blue', marker='o') # color参数定义点的颜色,marker定义点的形状# 设置matplotlib的字体为微软雅黑,确保你的系统中已安装此字体,避免中文乱码问题
plt.rcParams['font.family'] = 'Microsoft YaHei'
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 用于正常显示中文标签
# 解决保存图像时负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False# 添加标题和标签
plt.title('散点图') # 添加标题
plt.xlabel('X轴') # X轴标签
plt.ylabel('Y轴') # Y轴标签# 显示图表
plt.show()
多张散点图展示
#散点图多张图同时展示import matplotlib.pyplot as plt# 生成示例数据
np.random.seed(42)
x_values = np.random.rand(100)
y_values = x_values + np.random.randn(100) * 0.1# 如果需要四张图则创建一个2x2的子图布局
for i in range(1, 5): # 因为是从1开始计数,所以要到5(包括)plt.subplot(2, 2, i) # 2行2列的布局,当前是第i个子图plt.scatter(x_values, y_values, color='blue', marker='p')

相关文章:
ai-2、机器学习之线性回归
机器学习之线性回归 1、机器学习2、线性回归2.1、梯度下降法 3、python下调用scikit-learn 1、机器学习 2、线性回归 ####所以y可以当成我们需要的结果,根据公式可以求的y一撇的值更小,所以更接近需要的结果,所以y一撇拟合性更好 2.1、梯度下…...
机器视觉线阵相机分时频闪选型/机器视觉线阵相机分时频闪选型
在机器视觉系统中,线阵相机的分时频闪技术通过单次扫描切换不同光源或亮度,实现在一幅图像中捕捉多角度光照效果,从而提升缺陷检测效率并降低成本。以下是分时频闪线阵相机的选型要点及关键考量因素: 一、分时频闪技术的核心需求 多光源同步控制 分时频闪需相机支持多路光源…...
NO.21十六届蓝桥杯备战|一维数组|范围for|memset|memcpy(C++)
数组是⼀组相同类型元素的集合 数组中存放的是1个或者多个数据,但是数组元素个数不能为0数组中存放的多个数据,类型是相同的 数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组 一维数组 ⼀维数组是最常⻅的,通常⽤…...
开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-Docker助力-模型部署 “光速” 指南
一、前言 在人工智能的浪潮里,大语言模型不断迭代更新,DeepSeek-R1-Distill-Qwen-7B 模型凭借出色的表现,吸引着无数开发者的目光。然而,想要将这个强大的模型顺利部署并投入使用,过程却并不轻松。传统的部署方式仿佛布满荆棘,从底层环境搭建到各种依赖项的适配,每一步都…...
unity TextMeshPro动态字体使用
TextMeshPro 显示文本的时候,依赖与文本贴图,这个贴图可以是静态的,也可以根据显示需求动态生成,动态的资源对内存消耗会高一些,所以我们一般将常用的3500汉字创建一个静态的字体库,然后在创建一个动态字体…...
C#使用技巧
文章目录 判断7天以内判断7天以内 Date date = new Date(); //获取当前时间Date s00 = (Date) pageData.get(...
爱普生可编程晶振 SG-8101CE 在智能家居领域展现出的优势
在智能家居的全场景应用中,设备间的协同效率、数据传输的稳定性以及系统运行的可靠性,成为衡量用户体验的核心标准。爱普生 SG-8101CE 可编程晶振以其卓越的性能,为智能门锁、传感器、中控系统等设备提供核心动力,助力厂商打造更可…...
第6篇:面向对象编程重构系统
一、OOP重构目标 数据封装:隐藏实现细节接口抽象:规范操作入口资源自治:实现自管理生命周期扩展基础:预留多态支持接口二、完全面向对象实现(完整代码) #include <iostream> #include <Windows.h> #include <li...
杰发科技AC7801——滴答定时器获取时间戳
1. 滴答定时器 杰发科技7801内部有一个滴答定时器,该定时器是M0核自带的,因此可以直接用该定时器来获取时间戳。 同样,7803也可以使用该方式获取时间戳。 2. 滴答定时器原理 SysTick是一个24位的递减计数器,它从预设的重装载值…...
2021-05-27 C++找出矩阵数组中值最大的元素和它在数组中的位置
缘由各位大佬,这个应该怎么做_编程语言-CSDN问答 void 找出数组中值最大的元素和它在数组中的位置() {//缘由https://ask.csdn.net/questions/7436585?spm1005.2025.3001.5141int a[4][4], aa 0, aaa 0, d 0, x 0;while (aa < 4 && aaa < 4)std…...
k8s集群3主5从高可用架构(kubeadm方式安装k8s)
关键步骤说明 环境准备阶段 系统更新:所有节点执行yum/apt update确保软件包最新时间同步:通过ntpdate time.windows.com或部署NTP服务器网络规划:明确划分Service网段(默认10.96.0.0/12)和Pod网段(如Flann…...
上位机知识篇---HTTPHTTPS等各种通信协议
文章目录 前言1. HTTP(HyperText Transfer Protocol)功能传输超文本无状态协议支持多种方法 特点明文传输基于TCP简单灵活 使用场景示例请求响应 2. HTTPS(HTTP Secure)功能加密传输身份验证特点基于SSL/TLS默认端口需要证书 使用…...
Android实现漂亮的波纹动画
Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果(波纹大小变化、画笔透明度变化、画笔粗细变化) 一、UI界面 界面主要分为三部分 第一部分:输入框,根据输入x轴、Y轴、Z轴倾…...
大白话React Hooks(如 useState、useEffect)的使用方法与原理
啥是 React Hooks 在 React 里,以前我们写组件主要用类(class)的方式,写起来有点复杂,尤其是处理状态和副作用的时候。React Hooks 就是 React 16.8 之后推出的新特性,它能让我们不用写类,直接…...
【无标题】ABP更换MySql数据库
原因:ABP默认使用的数据库是sqlServer,本地没有安装sqlServer,安装的是mysql,需要更换数据库 ABP版本:9.0 此处以官网TodoApp项目为例 打开EntityFrameworkCore程序集,可以看到默认使用的是sqlServer&…...
掌握Git:从入门到精通的完整指南
Git是什么? Git是一个分布式版本控制系统,最初由Linus Torvalds在2005年为管理Linux内核开发而创建 它的主要功能是跟踪文件的更改,协调多个开发者之间的工作,并帮助团队高效地管理项目代码。Git不仅适用于大型开源项目…...
Windows上使用go-ios实现iOS17自动化
前言 在Windows上运行iOS的自动化,tidevice对于iOS17以上并不支持,原因是iOS 17 引入新通信协议 RemoteXPCQUIC,改变了 XCUITest 的启动方式。 一、go-ios的安装 1、安装命令:npm i go-ios 2、安装完成后输入命令which io…...
服务器硬防的优势有哪些?
服务器硬防也可以称为硬件防火墙,是一种专门用来保护网络不会受到未经授权访问所设计的设备,硬件防火墙是一个独立的设备,同时也是集成在路由器或者是其它网络设备中的一部分,下面,小编就来为大家介绍一下服务器硬防的…...
Grok3使用体验与模型版本对比分析
文章目录 Grok的功能DeepSearch思考功能绘画功能Grok 3的独特功能 Grok 3的版本和特点与其他AI模型的比较 最新新闻:Grok3被誉为“地球上最聪明的AI” 最近,xAI公司正式发布了Grok3,并宣称其在多项基准测试中展现了惊艳的表现。据官方消息&am…...
JavaScript——前端基础3
目录 JavaScript简介 优点 可做的事情 运行 第一个JavaScript程序 搭建开发环境 安装的软件 操作 在浏览器中使用JavaScript文件 分离JS 使用node运行JS文件 语法 变量与常量 原生数据类型 模板字符串 字符串的内置方法 数组 对象 对象数组和JSON if条件语…...
零基础学习机器学习分类模型
下面将带你通过一个简单的机器学习项目,使用Python实现一个常见的分类问题。我们将使用著名的Iris数据集,来构建一个机器学习模型,进行花卉品种的分类。整个过程会包含: 原理介绍:机器学习的基本概念。数据加载和预处…...
Spring 源码硬核解析系列专题(十):Spring Data JPA 的 ORM 源码解析
在前几期中,我们从 Spring 核心到 Spring Boot、Spring Cloud、Spring Security 和 Spring Batch,逐步揭示了 Spring 生态的多样性。在企业级开发中,数据访问是不可或缺的部分,而 Spring Data JPA 通过简化 JPA(Java Persistence API)操作,成为主流的 ORM 框架。本篇将深…...
视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…...
Oracle23版本 创建用户 报 00959和65096错误解决办法
00959错误解决办法,用户名必须已 c##或者C##开头 65096错误解决办法,创建用户名时去掉DEFAULT TABLESPACE smallrainTablespace这个属性 附上oracle 23版本创建表空间和用户语句; sqlplus sys as sysdba CREATE TABLESPACE smallrainOrac…...
Vue3 中 defineOptions 学习指南
在 Vue 3.3 及之后的版本中,defineOptions 是一个重要的宏(macro),主要用于在 <script setup> 语法糖中声明组件的选项(Options),解决了传统 <script setup> 无法直接定义组件选项的…...
简单说一下什么是RPC
部分内容来源:JavaGuide RPC是什么 RPC是远程调用 RPC的原理 RPC的五个部分 为了能够帮助小伙伴们理解 RPC 原理,我们可以将整个 RPC 的核心功能看作是下面 5 个部分实现的: 客户端(服务消费端):调用…...
Pany-v2:LFI漏洞探测与敏感文件(私钥窃取/其他)自动探测工具
地址:https://github.com/MartinxMax/pany 关于Pany-v2 Pany-v2 是一款 LFI(本地文件包含)漏洞探测工具,具备自动识别敏感文件的能力。它能够利用 LFI 漏洞检测并提取 id_rsa 私钥、系统密码文件以及其他可能导致安全风险的敏感信息。该工具…...
北京大学DeepSeek与AIGC应用(PDF无套路下载)
近年来,人工智能技术飞速发展,尤其是大模型和生成式AI(AIGC)的突破,正在重塑各行各业的生产方式与创新路径。 北京大学联合DeepSeek团队推出的内部研讨教程《DeepSeek与AIGC应用》,以通俗易懂的方式系统解…...
AWS SDK for Java 1.x 403问题解决方法和原因
问题表现 使用AWS SDK for Java 1.x访问S3,已经确认文件存在,且具有权限,仍然出现403 Forbidden应答。 解决方法 升级到AWS SDK for Java 2.x。 问题原因 AWS签名机制严格依赖请求的精确路径格式,任何URI的差异(如…...
Vue进阶之Vue2源码解析
Vue2源码解析 源码解析目录解析package.json入口查找入口文件确定vue入口this.\_init_ 方法$mount 挂载方法Vue.prototype._renderVue.prototype._updateVue.prototype._patch vue2 vue3 源码解析 目录解析 vue2.6之后的版本都做的是兼容Vue3的内容,2.6版本前的内…...
