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

一篇文章入门主成分分析PCA

文章目录

  • 基本概念
    • 事件
    • 随机变量
      • 独立同分布
      • 离散型随机变量
        • 伯努利分布(两点分布)
        • 二项分布
        • 几何分布
        • 泊松分布
      • 连续型随机变量
        • 正态分布
    • 期望
    • 方差
    • 标准化
    • 协方差
    • 相关系数
    • 线性组合
    • 特征值和特征向量
    • 特征值分解
      • 对称矩阵的特征值分解
    • 齐次线性方程组
    • 单位向量
    • 基向量
    • 矩阵的秩
    • 最高阶非零子式
    • 正定矩阵
    • 正交矩阵
    • 正交基
    • 逆矩阵
    • 伴随矩阵
    • 奇异值分解
  • 主成分分析

基本概念

事件

事件:某种情况的“陈述” ⇒ \Rightarrow 事件A:掷出的骰子为偶数点 ⇒ \Rightarrow 事件A包含多种结果,每种结果都是一个基本事件 ⇒ \Rightarrow 事件的本质是集合
事件之间的基本关系:

  1. 蕴含与相等:如果当A发生时B必发生 ,记数学公式: A ⊂ B A \subset B AB数学公式: ⇒ \Rightarrow 当数学公式: A , B A,B A,B相互蕴含时,两式相等,记数学公式: A = B A=B A=B
  2. 互斥与对立:在一次试验中不可能同时发生,但可以都不发生,有A就没有B,有B没有A,但是可以同时没有A和B数学公式: ⇒ \Rightarrow A为一事件,则事件 B={A不发生} ,则A和B互为对立事件
  3. 事件和(或称并集):A和B中至少发生一个(并集),记数学公式: C = A + B C=A+B C=A+B
  4. 事件积(或称交集):A发生且B发生(交集),记数学公式: C = A B C=AB C=AB
  5. 事件差:A发生且B不发生,记数学公式: C = A − B C=A-B C=AB

全概率公式:一个事件的概率,该事件可以表示为若干互斥事件的联合
在这里插入图片描述

随机变量

随机变量是实验结果的函数 ⇒ \Rightarrow 抛一枚硬币,定义1=正面朝上 ,0=反面朝上,所以随机变量 X X X就代表抛硬币这个试验的结果,要么0要么1

独立同分布

独立性:一个随机变量的取值不会影响另一个随机变量的取值
同分布:所有随机变量服从相同的概率分布

离散型随机变量

伯努利分布(两点分布)

伯努利分布:两种可能结果的实验(如成功和失败),成功的概率为 p p p,失败的概率为 1 − p 1-p 1p
概率密度函数: P ( X = x ) = { p if   x = 1 1 − p if   x = 0 P(X=x)=\begin{cases}p&\text{if}\ \ x=1\\1-p&\text{if}\ \ x=0\end{cases} P(X=x)={p1pif  x=1if  x=0
期望值: E ( X ) = p E(X)=p E(X)=p
方差: V a r ( X ) = p ( 1 − p ) Var(X)=p(1-p) Var(X)=p(1p)

二项分布

二项分布:n次独立同分布的伯努利试验的成功次数的分布,每次试验成功的概率为 p p p 概率密度函数: P ( X = k ) = ( n k ) p k ( 1 − p ) n − k P(X=k)=\binom{n}kp^k(1-p)^{n-k} P(X=k)=(kn)pk(1p)nk
期望值: E ( X ) = n p E(X)=np E(X)=np
方差: V a r ( X ) = n p ( 1 − p ) Var(X)=np(1-p) Var(X)=np(1p)

几何分布

几何分布:在第一次成功之前的失败次数(包括第一次成功),每次试验成功的概率为 p p p
概率密度函数: P ( X = k ) = ( 1 − p ) k p for   k = 0 , 1 , 2 , … P(X=k)=(1-p)^kp\quad\text{for}\ \ k=0,1,2,\ldots P(X=k)=(1p)kpfor  k=0,1,2,
期望值: E ( X ) = 1 − p p E(X)=\frac{1-p}p E(X)=p1p
方差: Var ⁡ ( X ) = 1 − p p 2 \operatorname{Var}(X)=\frac{1-p}{p^2} Var(X)=p21p

泊松分布

泊松分布:单位时间或空间内某事件的发生次数,在一个间隔中平均发生事件的次数由 λ \lambda λ决定, λ \lambda λ是事件发生比率
概率密度函数: P ( X = k ) = λ k e − λ k ! P(X=k)=\frac{\lambda^ke^{-\lambda}}{k!} P(X=k)=k!λkeλ
期望值: E ( X ) = λ E(X)=\lambda E(X)=λ
方差: Var ⁡ ( X ) = λ \operatorname{Var}(X)=\lambda Var(X)=λ
“事件”可理解为一天中网站的访客数、一天中所接到的电话数

例如:每周平均有15个人给我的博客点赞,我想预测下一周的点赞数

如果使用二项分布来解决,令 x x x表示在 n n n次重复实验中发生点赞的次数, p p p表示每次实验的点赞概率(Probability)。我们现在已知的是每周平均的点赞比率(rate)为15个赞/周,并不知道点赞概率 p p p和博客访客数 n n n的任何信息
假设过去的1年(=52周)的数据中,一共有 10000 10000 10000人看了我的博客,其中有 800 800 800个人点赞了,这样平均每周访客数 = 10000 / 52 = 192 =10000 / 52 = 192 =10000/52=192,平均每周点赞数 = 800 / 52 = 15 =800 / 52 = 15 =800/52=15,可得到概率 p = 800 / 10000 = 0.08 = 8 % p = 800 / 10000 = 0.08 = 8 \% p=800/10000=0.08=8%
使用二项分布的概率密度函数,预测下一周有20个人点赞的概率为: B i n ( m = 20 ∣ N = 192 , p = 0.08 ) = N ! ( N − m ) ! m ! p m ( 1 − p ) N − m = 0.04657 \mathrm{Bin(m=20\mid N=192,p=0.08)=\frac{N!}{(N-m)!m!}p^m(1-p)^{N-m}=0.04657} Bin(m=20N=192,p=0.08)=(Nm)!m!N!pm(1p)Nm=0.04657

在上述过程中,可以将x=该周有15次点赞,也可以是x=该天有 15 / 7 = 2.1 15/7=2.1 15/7=2.1个赞,也可以是x=该小时有 15 / 7 ∗ 24 = 0.1 15/7*24=0.1 15/724=0.1个赞,这意味着大多数小时没有赞,而有的小时有一个点赞。仔细想想,似乎一定时间内出现超过1个点赞的情况也是合理的(比如文章早上刚发布的时候)。由此,二项分布的问题是它无法在一个时间单元中包含超过1次的事件(在这里,时间单元是1小时)
那么,我们将1小时切分成60分钟,时间单元是1分钟,使得1小时能够包含多个事件。问题得到解决了吗?还没有,比如何同学的5G视频,一晚上点赞就过百万,1分钟内不止一个赞。那我们再将时间单元切分成秒,这样1分钟又能包含多个事件。这样思考下去,我们会将已有的事件单元不断地切分,直到满足一个时间单元只包含一个事件,而大的时间单元能够包含1个以上的事件
形式化来看,这意味着 n → ∞ n\to \infty n,当我们假定比率(rate)固定,则必须让 p → 0 p\to 0 p0,否则点赞数 n × p → ∞ n \times p \to \infty n×p
基于以上的约束,时间单元变得无穷小。我们不用担心同一个时间单元包含一个以上的事件了
在用二项分布时,无法直接用比率(rate)来计算点赞概率 p p p,而是需要 n n n p p p才能使用二项分布的概率密度函数,而泊松分布不需要知道 n n n p p p,它假定 n n n是一个无穷大的数,而 p p p是无穷小的数,泊松分布唯一参数是比率 λ \lambda λ。现实中,得知 n n n p p p得进行很多次实验,而短时间内,比率(rate)很容易得到(例如,在下午2点-4点,收到了4个点赞)
在这里插入图片描述
在这里插入图片描述
泊松分布的假设:每个时间单元的事件平均发生比率是常数
例如:博客的每小时平均点赞数不太可能服从泊松分布,而博客每个月的平均点赞数可近似看作是固定的。假如你的博客写的很好,被公众号转发推广了,那可能会有大批的读者来阅读,这种情况下的点赞数就不满足泊松分布了
泊松分布的适用条件:

  1. 事件独立性:事件的发生是相互独立的,例如,每个读者对文章的点赞行为不受其他读者行为的影响
  2. 事件发生概率相等:每个事件在单位时间或空间内发生的概率是相同的
  3. 单位时间或空间内事件的发生率固定:单位时间或空间内事件的平均发生次数( λ \lambda λ)是固定的

当博客被公众号转发推广后,会出现以下变化:

  1. 读者行为不再独立:由于公众号转发,读者可能会集中在某个时间段内大量访问博客,导致点赞行为之间不再独立。例如,一个读者点赞后,可能会引起更多读者来点赞,这种情况下点赞行为具有相关性
  2. 事件发生概率不再相等:在被转发推广的时段,点赞的概率可能会显著提高,导致某些时间段内的点赞率远高于平时
  3. 事件发生率不固定:被推广后,单位时间内的访问量和点赞量会显著增加,不再符合泊松分布所要求的固定事件发生率

在这里插入图片描述

连续型随机变量

正态分布

概率密度函数: f ( x ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 f(x)=\frac1{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2πσ2 1e2σ2(xμ)2
期望值: E ( x ) = μ E(x)=\mu E(x)=μ
方差: Var ⁡ ( X ) = σ 2 \operatorname{Var}(X)=\sigma^2 Var(X)=σ2

期望

期望是随机变量取值的平均,以概率为权重对随机变量进行加权求和
平均数是对一组已经观察到的样本进行统计的量
由于概率是频率随样本趋于无穷的极限,所以期望其实就是平均数随样本趋于无穷的极限,两者是通过大数定理联系起来的

  • 离散型随机变量的期望值 E ( X ) \mathrm{E}(X) E(X) E ( X ) = ∑ i x i P ( X = x i ) \mathrm{E}(X)=\sum_ix_iP(X=x_i) E(X)=ixiP(X=xi)
  • 连续型随机变量的期望值 E ( X ) \mathrm{E}(X) E(X) E ( X ) = ∫ − ∞ ∞ x f X ( x ) d x E(X)=\int_{-\infty}^\infty xf_X(x) dx E(X)=xfX(x)dx

期望的性质:

  1. E ( X 1 + X 2 + ⋯ + X n ) = E ( X 1 ) + E ( X 2 ) + ⋯ + E ( X n ) \mathrm{E}\left(\mathrm{X}_1 +\mathrm{X}_2 + \cdots +\mathrm{X}_\mathrm{n}\right)=\mathrm{E}\left(\mathrm{X}_1 \right)+\mathrm{E}\left(\mathrm{X}_2 \right)+ \cdots+\mathrm{E}\left(\mathrm{X}_\mathrm{n} \right) E(X1+X2++Xn)=E(X1)+E(X2)++E(Xn)(无条件成立)
  2. E ( X 1 X 2 ⋯ X n ) = E ( X 1 ) E ( X 2 ) ⋯ E ( X n ) \mathrm{E}(X_1 X_2 \cdots X_n) = \mathrm{E}(X_1 ) \mathrm{E} (X_2 ) \cdots \mathrm{E} (X_n ) E(X1X2Xn)=E(X1)E(X2)E(Xn)(独立情况下成立)

方差

方差是用来衡量随机变量和其数学期望之间的偏离程度的量,方差越大,那么这一组数据的波动幅度也就越大
因为 X X X是随机的,所以偏离的量 X − E X X-EX XEX本身也是随机的,为了避免正负相互抵消,对其取平方作为偏离量,很自然方差就是该偏离量的期望,定义为: V a r ( X ) = E ( X − E X ) 2 = E ( X 2 ) − ( E X ) 2 \mathrm{Var(X)=E(X-EX)^2=E\left(X^2\right)-(EX)^2} Var(X)=E(XEX)2=E(X2)(EX)2
假如给定一个含有 n n n个样本的集合,则方差计算为: σ 2 = ∑ i = 1 n ( X i − X ˉ ) 2 n − 1 \mathrm{\sigma^2=\frac{\sum_{i=1}^n\left(X_i-\bar{X}\right)^2}{n-1}} σ2=n1i=1n(XiXˉ)2
之所以除以n-1而不是除以n,是因为我们是用样本去估计总体,除n-1才是统计学上的“无偏估计”,这样能使我们以较小的样本集更好的逼近总体的标准差
方差的性质:

  1. 常数的方差为 0 0 0
  2. C C C为常数,则 V a r ( X + C ) = V a r ( X ) \mathrm{Var(X+C)=Var(X)} Var(X+C)=Var(X)
  3. C C C为常数,则 V a r ( C X ) = C 2 V a r ( X ) \mathrm{Var(CX)=C^2Var(X)} Var(CX)=C2Var(X)
  4. 独立情况下, V a r ( X 1 + ⋯ + X n ) = V a r ( X 1 ) + ⋯ + V a r ( X n ) \mathrm{Var\left(X_1\right.+\cdots+X_n})=\mathrm{Var\left(X_1)\right.}+\cdots+\mathrm{Var\left(X_n\right)} Var(X1++Xn)=Var(X1)++Var(Xn)

标准化

标准化可以使每个样本的均值为0、标准差为1: x ′ = x − x ˉ σ \mathrm x'=\frac{\mathrm x-\bar{\mathrm x}}\sigma x=σxxˉ

协方差

协方差衡量两个随机变量之间的线性关系
对于两个随机变量 X X X Y Y Y,协方差的定义为 Cov ⁡ ( X , Y ) = E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] = E ( X Y ) − E ( X ) E ( Y ) \operatorname{Cov}(X,Y)=E\left[(X-E(X))(Y-E(Y))\right]=E(XY)-E(X)E(Y) Cov(X,Y)=E[(XE(X))(YE(Y))]=E(XY)E(X)E(Y)

  • 正协方差:如果 Cov ⁡ ( X , Y ) > 0 \operatorname{Cov}(X,Y)>0 Cov(X,Y)>0,则表明 X X X Y Y Y之间存在正的线性关系
  • 负协方差:如果 Cov ⁡ ( X , Y ) < 0 \operatorname{Cov}(X,Y)<0 Cov(X,Y)<0,则表明 X X X Y Y Y之间存在负的线性关系
  • 零协方差:如果 Cov ⁡ ( X , Y ) = 0 \operatorname{Cov}(X,Y)=0 Cov(X,Y)=0,则表明 X X X Y Y Y之间没有线性关系 ⇒ \Rightarrow 零协方差并不意味着 X X X Y Y Y完全不相关,它们可能存在非线性的关系

假设数据矩阵 X X X的大小为 n × p n\times p n×p,其中 n n n是样本数, p p p是特征数, X X X的每一行代表一个样本,每一列代表一个特征
给定数据矩阵 X X X,协方差矩阵的计算公式为: Σ = 1 n − 1 X T X \Sigma=\frac{1}{n-1}X^TX Σ=n11XTX
X T X X^TX XTX是一个 p × p p\times p p×p的矩阵,表示各特征之间的内积和
在这里插入图片描述

相关系数

协方差虽然能反映两个随机变量的相关程度,为了标准化这种相关性,我们通常使用相关系数(Correlation Coefficient),其定义为: ρ X , Y = Cov ⁡ ( X , Y ) σ X σ Y E [ ( X − E X ) ( Y − E Y ) ] σ X σ Y = E ( X Y ) − E ( X ) E ( Y ) E ( X 2 ) − E 2 ( X ) E ( Y 2 ) − E 2 ( Y ) \rho_{X,Y}=\frac{\operatorname{Cov}(X,Y)}{\sigma_X\sigma_Y}\begin{aligned}\frac{\mathrm{E}\left[\left(\mathrm{X}-\mathrm{E}\mathrm{X}\right)\left(\mathrm{Y}-\mathrm{E}\mathrm{Y} \right)\right]}{\sigma_\mathrm{X} \sigma_\mathrm{Y}}&=\frac{\mathrm{E}\left(\mathrm{X}\mathrm{Y}\right)-\mathrm{E}\left(\mathrm{X}\right)\mathrm{E}\left(\mathrm{Y}\right)}{\sqrt{\mathrm{E}\left(\mathrm{X}^2\right)-\mathrm{E}^2\left(\mathrm{X}\right)}\sqrt{\mathrm{E}\left(\mathrm{Y}^2\right)-\mathrm{E}^2\left(\mathrm{Y}\right)}}\end{aligned} ρX,Y=σXσYCov(X,Y)σXσYE[(XEX)(YEY)]=E(X2)E2(X) E(Y2)E2(Y) E(XY)E(X)E(Y),其中 σ X \sigma_X σX σ Y \sigma_Y σY分别是 X X X Y Y Y的标准差,相关系数 ρ X , Y \rho_{X,Y} ρX,Y的值域为 [ − 1 , 1 ] [-1,1] [1,1],值越接近 1 或 -1,表明 X X X Y Y Y之间的线性关系越强

线性组合

线性组合:设 β , α 1 , α 2 , . . . , α n \mathrm{\beta} , \alpha_{1} , \alpha_{2} , ..., \alpha_{\mathrm{n}} β,α1,α2,...,αn是一组 m m m维向量,若存在数 k 1 , k 2 , . . . , k n \mathrm{k_{1} , k_{2} , ...,k_{n}} k1,k2,...,kn,使得 β = k 1 α 1 + k 2 α 2 + . . . + k n α n \mathrm{\beta=k_1\alpha_1~+k_2\alpha_2~+~...~+k_n\alpha_n} β=k1α1 +k2α2 + ... +knαn,则称 β \beta β是向量组 α 1 , α 2 , . . . , α n \alpha_{1} , \alpha_{2} , ..., \alpha_{\mathrm{n}} α1,α2,...,αn的线性组合, k 1 , k 2 , . . . , k n \mathrm{k_{1} , k_{2} , ...,k_{n}} k1,k2,...,kn为一组组合系数
性质:

  1. 零向量可由任意向量组来线性表示 0 = 0 α 1 + 0 α 2 + . . . + 0 α n \mathbf{0}=0\alpha_1+0\alpha_2+...+0\alpha_\mathrm{n} 0=0α1+0α2+...+0αn
  2. 向量组中任意一个向量可由向量组来线性表示 α 3 = 0 α 1 + 0 α 2 + 1 α 3 + 0 α 4 \alpha_3=0\alpha_1+0\alpha_2+1\alpha_3+0\alpha_4 α3=0α1+0α2+1α3+0α4
  3. 任意一个向量都可由基向量 ε 1 = ( 1 , 0 , . . . , 0 ) , ε 2 = ( 0 , 1 , . . . , 0 ) , . . . , ε n = ( 0 , 0 , . . . , 1 ) \begin{aligned}\varepsilon_1& =(1,0,...,0),\varepsilon_2 =(0,1,...,0),...,\varepsilon_\text{n} =(0,0,...,1)\end{aligned} ε1=(1,0,...,0),ε2=(0,1,...,0),...,εn=(0,0,...,1)来线性表示 ( 1 , 2 , 3 ) = 1 × ( 1 , 0 , 0 ) + 2 × ( 0 , 1 , 0 ) + 3 × ( 0 , 0 , 1 ) (1,2,3)=1\times(1,0,0)+2\times(0,1,0)+3\times(0,0,1) (1,2,3)=1×(1,0,0)+2×(0,1,0)+3×(0,0,1)
    β = ( − 3 , 2 , − 4 ) , α 1 = ( 1 , 0 , 1 ) , α 2 = ( 2 , 1 , 0 ) , α 3 = ( − 1 , 1 , − 2 ) \beta = (-3,2,-4), \alpha_{1} = (1,0,1), \alpha_{2} = (2,1,0), \alpha_{3} =(-1,1,-2) β=(3,2,4),α1=(1,0,1),α2=(2,1,0),α3=(1,1,2),判断 β \beta β是否可由 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3线性表示?
    在这里插入图片描述

特征值和特征向量

特征向量表示变换的方向,特征值表示在每个方向上的伸缩程度
在这里插入图片描述

特征值分解

相似矩阵:设 A , B A,B A,B都是 n n n阶矩阵,若有可逆矩阵 P P P,使 P − 1 A P = B \mathrm{P}^{-1}\mathrm{AP}=\mathrm{B} P1AP=B,则称 A A A B B B相似,这个过程称为相似变换, P P P为相似变换矩阵
如果 A A A与对角矩阵 Λ = ( λ 1 λ 2 ⋱ λ n ) \left.\boldsymbol{\Lambda}=\left(\begin{array}{rrrrr}\lambda_{1}&&&&\\&\lambda_{2}&&&\\&&\ddots&&\\&&&\lambda_{\mathrm{n}}&\end{array}\right.\right) Λ= λ1λ2λn 相似,即 P − 1 A P = Λ \mathrm{P}^{-1}\mathrm{AP}=\Lambda P1AP=Λ,那么 λ 1 , λ 2 , ⋯ , λ n \lambda_{1},\lambda_{2} ,\cdots ,\lambda_{\mathrm{n}} λ1,λ2,,λn A A A n n n个特征值,而 P P P的列向量 p i p_i pi就是 A A A对应于特征值 λ i \lambda_i λi的特征向量
P P P乘到右边,得到: A = P Λ P − 1 \mathrm A=\mathrm P\Lambda\mathrm P^{-1} A=PΛP1这个式子就是实际中经常用到的特征值分解,一个矩阵 A A A可以通过特征值分解得到它的特征值和特征向量

对称矩阵的特征值分解

对称矩阵: A T = A \mathrm{A^{T}}=\mathrm{A} AT=A ⇒ \Rightarrow 对称矩阵有 N N N个线性无关的特征向量,且不同特征值对应的特征向量相互正交
对称矩阵一定可以相似对角化,故实对称矩阵 A A A可以被分解成: A = P Λ P − 1 = P Λ P T \mathrm{A}=\mathrm{P} \Lambda\mathrm{P}^{-1}=\mathrm{P} \mathrm{\Lambda}\mathrm{P}^{\mathrm{T}} A=PΛP1=PT,其中 P P P为正交矩阵( P P T = E \mathrm{PP}^{\mathrm{T}}=\mathrm{E} PPT=E

齐次线性方程组

齐次线性方程组是指所有常数项(即方程的右端)都等于零的线性方程组 A x = 0 A\mathbf{x}=\mathbf{0} Ax=0,其中 A A A是一个 m × n m\times n m×n的矩阵, x \mathbf{x} x是一个 n n n维列向量, 0 \mathbf{0} 0是一个 m m m维列向量
在这里插入图片描述

单位向量

单位向量是指长度为1的向量,在欧几里得空间中,如果向量 u \mathbf{u} u满足 ∥ u ∥ = 1 \|\mathbf{u}\|=1 u=1,其中 ∥ u ∥ \|\mathbf{u}\| u表示向量 u \mathbf{u} u的长度,则 u \mathbf{u} u是一个单位向量
在这里插入图片描述

基向量

基向量是向量空间的一组向量,通过线性组合这些向量可以表示空间中的任何向量,向量空间中的基向量通常是线性无关的

矩阵的秩

矩阵的秩(Rank)是其行向量的最大线性无关组的数量
从几何角度来看,矩阵的秩表示由矩阵的行向量生成的向量空间的维数,对于一个 3 × 3 3\times3 3×3的矩阵:

  • 如果其秩为 3,表示其行向量是三维空间的基,可以生成整个三维空间
  • 如果秩为 2,表示行向量位于同一平面,且可以生成一个二维平面
  • 如果秩为 1,表示所有行向量都在同一条直线上

在这里插入图片描述

对于方阵,如果其行列式不为零,则该矩阵是满秩矩阵,即秩等于矩阵的阶数。反之,如果行列式为零,则矩阵的秩小于其阶数

最高阶非零子式

一个 k × k k\times k k×k子式是从矩阵中选取 k k k行和 k k k列形成的一个 k × k k\times k k×k方阵的行列式
最高阶非零子式是指在所有非零子式中,阶数最高的那个子式
假设有一个 3 × 3 3\times 3 3×3矩阵: A = ( 1 2 3 4 5 6 7 8 9 ) A=\begin{pmatrix}1&2&3\\4&5&6\\7&8&9\end{pmatrix} A= 147258369
在这里插入图片描述

正定矩阵

正定矩阵是一种特殊的实对称矩阵
实对称矩阵:矩阵的转置等于其自身的矩阵,对于任意 i i i j j j,其第 i i i行第 j j j列的元素等于第 j j j行第 i i i列的元素
一个实对称矩阵 A A A 被称为正定的,如果对于任意非零向量 x x x,都有 x T A x > 0 x^TAx>0 xTAx>0
一个实对称矩阵 A A A被称为半正定的,如果对于任意非零向量 x x x,都有 x T A x ≥ 0 x^TAx\geq0 xTAx0

正交矩阵

正交矩阵的逆矩阵和转置矩阵是相同的
一个正交矩阵 Q Q Q满足下列条件:

  • 它是一个方阵(即行数等于列数)
  • 它的每一列都是单位向量,并且相互正交

正交基

一个向量组 { u 1 , u 2 , … , u n } \{\mathbf{u}_1,\mathbf{u}_2,\ldots,\mathbf{u}_n\} {u1,u2,,un}是正交基,如果组内的任意两个向量都是正交的,即 u i ⋅ u j = 0 \mathbf{u}_{i}\cdot\mathbf{u}_{j}=0 uiuj=0(对于所有 i ≠ j i\neq j i=j),如果这些向量还都是单位向量,则称它们是正交规范基
在三维空间中,标准基向量 { e 1 , e 2 , e 3 } \{\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3\} {e1,e2,e3}是一个正交规范基: e 1 = ( 1 , 0 , 0 ) , e 2 = ( 0 , 1 , 0 ) , e 3 = ( 0 , 0 , 1 ) \mathbf{e}_1=(1,0,0),\quad\mathbf{e}_2=(0,1,0),\quad\mathbf{e}_3=(0,0,1) e1=(1,0,0),e2=(0,1,0),e3=(0,0,1)

逆矩阵

假如说,矩阵 A A A是逆时针旋转90°的变换,则 A − 1 A^{-1} A1是顺时针旋转90°的变换
如果矩阵 A A A可逆,则 A − 1 = A ∗ ∣ ∣ A ∣ ∣ A^{-1}=\frac{A^{*}}{||A||} A1=∣∣A∣∣A ∣ ∣ A ∣ ∣ = det ⁡ ( A ) ||A||=\det(A) ∣∣A∣∣=det(A),即矩阵的行列式)
在这里插入图片描述

伴随矩阵

伴随矩阵 A ∗ A^{*} A
余子式: A A A关于第 i i i行第 j j j列的余子式(记作 M i j M_{ij} Mij)是去掉 A A A的第 i i i行第 j j j列之后得到的 ( n − 1 ) × ( n − 1 ) (n-1)\times (n-1) (n1)×(n1)矩阵的行列式
代数余子式: A A A关于第 i i i行第 j j j列的代数余子式(记作 C i j C_{ij} Cij)为 ( − 1 ) i + j M i j (-1)^{i+j}M_{ij} (1)i+jMij
余子矩阵: A A A的余子矩阵是一个 n × n n\times n n×n的矩阵 C C C,使得第 i i i行第 j j j列的元素是 A A A关于第 i i i行第 j j j列的代数余子式
伴随矩阵:矩阵 A A A的伴随矩阵是 A A A的余子矩阵的转置矩阵

奇异值分解

特征分解只适用于方阵,奇异值分解SVD适用于任意矩阵分解
从相似对角化的的定义可以看到,我们可以把一个复杂的矩阵 A A A变成一个很简单的对角矩阵,而这个对角矩阵也同样保留了原来矩阵的特征,且变换的矩阵 P P P就是 A A A的特征向量组成的矩阵
但是注意,不是每一个矩阵都能与对角矩阵相似,首先注意到 P P P必须是可逆的,而 P P P又是特征向量组成 ⇒ \Rightarrow 当且仅当 A A A n n n个线性无关的特征向量时, A A A才能相似对角化
奇异值分解就像是把一个复杂的玩具分解成几个更简单的小玩具,然后用这些小玩具重新拼装成原来的玩具
假设我们有一个 m × n m\times n m×n的矩阵 A A A,,奇异值分解把它分解成三个矩阵: A = U Σ V T A=U\Sigma V^{T} A=UΣVT

  • 矩阵 U U U m × m m\times m m×m的正交矩阵,其中的列向量 u 1 ⃗ , u 2 ⃗ , … , u m ⃗ \vec{\mathrm{u}_1},\vec{\mathrm{u}_2},\ldots,\vec{\mathrm{u}_m} u1 ,u2 ,,um A A T AA^T AAT的特征向量,称为矩阵 A A A的左奇异向量
  • 矩阵数学 Σ \Sigma Σ m × n m\times n m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的元素 σ i \sigma_i σi称为奇异值, σ i = λ i \sigma_{\mathrm{i}}=\sqrt{\lambda_{\mathrm{i}}} σi=λi λ i \lambda_i λi A A T AA^T AAT的特征值
  • 矩阵 V T V^T VT n × n n\times n n×n的正交矩阵,其中的列向量 v ⃗ 1 , v ⃗ 2 , … , v ⃗ m \vec{\mathrm{v}}_{1} , \vec{\mathrm{v}}_{2} ,\ldots, \vec{\mathrm{v}}_{\mathrm{m}} v 1,v 2,,v m A T A A^TA ATA的特征向量,称为矩阵 A A A的右奇异向量
    在这里插入图片描述

奇异值在矩阵中是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。也就是说: A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V k × n T \mathrm A_{\mathrm m\times\mathrm n}=\mathrm U_{\mathrm m\times\mathrm m}\Sigma_{\mathrm m\times\mathrm n}\mathrm V_{\mathrm n\times\mathrm n}^{\mathrm T}\approx\mathrm U_{\mathrm m\times\mathrm k}\Sigma_{\mathrm k\times\mathrm k}\mathrm V_{\mathrm k\times\mathrm n}^{\mathrm T} Am×n=Um×mΣm×nVn×nTUm×kΣk×kVk×nT,其中,k是一个远小于m、n的数。SVD具有的这种特性可以用于PCA降维、数据压缩和去噪等

A A T AA^T AAT是对称矩阵

图片: https://uploader.shimo.im/f/c5V2mrsgMChsaFuk.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MTk4ODU0MjAsImZpbGVHVUlEIjoiS3JrRWxyMUJiUnRMNURxSiIsImlhdCI6MTcxOTg4NTEyMCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NTQwNzQ2NX0.U31W-bYVKSEvhx4cIGEzrEarFUCl2iM1kBdgD4OtL-c

主成分分析

假设我们有一组二维数据 ( x , y ) (x,y) (x,y),它的分布如下:
在这里插入图片描述

可以看到,数据在x轴上的变化大,而在y轴变化小,变化小意味着数据在这个特征上没有太大的差异,因此它包含的信息就比较少,那么我们就可以认为它是不重要的或者是噪音,从而可以直接将这个维度上的数据舍去,只用x轴上的数据来代替
那么假如数据是这样分布的呢?
在这里插入图片描述

这个图我们就不太好看出到底是谁比较重要了,因为x和y变化都比较大,那么就不能降维了吗?非也,假如我们旋转一下坐标系
在这里插入图片描述

从这个例子也可以看到,数据本身的具体数值其实是不重要的,重要的是数据之间的关系,数据的整体分布。原来的数据是在 E E E坐标系下,然后我们换了一个坐标系来表示,本质上相当于对数据进行了一次正交变换(从数学公式看),在新的坐标系下,我们能更清楚的看到数据的特点
PCA的目标是将原始数据转换到一个新的坐标系中,这个新坐标系的轴(主成分)是数据方差最大的方向
主成分是在数据集中找到方差最大的方向(即主成分),然后将数据投影到这些方向上
方差最大化:每个主成分方向上数据的方差最大,这意味着这个方向上数据分布最广,包含最多的信息
正交性:不同主成分之间是相互正交的,即它们彼此垂直且不相关
PCA的步骤:

  1. 数据标准化:将每个特征的均值变为零,方差变为一,确保每个特征对主成分的贡献是均衡的 ⇒ \Rightarrow 标准化数据 = X − μ σ \text{标准化数据}=\frac{X-\mu}\sigma 标准化数据=σXμ
  2. 计算协方差矩阵:协方差矩阵描述了不同特征之间的线性关系 ⇒ \Rightarrow Σ = 1 n − 1 X T X \Sigma=\frac{1}{n-1}X^TX Σ=n11XTX,其中, Σ \Sigma Σ是协方差矩阵, X X X是标准化后的数据矩阵, n n n是样本数量
  3. 特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量 ⇒ \Rightarrow Σ = V Λ V T \Sigma=V\Lambda V^{T} Σ=VΛVT,其中, V V V是特征向量矩阵, Λ \Lambda Λ是对角矩阵,对角线上的元素是特征值
  4. 选择前 k k k个主成分:选择特征值最大的 k k k个特征向量,作为新的特征子空间的基,这些特征向量就是主成分;特征值代表了每个特征向量方向上的方差大小,特征值越大,表示这个方向上的方差越大,包含的信息越多
  5. 变换数据:用选择的 k k k个主成分对原始数据进行变换,得到降维后的数据 Y = X P Y=XP Y=XP,其中, Y Y Y是降维后的数据矩阵, P P P是由选择的 k k k个特征向量构成的矩阵

https://uploader.shimo.im/f/9YTNMHolzXac7pWq.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MTk4ODg0ODYsImZpbGVHVUlEIjoiS3JrRWxyMUJiUnRMNURxSiIsImlhdCI6MTcxOTg4ODE4NiwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NTQwNzQ2NX0.6y6m4pk8F7yuMELljgGLqgbchU77T6jMNA3eLvM2PlA

参考文献
1、ChatGPT3.5、ChatGPT4.0、ChatGPT4o
2、概率分布介绍—泊松分布:https://blog.csdn.net/weixin_44633882/article/details/120313676
3、相关系数——皮尔逊相关系数:https://blog.csdn.net/MoreAction_/article/details/106195689
4、《线性代数》教学视频 宋浩老师:https://www.bilibili.com/video/BV1aW411Q7x1?p=1&vd_source=8469f059ce75462e1674032ec0bfc23a
5、一文读懂特征值分解EVD与奇异值分解SVD:https://blog.csdn.net/MoreAction_/article/details/107318158
6、一文让你彻底搞懂主成成分分析PCA的原理及代码实现:https://blog.csdn.net/MoreAction_/article/details/107463336

相关文章:

一篇文章入门主成分分析PCA

文章目录 基本概念事件随机变量独立同分布离散型随机变量伯努利分布&#xff08;两点分布&#xff09;二项分布几何分布泊松分布 连续型随机变量正态分布 期望方差标准化协方差相关系数线性组合特征值和特征向量特征值分解对称矩阵的特征值分解 齐次线性方程组单位向量基向量矩…...

Android系统为什么lmkd杀到adj 100就代表有低内存?

在Android系统中&#xff0c;lmkd&#xff08;Low Memory Killer Daemon&#xff0c;低内存终止守护进程&#xff09;负责监控系统的内存状态&#xff0c;并在内存压力较高时通过终止不必要的进程来释放内存&#xff0c;以维持系统的稳定运行。关于lmkd为何在杀到adj&#xff0…...

d嘤嘤不想求异或喵(牛客周赛49)

题意&#xff1a; 嘤嘤有两个整数 l,r&#xff0c;她想知道区间 [l,r] 所有整数的异或和是多少. 分析&#xff1a; 样例1只有一个数输出1 样例2 1^201^10113 样例3 1^2^301^10^1111^11000 #include<bits/stdc.h> using namespace std; typedef long long ll; ll f(l…...

java反射-动态调用方法

通过字符串动态创建对象&#xff0c;通过字符串动态使用对象方法 package com.hmdp.service.动态调用方法;import java.lang.reflect.Method;public class Main {public static void main(String[] args) throws Exception {String name "javax.swing.JFrame";Clas…...

ThreadLocal作用

ThreadLocal作用(线程本地存储) ThreadLocal&#xff0c;很多地方叫做线程本地变量&#xff0c;也有些地方叫做线程本地存储&#xff0c;ThreadLocal的作用是提供线程内的局部变量&#xff0c;这种变量在线程的生命周期内起作用&#xff0c;减少同一个线程内多个函数或者组件之…...

Python基础入门知识

目录 引言 简要介绍Python语言 为什么要学习Python Python的应用领域 Python安装和环境配置 Python的下载和安装(Windows, macOS, Linux) 配置Python环境变量 安装和使用IDE(如PyCharm, VS Code) Python基本语法 注释 变量和数据类型(数字,字符串,列表,元组,字典,…...

uniapp——据用户角色显示或隐藏部分功能权限。

v-if"user.state.agent_level!business || (user.state.agent_levelbusiness && item.value ! 3 && item.value ! 4)"...

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测 目录 JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BO-Transformer-LSTM多变量回归预测&#xff0c;贝叶斯优化Transformer结合LSTM长…...

软件开发环境-系统架构师(二十一)

1、对计算机评价的主要性能指标有时钟频率、&#xff08;&#xff09;、运算精度和内存容量等。 对数据库管理系统评价的主要性能指标有&#xff08;&#xff09;、数据库所允许索引数量和最大并发事务处理能力。 问题1 A丢包率 B端口吞吐量 C可移植性 D数据处理速率 问题…...

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、超强计算资源的机器学习模型&#xff0c;能够处理海量数据&#xff0c;完成各种复杂任务&#xff0c;如自然语言处理、图像识别等。计算机硬件性能不断提升&#xff0c;深度学习算法快速优化&…...

ctfshow-web入门-命令执行(web56、web57、web58)

目录 1、web56 2、web57 3、web58 1、web56 命令执行&#xff0c;需要严格的过滤 新增过滤数字&#xff0c;只能采用上一题临时文件上传的方法&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…...

controller不同的后端路径对应vue前端传递数据发送请求的方式,vue请求参数 param 与data 如何对应后端参数

目录 案例一&#xff1a; 为什么使用post发送请求&#xff0c;参数依旧会被拼接带url上呢&#xff1f;这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后&#xff0c;data会以请求体传递 补充&#xff1a;后端controller 参数上如果没写任何注解&#xff0c…...

【FFmpeg】avcodec_send_frame函数

目录 1.avcodec_send_frame1.1 将输入的frame存入内部buffer&#xff08;encode_send_frame_internal&#xff09;1.1.1 frame的引用函数&#xff08;av_frame_ref &#xff09;1.1.1.1 帧属性的拷贝&#xff08;frame_copy_props&#xff09;1.1.1.2 buffer的引用函数&#xf…...

python获取字符编码

在Python中&#xff0c;您可以使用内置的ord()函数获取单个字符的Unicode编码&#xff0c;使用encode()方法获取字符串的字节编码。 获取单个字符的Unicode编码: char a unicode_code ord(char) print(unicode_code) # 输出字符的Unicode编码 获取字符串的字节编码: tex…...

通过MATLAB控制TI毫米波雷达的工作状态之实时数据采集

前言 前一章博主介绍了如何基于MATLAB的各种前面板组件结合MATLAB代码来发送CFG指令控制毫米波雷达的工作状态,这一章节博主将介绍如何基于这些组件结合MATLAB代码来实现TI毫米波雷达数据的实时采集。目前大部分TI毫米波雷达的数据采集均是仅可以采集一段数据又或者利用DAC10…...

华为HCIP Datacom H12-821 卷21

1.单选题 以下关于PIM-SM中SPT切换的描述,错误的是哪一项? A、若所有组播流量都经过RP路由器,则RP路由器可能成为数据转发的瓶颈 B、SPT路径最短,转发性能更优 C、SPT 切换完成后,组播流量依然经过 ReT 树 D、RPT 树可能不是组播流量转发的最优路径 正确答案: C 解析…...

MySQL之应用层优化(二)

应用层优化 Web服务器问题 寻找最优并发度 每个Web服务器都有一个最佳并发度——就是说&#xff0c;让进程处理请求尽可能快&#xff0c;并且不超过系统负载的最优的并发连接数。这就是前面说的最大系统容量。进行一个简单的测量和建模&#xff0c;或者只是反复试验&#xf…...

Java源码解读之常量52429

文章目录 为什么有52429的常量呢&#xff1f;对于为什么选择52429?那么为什么不再选几位呢&#xff1f; 在JDK8源码中 java.lang.Integer有52429作为常量出现&#xff0c; 为什么有52429的常量呢&#xff1f; static void getChars(int i, int index, char[] buf) {int q, r;…...

“Photoshop AI插件:StartAI的全面使用攻略

随着人工智能技术的飞速发展&#xff0c;Photoshop作为设计师们不可或缺的工具&#xff0c;也在不断地融入AI技术&#xff0c;以提升设计效率和效果。在2024年&#xff0c;PSAI插件StartAI因其强大的功能和易用性&#xff0c;成为了Photoshop用户的得力帮手。下面来给大家详细介…...

入门Axure:快速掌握原型设计技能

2002 年&#xff0c;维克托和马丁在旧金山湾区的一家初创公司工作&#xff0c;发现自己一再被软件开发生命周期的限制所困扰&#xff0c;而且产品团队在编写规范之前很难评估他们的解决方案&#xff0c;开发人员经常不理解&#xff08;或不阅读&#xff09;给出的规范&#xff…...

Java中的序列化与反序列化详解

Java中的序列化与反序列化详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 什么是序列化与反序列化&#xff1f; 序列化&#xff08;Serialization&#…...

在鸿蒙开发中如何实现皮肤切换?

在鸿蒙开发中&#xff0c;实现主题皮肤切换可以通过以下步骤&#xff1a; 1. 创建不同的主题样式文件&#xff0c;例如theme_light.json和theme_dark.json。 2. 在应用程序的config.json文件中&#xff0c;引入这些主题样式文件。 3. 在应用程序的入口文件&#xff08;例如main…...

FlowUs新一代内容创作营销平台|FlowUs息流国产 好用 不限速

FlowUs 作为一个知识管理和协作平台&#xff0c;知识库功能可以被视为一个强大的学习工具&#xff01; 为什么FlowUs知识库可以成为学习利器呢&#xff1f;原因有以下几点 集中化知识存储&#xff1a;FlowUs允许我们将所有相关信息和资料集中在一个地方&#xff0c;便于访问和复…...

WebSocket解决方案(springboot 基于Redis发布订阅)

WebSocket 因为一般的请求都是HTTP请求&#xff08;单向通信&#xff09;&#xff0c;HTTP是一个短连接&#xff08;非持久化&#xff09;&#xff0c;且通信只能由客户端发起&#xff0c;HTTP协议做不到服务器主动向客户端推送消息。WebSocket确能很好的解决这个问题&…...

如何优化网站SEO排名?

选择那些容易排名的关键词。使用工具找到那些竞争少但有流量的词语。其次&#xff0c;内部链接非常重要。通过合理的内部链接&#xff0c;可以提升各个页面的权重。 增加FAQ部分能帮助你捕捉更多的长尾关键词流量。争取出现在精选摘要的位置&#xff0c;可以直接提升你的曝光率…...

基于Java的音乐网站系统-计算机毕业设计源码01239

目 录 摘要 1 绪论 1.1 研究背景 1.2系统开发目标、意义 1.3研究内容 2 相关技术介绍 2.1 MySQL数据库 2.2 Java编程语言 2.3 SpringBoot框架介绍 3 系统需求分析与设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 法律可行性分析 3.2 需…...

云原生之容器编排实践-OpenEuler23.09在线安装Kubernetes与KubeSphere

背景 前几篇文章中介绍了如何将 ruoyi-cloud 项目部署到 Kubernetes 集群中&#xff0c;包括网关服务、认证服务和系统服务并且对全部服务采用 YAML 文件的方式来进行部署&#xff0c;这虽然有助于理解 K8S 组织管理资源的风格与底层机制&#xff0c;但是对于团队中不太熟悉命…...

Ubuntu 截图shutter,图像编辑 gimp,录屏kazam

1.截图&#xff1a; Shutter 安装shutter命令&#xff1a; sudo add-apt-repository ppa:shutter/ppasudo apt-get updatesudo apt-get install shutter 2.图片编辑&#xff1a;Gimp, Kolourpaint, Pinta gimp全名为&#xff1a;GNU Image Manipulation Program&#xff0c…...

WSO2 products 文件上传漏洞(CVE-2022-29464)

前言 CVE-2022-29464 是一个影响多个 WSO2 产品的严重远程代码执行&#xff08;RCE&#xff09;漏洞。这些产品包括 WSO2 API Manager、WSO2 Identity Server 和 WSO2 Enterprise Integrator 等。由于用户输入验证不当&#xff0c;该漏洞允许未经身份验证的攻击者在服务器上上…...

YOLOv8改进 | 卷积模块 | SAConv可切换空洞卷积

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…...

使用Python下载并合并HLS视频片段

下载和合并视频片段的实用方法 在日常工作中&#xff0c;我们经常会遇到需要从网上下载视频并将其合并成一个完整视频的需求。本文将介绍如何使用 Python 下载多个视频片段&#xff0c;并使用 ffmpeg 将这些片段合并成一个完整的视频文件。以下是具体步骤和代码实现。 完整代…...

常见的九种二极管

常见的九种二极管 文章目录 常见的九种二极管1、普通二极管2、光电二极管&#xff08;LED&#xff09;3、变容二级管4、发光二极管5、恒流二极管6、快恢复二极管&#xff08;FRD&#xff09;7、肖特基二极管8、瞬态电压抑制二极管(TVS)9、齐纳二极管&#xff08;稳压&#xff0…...

竞赛选题 python的搜索引擎系统设计与实现

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python的搜索引擎系统设计与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;5分创新点&#xff1a;3分 该项目较为新颖&#xff…...

大模型技术方向夏令营1期-对话分角色要素提取挑战赛

#AI夏令营 #Datawhale #夏令营 一、 baseline 跑通 Baseline 本身挑战性有限&#xff0c;关键是熟悉 LLM-centric 相关任务 coding 层面的流程方法&#xff0c;比如: 大模型 API&#xff08;这里为科大讯飞 Spark&#xff09;调用token消耗的理解如何调用大模型实现针对给定…...

类和对象(封装、继承、多态、友元)

c面相对象的三大特性为&#xff1a;封装、继承、多态 c 认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 一、类和对象&#xff08;封装&#xff09; &#xff08;一&#xff09;封装的意义 封装是c面相对象的三大特性之一 封装的意义&#xff1a; 将属性和行为…...

关于Yolov8我踩过的那些坑

按照报错频次梳理&#xff1a; 致命反斜杠‘\’ 调用模型时&#xff0c;我喜欢‘copy relative location’&#xff0c;然后win系统默认反斜杠&#xff01; 就导致路径读取错误&#xff01;各种报错&#xff01;&#xff01; debug到崩溃然后发现是斜杠的问题&#xff0c;本吗喽…...

Linux——shell原理和文件权限

1.shell原理 在我们使用云服务器时&#xff0c;需要通过shell进行使用&#xff0c;而shell则是一种外壳程序。 我们提到过&#xff0c;大部分的指令实际上就是文件&#xff0c;当用户需要执行某种功能时&#xff0c;由于用户不擅长和操作系统直接交互&#xff08;操作复杂&…...

网络工程师需要熟悉Docker吗?我觉得不需要精通,但是得懂基础

你好&#xff0c;这里是网络技术联盟站&#xff0c;我是瑞哥。 Docker&#xff0c;这个字眼大家不陌生吧&#xff0c;不过作为网络工程师可能平时接触不到&#xff0c;如果在看文章的是运维人员&#xff0c;那么70%以上的运维人员都会跟Docker打交道。即使网工用不到&#xff…...

c++初级-2-引用

文章目录 引用一、引用的定义二、引用做函数参数三、引用作为返回对象四、引用的本质五、常量引用 引用 即给一个变量起别名。 一、引用的定义 int a 10;//引用int& b a;cout << "a " << a << endl;cout << "b " <&l…...

如何清理电脑内存?让电脑运行如飞!

电脑内存&#xff08;RAM&#xff09;的清理对于维持系统的流畅运行至关重要。随着使用时间的增加&#xff0c;系统内存会被各种应用程序和后台进程占用&#xff0c;导致系统响应变慢&#xff0c;甚至出现卡顿现象。通过有效地清理内存&#xff0c;可以提升电脑的性能&#xff…...

[数据集][目标检测]人员状态跑睡抽烟打电话跌倒检测数据集4943张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4943 标注数量(xml文件个数)&#xff1a;4943 标注数量(txt文件个数)&#xff1a;4943 标注…...

Java8 - Stream API 处理集合数据

Java 8的Stream API提供了一种功能强大的方式来处理集合数据&#xff0c;以函数式和声明式的方式进行操作。Stream API允许您对元素集合执行操作&#xff0c;如过滤、映射和归约&#xff0c;以简洁高效的方式进行处理。 下面是Java 8 Stream API的一些关键特性和概念&#xff…...

漫步5G-A City,一份独属于上海的浪漫

作家亨利詹姆斯曾写道&#xff0c;“城市漫步&#xff0c;让我接触到了这个世界上最好的东西”。 用漫无目的地行走&#xff0c;来体验和观察一座城市&#xff0c;上海凭借丰富多元的文化特质&#xff0c;成为citywalk这种浪漫生活方式的流行地。 无论你是漫步在美术馆、画廊林…...

SpringBoot 如何处理跨域请求?你说的出几种方法?

引言&#xff1a;在现代的Web开发中&#xff0c;跨域请求&#xff08;Cross-Origin Resource Sharing&#xff0c;CORS&#xff09;是一个常见的挑战。随着前后端分离架构的流行&#xff0c;前端应用通常运行在一个与后端 API 不同的域名或端口上&#xff0c;这就导致了浏览器的…...

OV SSL证书年度成本概览:为企业安全护航的经济之选

在当今数字化时代&#xff0c;企业网站不仅是品牌展示的窗口&#xff0c;更是与客户沟通的桥梁。然而&#xff0c;随着网络威胁的不断升级&#xff0c;保护网站安全成为了企业不可忽视的任务。SSL证书&#xff0c;特别是OV SSL证书&#xff0c;因其对企业身份的严格验证&#x…...

歌尔气压计SPA06-003在无人机的创新应用

随着科技的不断进步&#xff0c;各类智能设备的功能日益强大&#xff0c;其中气压计作为一种能够测量大气压力的传感器&#xff0c;已被广泛应用于多种领域。歌尔气压计以其高精度、低功耗的特点&#xff0c;在无人机和智能手表上的应用尤为突出&#xff0c;为这两个领域的产品…...

python3多文件操作

1 介绍 有两个.py文件&#xff0c;分别为main.py和util.py&#xff0c;执行main.py时&#xff0c;调用util.py当中的函数。 main.py内容如下&#xff0c; import util if __name__ "__main__":a [3.0,4.0]length util.get_length_from_vec(a)print(f"leng…...

312. 戳气球

312. 戳气球 题目链接&#xff1a;312. 戳气球 代码如下&#xff1a; //参考链接:https://leetcode.cn/problems/burst-balloons/solutions/336390/chuo-qi-qiu-by-leetcode-solution class Solution { public:int maxCoins(vector<int>& nums) {int nnums.size()…...

深入理解C++中的锁

目录 1.基本互斥锁&#xff08;std::mutex&#xff09; 2.递归互斥锁&#xff08;std::recursive_mutex&#xff09; 3.带超时机制的互斥锁&#xff08;std::timed_mutex&#xff09; 4.带超时机制的递归互斥锁&#xff08;std::recursive_timed_mutex&#xff09; 5.共享…...

压缩pdf文件大小,压缩pdf文件大小软件哪个好

在数字化时代&#xff0c;PDF文件因其卓越的跨平台兼容性和稳定性而成为工作与学习的好帮手。然而&#xff0c;当PDF文件体积过大时&#xff0c;传输和存储便成了一项挑战。别担心&#xff0c;本文将为你揭秘如何快速压缩PDF文件&#xff0c;让你的文档轻装上路&#xff01; 压…...

PostgreSQL的系统视图pg_stat_wal_receiver

PostgreSQL的系统视图pg_stat_wal_receiver 在 PostgreSQL 中&#xff0c;pg_stat_wal_receiver 视图提供了关于 WAL&#xff08;Write-Ahead Logging&#xff09;接收进程的统计信息。WAL 接收器是 PostgreSQL 集群中流复制的一部分&#xff0c;它在从节点中工作&#xff0c;…...

软件运维服务方案(Word原件2024)

软件运维服务方案&#xff08;Word原件&#xff09; 1. 服务简述 我们提供全面的软件运维服务&#xff0c;确保软件系统的稳定运行。 1.1 服务内容 包括监控、维护、故障排查与优化。 1.2 服务方式 结合远程与现场服务&#xff0c;灵活响应客户需求。 1.3 服务要求 高效响应&am…...

AndroidStudio activity-1.8.0.aar依赖报错

在使用Androidstudio自帶的創建activity及配套 xml時&#xff0c;構建項目失敗&#xff0c;報錯内容&#xff1a; Null extracted folder for artifact: ResolvedArtifact(componentIdentifierandroidx.activity:activity:1.8.0, variantNamenull, artifactFileC:\Users\hhhh\.…...

MYSQL多个表进行笛卡尔积查询优化

如果A表和B表直接笛卡尔积进行条件查询 更改为A表条件查询&#xff0c;B表条件查询后再进行笛卡尔积进行查询 这样可以提高sql执行效率&#xff0c;说明原因如下 将直接进行笛卡尔积的查询优化为分别条件查询后再进行笛卡尔积可以显著提高SQL查询的执行效率。这种优化通常可以…...

tomcat8.5在windows下运行出现日志中文乱码

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…...

Unity Shader 软粒子

Unity Shader 软粒子 前言项目Shader连连看项目渲染管线设置 鸣谢 前言 当场景有点单调的时候&#xff0c;就需要一些粒子点缀&#xff0c;此时软粒子就可以发挥作用了。 使用软粒子与未使用软粒子对比图 项目 Shader连连看 这里插播一点&#xff0c;可以用Vertex Color与…...

“霸总雷军”发财报,又赢了

朋友们,5月23日,小米发布2024年Q1业绩公告。小米第一季度营收人民币755亿元,同比增长27%。雷军想必对今年的业绩是满意的。从2020年提出高端战略后,这是小米首次在财报中将其形容为“取得显著成效”。与之相对的是,2024年第一季度小米经调整净利润达人民币65亿元,同比增长…...

new CCDIKSolver( OOI.kira, iks ); // 创建逆运动学求解器

demo案例 new CCDIKSolver(OOI.kira, iks); 在使用某个特定的库或框架来创建一个逆运动学&#xff08;Inverse Kinematics, IK&#xff09;求解器实例。逆运动学在机器人学、动画和计算机图形学等领域中非常重要&#xff0c;它用于根据期望的末端执行器&#xff08;如机器人的…...

【busybox记录】【shell指令】unlink

目录 内容来源&#xff1a; 【GUN】【unlink】指令介绍 【busybox】【unlink】指令介绍 【linux】【unlink】指令介绍 使用示例&#xff1a; 删除文件 - 默认 常用组合指令&#xff1a; 指令不常用/组合用法还需继续挖掘&#xff1a; 内容来源&#xff1a; GUN &#x…...

电脑录屏怎么录?7个电脑录屏软件免费版强势来袭,赶快收藏!

电脑录屏怎么录&#xff1f;相信很多小伙伴们都不知道怎么在Windows电脑上录屏吧&#xff1f;在当今社会&#xff0c;随着互联网的快速发展&#xff0c;越来越多的小伙伴们开始通过制作视频内容来分享知识、展示技能或者记录生活。电脑录屏成为了一种简单高效的方式&#xff0c…...

Day27

Day27 反射案例 案例一&#xff1a;万能数组扩容 注意&#xff1a;copyOf、toString public class Test01 {/*** 知识点&#xff1a;反射案例 之 万能数组扩容* * 注意&#xff1a;copyOf、toString*/public static void main(String[] args) {String[] ss {"aaa"…...

SOL 交易机器人基本知识

有没有可以盈利的机器人&#xff1f; 是的&#xff0c;各行各业都有许多盈利机器人。在金融领域&#xff0c;交易机器人被广泛用于自动化投资策略并根据预定义的算法执行交易。这些机器人可以分析市场趋势并做出快速决策&#xff0c;从而可能带来可观的回报。同样&#xff0c;在…...