[机器学习]简单线性回归——最小二乘法

一.线性回归及最小二乘法概念 

2.代码实现 

# 0.引入依赖
import numpy as np
import matplotlib.pyplot as plt# 1.导入数据
points = np.genfromtxt('data.csv', delimiter=',')
# points[0,0]# 提取points中的两列数据,分别作为x,y
x = points[:, 0]
y = points[:, 1]# 用plt画出散点图
# plt.scatter(x, y)
# plt.show()# 2.定义损失函数:最小平方损失函数
# 损失函数是系数的函数,另外还要传入数据的x,y
def compute_cost(w, b, points):total_cost = 0M = len(points)# 逐点计算平方损失误差,然后求平均数for i in range(M):x = points[i, 0]y = points[i, 1]total_cost += (y - w * x - b) ** 2return total_cost / M# 3.定义算法拟合函数
# 先定义一个求均值的函数
def average(data):sum = 0num = len(data)for i in range(num):sum += data[i]return sum / num# 定义核心拟合函数
def fit(points):M = len(points)x_bar = average(points[:, 0])sum_yx = 0sum_x2 = 0sum_delta = 0for i in range(M):x = points[i, 0]y = points[i, 1]sum_yx += y * (x - x_bar)sum_x2 += x ** 2# 根据公式计算ww = sum_yx / (sum_x2 - M * (x_bar ** 2))for i in range(M):x = points[i, 0]y = points[i, 1]sum_delta += (y - w * x)b = sum_delta / Mreturn w, b# 4.测试
w, b = fit(points)
print("w is: ", w)
print("b is: ", b)
cost = compute_cost(w, b, points)
print("cost is: ", cost)# 5.画出拟合曲线
plt.scatter(x, y)
# 针对每一个x,计算出预测的y值
pred_y = w * x + b
plt.plot(x, pred_y, c='r')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression # sklearn库实现# 1. 导入数据(data.csv)
points = np.genfromtxt('data.csv', delimiter=',')
points[0,0]# 提取points中的两列数据,分别作为x,y
x = points[:, 0]
y = points[:, 1]# 用plt画出散点图
# plt.scatter(x, y)
# plt.show()# 2. 定义损失函数:最小平方损失函数
# 损失函数是系数的函数,另外还要传入数据的x,y
def compute_cost(w, b, points):total_cost = 0M = len(points)# 逐点计算平方损失误差,然后求平均数for i in range(M):x = points[i, 0]y = points[i, 1]total_cost += (y - w * x - b) ** 2return total_cost / Mlr = LinearRegression()
x_new = x.reshape(-1, 1) # 将1行数据变为二维数组
y_new = y.reshape(-1, 1)
lr.fit(x_new, y_new)# 3. 从训练好的模型中提取系数和截距:使用的也是最小二乘法
w = lr.coef_[0][0]
b = lr.intercept_[0]print("w is: ", w)
print("b is: ", b)cost = compute_cost(w, b, points)print("cost is: ", cost)plt.scatter(x, y)
# 针对每一个x,计算出预测的y值
pred_y = w * x + bplt.plot(x, pred_y, c='r')
plt.show()

w is:  1.3224310227553846
b is:  7.991020982269173
cost is:  110.25738346621313

3.代码及数据下载

 简单线性回归-最小二乘法资源-CSDN文库

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

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

相关文章

Netty源码三:NioEventLoop创建与run方法

1.入口 会调用到父类SingleThreadEventLoop的构造方法 2.SingleThreadEventLoop 继续调用父类SingleThreadEventExecutor的构造方法 3.SingleThreadEventExecutor 到这里完整的总结一下: 将线程执行器保存到每一个SingleThreadEventExcutor里面去创建了MpscQu…

ROS2 学习笔记12:使用 colcon 构建软件包

ROS2 学习笔记12:使用 colcon 构建软件包 Background 背景Prerequisites 前提1 Install colcon2 Install ROS 2 Basics 基础1 Create a workspace2 Add some sources3 Source an underlay4 Build the workspace5 Run tests6 Source the environment7 Try a demo Cre…

安卓滚动视图ScrollView

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:orientatio…

docker镜像命令

docker images 列表本机上的镜像 - REPOSITORY&#xff1a;表示镜像的仓库源 - TAG&#xff1a;镜像的标签 - IMAGE ID&#xff1a;镜像 - ID CREATED&#xff1a;镜像创建时间 - SIZE&#xff1a;镜像大小 同一仓库源可以有多个 TAG&#xff0c;代表这个仓库源的不同个版本&am…

大洋钻探系列之七中国大洋钻探船梦想号

中国大洋钻探梦想号2021年11月30日开工建造&#xff0c;2023年12月27日在珠江口海域完成首航&#xff0c;预计2024年正式交付使用&#xff0c;从而实现了2011年中国IODP专家咨询委员会提出的我国大洋钻探发展“三步走”战略的第三步建造中国的大洋钻探船。 恰逢IODP新旧计划交替…

vue3 + vite:打包部署后,动态组件渲染404问题解决

问题描述: 当需要渲染动态组件,动态的组件路径配置在数据库中时,如下图,本地运行能正常访问,用vite打包部署后,生产上改路径为404. 起初认为是,vite打包后的文件都是.js, 当页面加载后从数据库拿来的路径是.vue, 并且是src/xxx/xxx.vue 这种绝对路径形式的,所以就找不…

unity打开外部exe,并将其置顶

直接上代码&#xff1a; 调用代码 ProcessStartInfo startinfo1 new ProcessStartInfo(); startinfo1.FileName "E:\\fastdds\\run\\" PlanType ".exe"; startinfo1.Arguments winInfo; pss Process.Start(startinfo1);//做延时的原因是window打开…

【每日一题】 2024年1月汇编

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1.4】2397.被列覆盖的最多行数 2397. 被列覆盖的最多行数https://leetcode.cn/problems/maximum-rows-covered-by-columns/ 这…

哪个牌子的头戴式耳机好?推荐性价比高的头戴式耳机品牌

随着科技的不断发展&#xff0c;耳机市场也呈现出百花齐放的态势&#xff0c;从高端的奢侈品牌到亲民的平价品牌&#xff0c;各种款式、功能的耳机层出不穷&#xff0c;而头戴式耳机作为其中的一员&#xff0c;凭借其优秀的音质和降噪功能&#xff0c;受到了广大用户的喜爱&…

GO EASY 框架 之 Server 06

目录 1、Overview 2、监听服务接口 3、easy/servers package 3.1、基础类Server 3.2、WWServer 服务 3.3、TcpServer 3.4、KCPServer 4、hookAgent链接钩子 5、创建一个WebScoket监听服务 1、Overview 本节主要介绍&#xff0c;easy的监听服务。例如websocket 监听&a…

Apache Commons

介绍 官网&#xff1a;https://commons.apache.org/ Apache Commons 是一个开源的 Java 项目&#xff0c;旨在提供一组通用的、可复用的 Java 组件。这些组件涵盖了多个领域&#xff0c;包括字符串操作、输入输出、集合操作、数学计算、命令行解析等。 版本 commons-lang 和 …

【面试】MySQL的几种查询方式

书读百遍&#xff0c;其意自现 文章目录 基本查询条件查询排序查询聚合查询分组查询连接查询子查询联合查询 基本查询 最简单的查询形式&#xff0c;用于选择表中的所有行或指定列的数据。例如&#xff1a; SELECT * FROM TableName; -- 选择表中所有列的所有行 SELECT Colu…

蓝桥杯算法赛第4场小白入门赛强者挑战赛

蓝桥杯算法赛第4场小白入门赛&强者挑战赛 小白1小白2小白3强者1小白4强者2小白5强者3小白6强者4强者5强者6 链接&#xff1a; 第 4 场 小白入门赛 第 4 场 强者挑战赛 小白1 直接用C内置函数即可。 #include <bits/stdc.h> using namespace std;#include <bits…

ArrayList在添加元素时报错java.lang.ArrayIndexOutOfBoundException

一、添加单个元素数组越界分析 add源码如下 public boolean add(E e) {ensureCapacityInternal(size 1); // Increments modCount!!elementData[size] e;return true; } size字段的定义 The size of the ArrayList (the number of elements it contains). ArrayList的大…

雷达DoA估计的跨行业应用--麦克风阵列声源定位(Matlab仿真)

一、概述 麦克风阵列&#xff1a; 麦克风阵列是由一定数目的声学传感器&#xff08;麦克风&#xff09;按照一定规则排列的多麦克风系统&#xff0c;而基于麦克风阵列的声源定位是指用麦克风拾取声音信号&#xff0c;通过对麦克风阵列的各路输出信号进行分析和处理&#xff0c;…

力扣hot100 跳跃游戏 贪心

Problem: 55. 跳跃游戏 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 挨着跳&#xff0c;记录最远能到达的地方 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public boolean canJump(int[] nums)…

7 STL

1、STL简介 1.1基本概念 可复用利用的东西&#xff01; 面向对象和泛型编程&#xff08;模板&#xff09;的 目的->提升复用性 为了建立数据结构和算法的一套标准->STL横空出世 STL(Standard Template Liberary)标准模板库广义分&#xff1a;容器、算法、迭代器容器…

lwIP 初探(第一节)

一、TCP/IP 协议栈架构 网络协议有很多&#xff0c;如 MQTT、TCP、UDP、IP 等协议&#xff0c;这些协议组成了 TCP/IP 协议栈&#xff0c; 同时&#xff0c;这些协议具有层次性&#xff0c;它们分布在应用层&#xff0c;传输层和网络层。TCP/IP 协议栈的分层结 构和网络协议得…

百无聊赖之JavaEE从入门到放弃(十五)包装类

目录 一.包装类概念 二.自动装箱和拆箱 三.包装类的缓存问题 一.包装类概念 基本数据类型的包装类 我们前面学习的八种基本数据类型并不是对象&#xff0c;为了将基本类型数据和对象之间实现互 相转化&#xff0c;Java 为每一个基本数据类型提供了相应的包装类。 Java 是…

获取Webshell的一些思路

1️⃣CMS获取webshell方法&#xff1a; 1、什么是CMS? CMS系统指的是内容管理系统。已经有别人开发好了整个网站的前后端&#xff0c;使用者只需要部署cms&#xff0c;然后通过后台添加数据&#xff0c;修改图片等工作&#xff0c;就能搭建好一个的WEB系统。 2、如何查看CM…