当前位置: 首页 > article >正文

通往 AI 之路:Python 机器学习入门-线性代数

2.1 线性代数(机器学习的核心)

线性代数是机器学习的基础之一,许多核心算法都依赖矩阵运算。本章将介绍线性代数中的基本概念,包括标量、向量、矩阵、矩阵运算、特征值与特征向量,以及奇异值分解(SVD)。


2.1.1 标量、向量、矩阵

1. 标量(Scalar)

标量是一个单独的数,例如:

a = 5

在 Python 中:

a = 5  # 标量

2. 向量(Vector)

向量是由多个数值组成的一维数组,例如:

v = [2, 3, 5]

Python 实现:

import numpy as np
v = np.array([2, 3, 5])  # 一维数组表示向量
print(v)

3. 矩阵(Matrix)

矩阵是一个二维数组,例如:

A = [[1, 2],[3, 4]]

Python 实现:

A = np.array([[1, 2], [3, 4]])  # 二维数组表示矩阵
print(A)

2.1.2 矩阵运算

1. 矩阵加法

两个相同形状的矩阵可以相加:

A + B = [[1, 2],    +   [[5, 6],    =   [[6,  8],[3, 4]]         [7, 8]]         [10, 12]]

Python 计算:

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A + B
print(C)

2. 矩阵乘法

  • 逐元素相乘(Hadamard 乘积)
A ⊙ B = [[1×5,  2×6],[3×7,  4×8]]= [[5, 12],[21, 32]]

Python 实现:

C = A * B  # 逐元素相乘
print(C)
  • 矩阵乘法(点积)
A × B = [[1×5 + 2×7,  1×6 + 2×8],[3×5 + 4×7,  3×6 + 4×8]]= [[19, 22],[43, 50]]

Python 实现:

C = np.dot(A, B)  # 矩阵乘法
print(C)

3. 矩阵转置

矩阵转置是将行变成列:

A^T = [[1, 3],[2, 4]]

Python 计算:

A_T = A.T  # 计算转置
print(A_T)

4. 逆矩阵

如果矩阵 A 是可逆的(即 det(A) ≠ 0),那么存在一个矩阵 A^(-1) 使得:

A × A^(-1) = I  (单位矩阵)

Python 计算:

A_inv = np.linalg.inv(A)  # 计算逆矩阵
print(A_inv)

2.1.3 特征值与特征向量

特征值(Eigenvalue)和特征向量(Eigenvector)在机器学习中用于主成分分析(PCA)等算法。

1. 定义

对于矩阵 A,如果存在一个向量 v 和一个数 λ 使得:

A × v = λ × v

那么 vA 的特征向量,λ 是对应的特征值。

2. Python 计算特征值和特征向量

eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:", eigenvectors)

2.1.4 SVD(奇异值分解)

奇异值分解(Singular Value Decomposition, SVD)是矩阵分解的一种重要方法,它可以表示为:

A = U × Σ × V^T

其中:

  • U 是左奇异向量矩阵
  • Σ 是对角矩阵,对角线上的元素称为奇异值
  • V^T 是右奇异向量矩阵的转置

Python 计算 SVD

U, S, V_T = np.linalg.svd(A)
print("U 矩阵:", U)
print("Σ 矩阵:", S)
print("V^T 矩阵:", V_T)

SVD 在降维(如 PCA)中有重要应用,后续章节将深入介绍。


总结

本章介绍了机器学习中常用的线性代数知识,包括:

  • 标量、向量、矩阵 及其表示方式
  • 矩阵运算(加法、乘法、转置、逆矩阵)
  • 特征值与特征向量(PCA 等算法的基础)
  • SVD(奇异值分解)(在数据降维中的应用)

掌握这些内容,有助于理解机器学习的数学基础!建议多实践代码,加深理解!

相关文章:

通往 AI 之路:Python 机器学习入门-线性代数

2.1 线性代数(机器学习的核心) 线性代数是机器学习的基础之一,许多核心算法都依赖矩阵运算。本章将介绍线性代数中的基本概念,包括标量、向量、矩阵、矩阵运算、特征值与特征向量,以及奇异值分解(SVD&…...

Matlab中的均值函数mean

今天调了一个代码里的bug,根源居然是mean函数的使用细节没留意到~ 具体来说,写一个类似k均值聚类那样的程序,交替迭代,其中有一部是使用mean求一堆向量的均值,这些向量存在一个矩阵里,每行对应一个向量。若…...

数据结构知识学习小结

一、动态内存分配基本步骤 1、内存分配简单示例: 个人对于示例的理解: 定义一个整型的指针变量p(着重认为它是一个“变量”我觉得可能会更好理解),这个变量用来存地址的,而不是“值”,malloc函…...

高精算法的用法及其优势

高精度问题是指当数据的位数非常大(超出标准数据类型的范围)时,如何进行计算和存储的问题。常见场景包括大整数的加、减、乘、除、取模等操作。以下是解决高精度问题的常用方法与技巧: 一、数据存储 数组存储 用整型数组存储&am…...

【Spring AOP】_切点类的切点表达式

目录 1. 根据方法签名匹配编写切点表达式 1.1 具体语法 1.2 通配符表达规范 2. 根据注解匹配编写切点表达式 2.1 实现步骤 2.2 元注解及其常用取值含义 2.3 使用自定义注解 2.3.1 编写自定义注解MyAspect 2.3.2 编写切面类MyAspectDemo 2.3.3 编写测试类及测试方法 在…...

多线程-定时任务线程池源码

定时任务线程池 ScheduledThreadPoolExecutor,可以执行定时任务的线程池。这里学习它的基本原理。 定时任务线程池,和普通线程池不同的地方在于,它使用一个延迟队列,延迟队列使用最小堆作为它的数据结构,它会按照任务…...

初次使用 IDE 搭配 Lombok 注解的配置

前言 在 Java 开发的漫漫征程中,我们总会遇到各种提升效率的工具。Lombok 便是其中一款能让代码编写变得更加简洁高效的神奇库。它通过注解的方式,巧妙地在编译阶段为我们生成那些繁琐的样板代码,比如 getter、setter、构造函数等。然而&…...

云服数据存储接口:CloudSever

云服数据存储接口:CloudSever 迷你世界 更新时间: 2024-04-28 19:09:10 具体函数名及描述如下: 序号 函数名 函数描述 1 setOrderDataBykey(...) 设置排行榜中指定键的数值 2 removeOrderDataByKey(...) 删除排行榜中指定键的数值 …...

关于 QPalette设置按钮背景未显示出来 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/146047054 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

上传文件到对象存储是选择前端还是后端

对于云上对象存储的上传方式选择(前端直传或后端代理上传),需综合考虑安全性、性能、成本、业务需求等因素。 1. 推荐前端直传的场景 适用条件: 大文件上传(如视频、大型数据集)高并发场景(如…...

mysql下载与安装

一、mysql下载: MySQL获取: 官网:www.mysql.com 也可以从Oracle官方进入:https://www.oracle.com/ 下载地址:https://downloads.mysql.com/archives/community/ 选择对应的版本和对应的操作系统&#xff…...

Python练习(握手问题,进制转换,日期问题,位运算,求和)

一. 握手问题 代码实现 ans0for i in range(1,51):for j in range(i1,51):if i<7 and j<7:continueelse:ans 1print(ans) 这道题可以看成是50个人都握了手减去7个人没握手的次数 答案&#xff1a;1204 二.将十进制整数拆解 2.1门牌制作 代码实现 ans0for i in ra…...

小程序分类页面

1创建cate分支 2.cate滑动界面布局 获取滑动界面高度 3.获取并渲染一级分类的列表数据 4.渲染二级和三级分类列表 获取二级列表的数据 5.渲染二级分类列表的UI结构 6.动态渲染三级分类列表...

HTML + CSS 题目

1.说说你对盒子模型的理解? 一、是什么 对一个文档进行布局的时候&#xff0c;浏览器渲染引擎会根据标准之一的css基础盒模型&#xff0c;将所有元素表示为一个个矩形的盒子。 一个盒子由四个部分组成: content&#xff0c;padding&#xff0c;border&#xff0c;margin 下…...

计算机视觉|ViT详解:打破视觉与语言界限

一、ViT 的诞生背景 在计算机视觉领域的发展中&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一直占据重要地位。自 2012 年 AlexNet 在 ImageNet 大赛中取得优异成绩后&#xff0c;CNN 在图像分类任务中显示出强大能力。随后&#xff0c;VGG、ResNet 等深度网络架构不…...

Node JS 调用模型Xenova_all-MiniLM-L6-v2实战

本篇通过将句子数组转换为句子的向量表示&#xff0c;并通过平均池化和归一化处理&#xff0c;生成适合机器学习或深度学习任务使用的特征向量为例&#xff0c;演示通过NodeJS 的方式调用Xenova/all-MiniLM-L6-v2 的过程。 关于 all-MiniLM-L6-v2 的介绍&#xff0c;可以参照上…...

React + TypeScript 实战指南:用类型守护你的组件

TypeScript 为 React 开发带来了强大的类型安全保障&#xff0c;这里解析常见的一些TS写法&#xff1a; 一、组件基础类型 1. 函数组件定义 // 显式声明 Props 类型并标注返回值 interface WelcomeProps {name: string;age?: number; // 可选属性 }const Welcome: React.FC…...

ASP.NET Core JWT认证与授权

1.JWT结构 JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用之间安全传输声明的开放标准&#xff08;RFC 7519&#xff09;。它通常由三部分组成&#xff0c;以紧凑的字符串形式表示&#xff0c;在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...

【车规芯片】如何引导时钟树生长方向

12nm车规DFTAPR项目中&#xff0c;我们可以看到&#xff0c;绝大部分的sink都受控于xxxx_tessent_occ_clk_cpu_inst/tessent_persistent_cell_clock_out_mux/C10_ctmi_1这个mux&#xff0c;这是我们DFT设计结果&#xff1a; 这里我们重新打开place的数据 Anchor&#xff0c;也就…...

突破传统:用Polars解锁ICU医疗数据分析新范式

一、ICU数据革命的临界点 在重症监护室&#xff08;ICU&#xff09;&#xff0c;每秒都在产生关乎生死的关键数据&#xff1a;从持续监测的生命体征到高频更新的实验室指标&#xff0c;从呼吸机参数到血管活性药物剂量&#xff0c;现代ICU每天产生的数据量级已突破TB级别。传统…...

《深度学习实战》第11集:AI大模型压缩与加速

深度学习实战 | 第11集&#xff1a;AI大模型压缩与加速 在深度学习领域&#xff0c;随着模型规模的不断增大&#xff0c;模型的推理速度和部署效率成为实际应用中的关键挑战。本篇博客将带你深入了解模型压缩与加速的核心技术&#xff0c;并通过一个实战项目展示如何使用知识蒸…...

golang进阶知识专项-理解值传递

在 Go 语言中&#xff0c;所有函数的参数传递都是值传递&#xff08;Pass by Value&#xff09;。当你将一个变量作为参数传递给函数时&#xff0c;实际上传递的是该变量的副本&#xff0c;而不是变量本身。理解这一点对于避免常见的编程错误至关重要。根据不同的类型&#xff…...

OCPP与ISO 15118集成:实现即插即充与车网互动(V2G)- 慧知开源充电桩平台

OCPP与ISO 15118集成&#xff1a;实现即插即充与车网互动&#xff08;V2G&#xff09; 引言 随着电动汽车&#xff08;EV&#xff09;与电网双向能量交互&#xff08;V2G&#xff09;技术的成熟&#xff0c;OCPP协议与ISO 15118标准的协同成为智能充电基础设施的核心挑战。本文…...

大语言模型中温度参数(Temperature)的核心原理

大语言模型中温度参数&#xff08;Temperature&#xff09;的核心原理是通过调整模型输出的概率分布&#xff0c;控制生成结果的随机性和多样性。以下是其原理的详细说明&#xff1a; 一、定义与核心作用 温度参数是生成式模型&#xff08;如GPT系列&#xff09;中的一个超参数…...

K8s控制器Deployment详解

回顾 ReplicaSet 控制器,该控制器是用来维护集群中运行的 Pod 数量的&#xff0c;但是往往在实际操作的时候&#xff0c;我们反而不会去直接使用 RS&#xff0c;而是会使用更上层的控制器&#xff0c;比如说 Deployment。 Deployment 一个非常重要的功能就是实现了 Pod 的滚动…...

鸿蒙HarmonyOS评论功能小demo

评论页面小demo 效果展示 1.拆解组件&#xff0c;分层搭建 我们将整个评论页面拆解为三个组件&#xff0c;分别是头部导航&#xff0c;评论项&#xff0c;回复三个部分&#xff0c;然后统一在index界面导入 2.头部导航界面搭建 Preview Component struct HmNavBar {// 属性&a…...

基于PyTorch的深度学习3——基于autograd的反向传播

反向传播&#xff0c;可以理解为函数关系的反向传播。...

日期格式与字符串不匹配bug

异常特征&#xff1a;java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.String ### Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.time.LocalDateTime and java.lang.Str…...

打印三角形及Debug

打印三角形及Debug package struct; ​ public class TestDemo01 {public static void main(String[] args) {//打印三角形 五行 ​for (int i 1; i < 5; i) {for (int j 5 ; j >i; j--) {System.out.print(" ");}for (int k1;k<i;k) {System.out.print(&…...

大语言模型揭秘:从诞生到智能

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;无疑是技术领域最耀眼的明星之一。它们不仅能够理解人类的自然语言&#xff0c;还能生成流畅的文本&#xff0c;甚至在对话、翻译、创作等任务中表现出接近人类的智能…...