复试 || 就业day02(2024.01.02)项目一

前言

💫你好,我是辰chen,本文旨在准备考研复试或就业
💫本文内容来自某机构网课,是我为复试准备的第一个项目
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 预置知识详见我的AIoT板块,需掌握 基本Python语法, Numpy, Pandas, Matplotlib

以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:

💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解

最小二乘法的推导

在这里插入图片描述
注意这里定义的凹凸函数和考研中的凹凸函数的定义正好是相反的

使用正规方程求解 y = w x + b y=wx+b y=wx+b

import numpy as np
import matplotlib.pyplot as plt'''
生成[0, 10]的30个数,重塑为30行1列,"-1" 代表让计算机自行判断
这里的值包括 0 和 10
下述代码效果等同于:
X = np.linspace(0, 10, num = 30).reshape(30, 1)
注意生成的数是均匀分布的(生成的是等差数列)
'''
X = np.linspace(0, 10, num = 30).reshape(-1, 1)# 随机生成斜率和截距(这是真正的斜率和截距)
# 生成[1, 5)的1个数(size = 1)
w = np.random.randint(1, 5, size = 1)
b = np.random.randint(1, 10, size = 1)
'''
加一些噪声,让数据上下波动
np.random.randn(30, 1):生成一个30行1列的数组
其中的元素是从标准正态分布中随机抽取的,其值可以是整个实数域
但由于服从标准正态分布,其值通常在0附近
'''
y = X * w + b + np.random.randn(30, 1)plt.scatter(X, y)

在这里插入图片描述

'''
根据最小二乘法去估计 w 和 b
再次强调上述的 w 和 b 是真实值,现求 w 和 b 的估计值
需要给X额外去添加一列全为1的列, axis = 1 代表列拼接
'''
X = np.concatenate([X, np.full(shape = (30, 1),fill_value= 1)],axis = 1)# 正规方程求解
θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2) # 保留2位小数
print('一元一次方程真实的斜率和截距是:', w, b)
print('通过正规方程计算求解的斜率和截距是:', θ )'''
二维切片:
提取第一行:X[0, :]
提取第一列:X[:, 0]
提取最后一行:X[-1, :]
提取最后一列:X[:, -1]
提取第二行:X[1, :]
切片的语法是:array[start_row : stop_row, start_col : stop_col]
start_row 和 stop_row 分别表示行切片的起始和结束位置;
start_col 和 stop_col 分别表示列切片的起始和结束位置
'''plt.plot(X[:,0],X.dot(θ),color = 'green')'''
例子:
import numpy as nparr_2d = np.array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])# 提取第一行
row_1 = arr_2d[0, :]
print(row_1)# 提取第一列
col_1 = arr_2d[:, 0]
print(col_1)# 提取子矩阵(2x2)
sub_matrix = arr_2d[1:3, 0:2]
print(sub_matrix)
''''''
输出:
print(row_1):[0 1 2]
print(col_1):[0 3 6]
print(sub_matrix):[[3 4][6 7]]
'''

在这里插入图片描述

# 组合代码,同时打印出来两幅图
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 10, num = 30).reshape(-1, 1)
w = np.random.randint(1, 5, size = 1)
b = np.random.randint(1, 10, size = 1)
y = X * w + b + np.random.randn(30, 1)
plt.scatter(X, y)
X = np.concatenate([X, np.full(shape = (30, 1),fill_value= 1)],axis = 1)
θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2) # 保留2位小数
print('一元一次方程真实的斜率和截距是:', w, b)
print('通过正规方程计算求解的斜率和截距是:', θ )
plt.plot(X[:,0],X.dot(θ),color = 'green')

在这里插入图片描述

多元线性回归 y = w 1 x 1 + w 2 x 2 + b y=w1x1+w2x2+b y=w1x1+w2x2+b

Q:为什么仅仅距离二元线性回归?
A:可以绘出3D图,再高维不可绘图,不方便演示

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D # 绘制三维图像
# 构造 x1, x2
# 相比于 X = np.linspace(-150, 149, num = 300).reshape(-1, 1)生成的等差数列
# np.random.randint(-150, 150, size = (300, 1)) 完全随机
x1 = np.random.randint(-150, 150, size = (300, 1))
x2 = np.random.randint(0, 300, size = (300, 1))
# 随机生成 w, b
w = np.random.randint(1, 5, size = 2) # 生成 w1 和 w2,注意生成的是一维数组
b = np.random.randint(1, 10, size = 1)
# 根据二元一次方程计算目标值 y,并且加上噪声,让数据有上下波动
y = x1 * w[0] + x2 * w[1] + b + np.random.randn(300, 1)
fig = plt.figure(figsize = (9, 6)) # 图像的宽度为9,高度为6
ax = Axes3D(fig)      # 创建一个三维坐标轴
ax.scatter(x1, x2, y) # 三维散点图, x1, x2, y 是三个维度:x轴, y轴, z轴
ax.view_init(elev = 10, azim = -20) # 调整视角,仰角10°,视角-20°
# 重新构造 X 
X = np.concatenate([x1, x2, np.full(shape = (300, 1), fill_value = 1)], axis = 1)
w = np.concatenate([w, b])   # 注意这里生成的仍然是一个一维数组(包含3个元素)
θ = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y).round(2)
print('二元一次方程真实的斜率和截距是:', w)
# θ是一个包含3个元素的列向量,通过 reshape 操作将之变成一个三个元素的数组
print('通过正规方程求解的斜率和截距是:', θ.reshape(-1))
# 根据求解进行绘图
'''
注意这里使用的是重新生成的x和y,并非之前用来训练数据的x1和x2
我们当然也可以使用之前训练的x1和x2,但是之前的数据是随意生成的,并非等分
使用x1和x2进行绘图的化会比较丑hhhh,所以新生成一组等分的x和y进行最终的绘图
'''
x = np.linspace(-150, 150, 100)
y = np.linspace(0, 300, 100)
z = x * θ[0] + y * θ[1] + θ[2]
ax.plot(x, y, z, color = 'red')

在这里插入图片描述

总结

关于二维切片:
在这里插入图片描述

上图中的代码:
例一:

import numpy as np# 创建一个二维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 二维切片,提取第一行和第二行,第一列和第二列
slice_2d = arr[:2, :2]print("原始数组:")
print(arr)
print("\n二维切片后的子数组:")
print(slice_2d)

输出:

原始数组:
[[1 2 3][4 5 6][7 8 9]]二维切片后的子数组:
[[1 2][4 5]]

例二:

import numpy as np# 创建一个二维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 切片第一行和第一列
slice_first_row_col = arr[:1, :1]print("原始数组:")
print(arr)
print("\n切片后的子数组:")
print(slice_first_row_col)

输出:

原始数组:
[[1 2 3][4 5 6][7 8 9]]切片后的子数组:
[[1]]

例三:

import numpy as np# 创建一个二维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 切片第二行和第二列
slice_second_row_col = arr[1:2, 1:2]print("原始数组:")
print(arr)
print("\n切片后的子数组:")
print(slice_second_row_col)

输出:

原始数组:
[[1 2 3][4 5 6][7 8 9]]切片后的子数组:
[[5]]

例四:

import numpy as np# 创建一个二维数组
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 切片最后一行和最后一列
slice_last_row_col = arr[-1:, -1:]print("原始数组:")
print(arr)
print("\n切片后的子数组:")
print(slice_last_row_col)

输出:

原始数组:
[[1 2 3][4 5 6][7 8 9]]切片后的子数组:
[[9]]

完整截图:
在这里插入图片描述

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

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

相关文章

Debezium发布历史43

原文地址: https://debezium.io/blog/2018/12/05/automating-cache-invalidation-with-change-data-capture/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 通过更改数据捕获自动使缓存失效 2018 年…

文本表示模型简介

文本是一类非常重要的非结构化数据,如何表示文本数据一直是机器学习领域的一个重要研究方向。那么有哪些文本表示模型?以及它们各有什么优缺点? 1. 常见的文本表示模型 1.1. 词袋模型和N-gram模型 最基础的文本表示模型是词袋模型。顾名思…

QML —— RadioButton的两个经典示例(附完整源码)

示例1-效果 示例2-效果 实例1 - 源码 import QtQuick 2.12 import QtQuick.Window 2.12import QtQuick.Layouts 1.12 import QtQuick.Controls 2.5Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Text{id: classNametext: qsTr("--&quo…

2024年美赛数学建模ABCDEF题思路选题分析

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间:北京时间2024年2月2日(周五&#xff…

Redis(二)数据类型

文章目录 官网备注十大数据类型StringListHashSetZSetBitmapHyperLogLog:GEOStreamBitfield 官网 英文:https://redis.io/commands/ 中文:http://www.redis.cn/commands.html 备注 命令不区分大小写,key区分大小写帮助命令help…

关于时间格式yyyy-M-d或yyyy-MM-d到yyyy-MM-dd的转换

工作时遇到前端传的时间格式是"2023-12-3 17:41:52",和"2023-1-1 17:41:52"但是我想要的是"2023-12-03 17:41:52"和"2023-01-01 17:41:52"。下面给大家分享几个解决方法 方法一: 找前端!让他改&…

CSS属性的计算过程和层叠规则总结

✨ 专栏介绍 HTML/CSS专栏合集是一个涵盖HTML和CSS两个方面的栏目。HTML是一种标记语言,用于创建网页的结构和内容,而CSS是一种样式表语言,用于控制网页的外观和布局。 在HTML/CSS专栏合集中,我们将深入探讨HTML和CSS的基础知识…

汽车架构解析:python cantools库快速解析arxml

文章目录 前言一、安装cantools二、官方说明文档三、cantools方法1、解析message的属性2、解析pdu中的signals3、根据message查找signals4、报文组成bytes 总结 前言 曾经有拿cantools来解析过dbc,用得比较浅,不知道可以用来解析arxml。最近有个需求需要…

【纯java代码实现字符串运算符或公式计算,支持函数,不借助第三方依赖、工具】

纯java代码实现字符串运算符或公式计算,支持函数,不借助第三方依赖和工具 效果图代码 效果图 代码 import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import…

在 Oracle 数据库表中加载多个数据文件

在本文中,我将展示 SQL 加载器 Unix 脚本实用程序的强大功能,其中 SQL 加载器可以使用自动 shell 脚本加载多个数据文件。这在处理大量数据以及需要将数据从一个系统移动到另一个系统时非常有用。 它适合涉及大量历史数据的迁移项目。那么就不可能为每…

Elasticsearch:带有自查询检索器的聊天机器人示例

本工作簿演示了 Elasticsearch 的自查询检索器 (self-query retriever) 将问题转换为结构化查询并将结构化查询应用于 Elasticsearch 索引的示例。 在开始之前,我们首先使用 langchain 将文档分割成块,然后使用 ElasticsearchStore.from_documents 创建…

企业微信开发:自建应用:接收消息(企业内部服务器)/回调配置

概述 在企业微信的自建应用中,用户触发了某些行为(发送消息、进行菜单操作或者外部联系人变更等),要发送相关信息给企业内部服务器。 备注:接收消息 和 回调,在本文中指代相同的行为,即企业微信…

Jenkins部署项目

一.安装jenkins 1.1进入jenkins官网下载jenkins war包,上传到服务器/usr/local目录。 1.2执行启动jenkins命令,(注意jenkins版本需要的jdk版本) /usr/local/java11/bin/java -Djava.awt.headlesstrue -jar /usr/local/jenkins.wa…

使用sdf文件+urdf文件模拟机器人示例(不用把urdf转sdf)

gazebo版本&#xff1a;harmonic&#xff1b; <launch> <group> <let name"robot_description" value"$(command xacro $(find-pkg-share gazebo_pkg)/urdf/total.xacro)"/> <node pkg"rviz2" exec"rviz2" name…

[讲座] - 闲聊工业设计

1&#xff0c;工业设计相关的学科分类 2&#xff0c;工业设计的职业发展路线 3&#xff0c;工业设计师的成名人物 4&#xff0c;设计了可口可乐的Loewy 可口可乐的瓶子&#xff0c;无论白天晚上还是瓶子被打碎&#xff0c;都能认出这个是可口可乐的瓶子。 草图参照了可可豆&am…

深度生成模型之GAN优化目标设计与改进 ->(个人学习记录笔记)

文章目录 深度生成模型之GAN优化目标设计与改进原始GAN优化目标的问题1. JS散度度量问题2. 梯度问题 优化目标的设计与改进1. 最小二乘损失GAN2. Energy-based GAN(EBGAN)3. Wasserstein GAN4. WGAN-GP5. Boundary Equilibrium GAN(BEGAN)6. Loss Sensitive GAN7. Relativeisti…

Cuk、Zeta和Sepic开关电源拓扑结构

Cuk、Zeta和Sepic变换器,三种拓扑结构大致类似。不同点在于电感和二极管&#xff0c;MOS管的位置关系的变化。 Cuk电源是一种非隔离的直流电源转换器&#xff0c;其基本结构包括输入滤波电容、开关管、输入电感、输出电感和输出电容等元件。Cuk电路可以看作是Boost和Buck电路的…

基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 双闭环PI控制器设计 4.2 SVPWM技术 4.3 控制系统实现 5.完整工程文件 1.课题概述 基于双闭环PI和SVPWM的PMSM控制器simulink建模与仿真。系统包括逆变桥、PMSM、park变换、clark变换、SVPWM、PI控…

解决电脑访问共享文件问题:“无法访问。你可能没有权限使用网络资源。请与这台服务器的......”

文章目录 1. 问题2. 解决方法 1. 问题 2. 解决方法 Win R 键入 gpedit.msc在弹出的窗口,展开左侧目录树至安全选项,如图。( 计算机配置-Windows设置:安全设置-本地策略-安全选项)

2023我的编程之路

你的编程学习经历和成长过程&#xff1a; 在我探索编程世界的旅程中&#xff0c;我深刻地认识到&#xff0c;编程不仅仅是一种技术&#xff0c; 是一种思维方式&#xff0c; 一种解决问题的方法。希望通过分享我的编程学习体验&#xff0c;能够启发更多的人看到编程的魅力和价值…