西瓜书第十一章——降维与度量学习

article/2025/7/27 21:33:21

请添加图片描述

文章目录

  • 降维与度量学习
    • k近邻学习原理
      • 头歌实战-numpy实现KNN
      • sklearn实现KNN
    • 降维——多维缩放(Multidimensional Scaling, MDS,MDS)提出背景与原理重述
      • 1.**提出背景**
      • 2.**数学建模与原理推导**
      • 3.**关键推导步骤**
    • Principal Component Analysis, PCA 主成分分析
      • 1.**提出背景与有效性基础**
      • 2.**优化问题的等价性证明**
      • 3.**数学求解与有效性保障**

降维与度量学习

k近邻学习原理

KNN有什么显著的特征?
第一是Lazy Learning,没有显式的训练阶段,实现非常简单
第二是直接支持多分类,而一些二分类模型例如SVM需要借助OvO或者OvM训练多个模型来进行多分类

KNN需要注意的点?
超参数k的选择非常非常重要,过小则过拟合,过大则欠拟合,因此需要进行进行多折交叉验证确定最佳的k
最后是需要对特征进行归一化防止大数吃小数

k近邻(k-Nearest Neighbor, kNN)是一种基于实例的监督学习算法,其核心机制为局部相似性归纳。给定测试样本,算法通过度量空间中的距离函数,从训练集中选取与之最近的k个样本,利用这些邻居的类别标签进行预测。最关键的是选取合适的k,k过小即过拟合,过大则欠拟合

在这里插入图片描述

  1. 天然支持多分类!
  2. 原理实现简单

具体流程如下:

  1. 距离度量
    设样本空间为 X ⊆ R n \mathcal{X} \subseteq \mathbb{R}^n XRn,给定距离函数 d : X × X → R + d:\mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R}^+ d:X×XR+(如闵可夫斯基距离 d p ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 / p d_{p}(\boldsymbol{x}_i,\boldsymbol{x}_j) = (\sum_{u=1}^n |x_{iu}-x_{ju}|^p)^{1/p} dp(xi,xj)=(u=1nxiuxjup)1/p),计算测试样本与所有训练样本的相似性。常见特例包括:

    • 曼哈顿距离 p = 1 p=1 p=1
    • 欧氏距离 p = 2 p=2 p=2
    • 切比雪夫距离 p → ∞ p \rightarrow \infty p
  2. 近邻选择
    根据距离排序,选择与测试样本距离最小的k个训练样本,构成邻域集合 N k ( x ) = { ( x i , y i ) ∈ D ∣ d ( x , x i ) ≤ d ( x , x ( k ) ) } N_k(\boldsymbol{x}) = \{ (\boldsymbol{x}_i,y_i) \in D \, | \, d(\boldsymbol{x},\boldsymbol{x}_i) \leq d(\boldsymbol{x},\boldsymbol{x}_{(k)}) \} Nk(x)={(xi,yi)Dd(x,xi)d(x,x(k))},其中 D D D为训练集, d ( x , x ( k ) ) d(\boldsymbol{x},\boldsymbol{x}_{(k)}) d(x,x(k))为第k小的距离值。

  3. 决策函数

    • 分类任务:采用多数投票法,即
      y = arg ⁡ max ⁡ c ∈ Y ∑ ( x i , y i ) ∈ N k ( x ) I ( y i = c ) y = \arg\max_{c \in \mathcal{Y}} \sum_{(\boldsymbol{x}_i,y_i) \in N_k(\boldsymbol{x})} \mathbb{I}(y_i = c) y=argcYmax(xi,yi)Nk(x)I(yi=c)
    • 回归任务:采用均值法,即
      y = 1 k ∑ ( x i , y i ) ∈ N k ( x ) y i y = \frac{1}{k} \sum_{(\boldsymbol{x}_i,y_i) \in N_k(\boldsymbol{x})} y_i y=k1(xi,yi)Nk(x)yi
  4. 关键参数与优化

    • k值选择:通过交叉验证确定最优k值。较小k值易受噪声干扰(过拟合),较大k值导致决策边界模糊(欠拟合)。
    • 维度归一化:对特征进行标准化处理(如Z-score),消除量纲差异对距离度量的影响。
    • 距离加权:引入权值函数(如 w i = 1 / d ( x , x i ) w_i = 1/d(\boldsymbol{x},\boldsymbol{x}_i) wi=1/d(x,xi)),使近邻对决策的贡献度随距离衰减。
  5. 算法特性

    • 懒惰学习(Lazy Learning):无显式训练阶段,计算延迟至预测时执行。
    • 维度敏感性:高维数据下,样本稀疏性与距离计算复杂度显著增加,需结合降维技术(如PCA、LDA)优化性能。
    • 决策边界:kNN生成的决策边界为非线性分段超平面,模型复杂度随k值增大而降低。

理论依据
kNN的泛化误差收敛性由Cover和Hart定理保证:当训练样本趋于无限且 k → ∞ k \rightarrow \infty k k / n → 0 k/n \rightarrow 0 k/n0时,分类错误率不超过贝叶斯最优错误率的两倍。该性质揭示了kNN在渐进意义下的统计合理性。

头歌实战-numpy实现KNN

#encoding=utf8
import numpy as np
from collections import Counterclass kNNClassifier(object):def __init__(self, k):'''初始化函数:param k:kNN算法中的k'''self.k = k# 用来存放训练数据,类型为ndarrayself.train_feature = None# 用来存放训练标签,类型为ndarrayself.train_label = Nonedef fit(self, feature, label):'''kNN算法的训练过程:param feature: 训练集数据,类型为ndarray:param label: 训练集标签,类型为ndarray:return: 无返回'''#********* Begin *********#self.train_feature=featureself.train_label=label#********* End *********#def predict(self, feature):'''kNN算法的预测过程:param feature: 测试集数据,类型为ndarray:return: 预测结果,类型为ndarray或list'''#********* Begin *********##测试集中的feature也是多个的predict=[]#需要遍历测试集中的featurefor sample in feature:distance=np.sum((sample-self.train_feature)**2,axis=1)**(1.0/2)#(samples,)#获取前k个近邻的索引index=np.argsort(distance)[:self.k]  #获取这几个索引的labelpre_label=self.train_label[index]#统计每个标签的频次label_count=Counter(pre_label)#字典数据Counter({#label1: count1,#label2: count2,#...#})#找出次数最多的标签所对应的次数,因此这个max_count事实上是一个整数max_count = max(label_count.values())most_common_labels = [label for label , count in label_count.items() if count== max_count]#事实上,还需要处理频次相同的情况,但是此处只需要0.9的正确率就够了predict.append(most_common_labels[0])return predict#********* End *********#

sklearn实现KNN

from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScalerdef classification(train_feature, train_label, test_feature):'''对test_feature进行红酒分类:param train_feature: 训练集数据,类型为ndarray:param train_label: 训练集标签,类型为ndarray:param test_feature: 测试集数据,类型为ndarray:return: 测试集数据的分类结果'''#********* Begin *********## 实例化StandardScaler对象scaler = StandardScaler()after_scaler_train = scaler.fit_transform(train_feature)after_scaler_test = scaler.fit_transform(test_feature)#生成K近邻分类器clf=KNeighborsClassifier(n_neighbors=8,p=2) #训练分类器clf.fit(after_scaler_train,train_label)#进行预测predict_result=clf.predict(after_scaler_test)return predict_result#********* End **********#

降维——多维缩放(Multidimensional Scaling, MDS,MDS)提出背景与原理重述

1.提出背景

在高维数据分析中,降维操作需满足拓扑不变性约束:降维后的低维空间应保持原始高维空间中样本间距离的全局几何关系。多维缩放(Multidimensional Scaling, MDS)的核心目标即通过数学变换,将原始样本投影至低维嵌入空间,使得任意两样本在低维空间中的欧氏距离与原始空间中的广义距离严格一致,从而避免降维导致的样本分布畸变。


2.数学建模与原理推导

设原始空间存在 m m m个样本,其距离矩阵为 D ∈ R m × m \boldsymbol{D} \in \mathbb{R}^{m \times m} DRm×m,其中 D i j D_{ij} Dij表示样本 x i \boldsymbol{x}_i xi x j \boldsymbol{x}_j xj的原始距离(不限定欧氏距离)。MDS要求构造低维坐标矩阵 Z ∈ R m × d ′ \boldsymbol{Z} \in \mathbb{R}^{m \times d'} ZRm×d d ′ ≪ d d' \ll d dd),使得两样本在高维空间的距离等于投影之后在低位空间中的欧式距离
∥ z i − z j ∥ 2 = D i j , ∀ i , j ∈ { 1 , 2 , . . . , m } \|\boldsymbol{z}_i - \boldsymbol{z}_j\|_2 = D_{ij}, \quad \forall i,j \in \{1,2,...,m\} zizj2=Dij,i,j{1,2,...,m}

3.关键推导步骤

  1. 中心化约束
    令低维坐标矩阵 Z \boldsymbol{Z} Z满足中心化条件: ∑ i = 1 m z i = 0 \sum_{i=1}^m \boldsymbol{z}_i = \boldsymbol{0} i=1mzi=0。此时,内积矩阵 B = Z Z ⊤ ∈ R m × m \boldsymbol{B} = \boldsymbol{Z}\boldsymbol{Z}^\top \in \mathbb{R}^{m \times m} B=ZZRm×m的每行(列)和为0,即:
    ∑ i = 1 m B i j = ∑ j = 1 m B i j = 0 \sum_{i=1}^m B_{ij} = \sum_{j=1}^m B_{ij} = 0 i=1mBij=j=1mBij=0

  2. 距离与内积的转换
    低维欧氏距离平方可展开为:
    D i j 2 = ∥ z i ∥ 2 + ∥ z j ∥ 2 − 2 z i ⊤ z j D_{ij}^2 = \|\boldsymbol{z}_i\|^2 + \|\boldsymbol{z}_j\|^2 - 2\boldsymbol{z}_i^\top \boldsymbol{z}_j Dij2=zi2+zj22zizj
    结合中心化条件,定义辅助变量:

    • 行内积均值: T i = 1 m ∑ j = 1 m B i j T_i = \frac{1}{m} \sum_{j=1}^m B_{ij} Ti=m1j=1mBij
    • 全局内积均值: T = 1 m 2 ∑ i = 1 m ∑ j = 1 m B i j T = \frac{1}{m^2} \sum_{i=1}^m \sum_{j=1}^m B_{ij} T=m21i=1mj=1mBij

    通过代数运算可得内积矩阵元素:
    B i j = − 1 2 ( D i j 2 − T i − T j + T ) B_{ij} = -\frac{1}{2} \left( D_{ij}^2 - T_i - T_j + T \right) Bij=21(Dij2TiTj+T)

  3. 矩阵重构与特征分解
    B \boldsymbol{B} B进行特征值分解:
    B = V Λ V ⊤ \boldsymbol{B} = \boldsymbol{V} \boldsymbol{\Lambda} \boldsymbol{V}^\top B=VΛV
    其中 Λ = diag ( λ 1 , λ 2 , . . . , λ m ) \boldsymbol{\Lambda} = \text{diag}(\lambda_1, \lambda_2, ..., \lambda_m) Λ=diag(λ1,λ2,...,λm)为特征值对角矩阵(降序排列), V \boldsymbol{V} V为对应特征向量矩阵。选取前 d ′ d' d个正特征值及其特征向量,则低维坐标为:
    Z = V [ : , 1 : d ′ ] Λ [ 1 : d ′ , 1 : d ′ ] 1 / 2 \boldsymbol{Z} = \boldsymbol{V}_{[:,1:d']} \boldsymbol{\Lambda}_{[1:d',1:d']}^{1/2} Z=V[:,1:d]Λ[1:d,1:d]1/2


算法流程

  1. 输入:距离矩阵 D ∈ R m × m \boldsymbol{D} \in \mathbb{R}^{m \times m} DRm×m,目标维度 d ′ d' d
  2. 计算内积矩阵
    • 计算双中心化矩阵:
      B i j = − 1 2 ( D i j 2 − 1 m ∑ k = 1 m D i k 2 − 1 m ∑ k = 1 m D k j 2 + 1 m 2 ∑ k = 1 m ∑ l = 1 m D k l 2 ) B_{ij} = -\frac{1}{2} \left( D_{ij}^2 - \frac{1}{m} \sum_{k=1}^m D_{ik}^2 - \frac{1}{m} \sum_{k=1}^m D_{kj}^2 + \frac{1}{m^2} \sum_{k=1}^m \sum_{l=1}^m D_{kl}^2 \right) Bij=21(Dij2m1k=1mDik2m1k=1mDkj2+m21k=1ml=1mDkl2)
  3. 特征分解
    • B \boldsymbol{B} B进行特征分解,保留前 d ′ d' d最大正特征值及对应特征向量
  4. 输出:低维坐标矩阵 Z ∈ R m × d ′ \boldsymbol{Z} \in \mathbb{R}^{m \times d'} ZRm×d

理论意义与局限性

  • 保距性:MDS严格保持样本间距离,适用于欧氏距离保持场景
  • 计算复杂度特征分解 复杂度为 O ( m 3 ) O(m^3) O(m3),不适用于大规模数据
  • 扩展性:经典MDS假设原始距离为欧氏距离,对非度量型距离需采用非度量MDS变体

Principal Component Analysis, PCA 主成分分析

为什么PCA有效?
从最大可分性的角度理解,我们要求降维后的样本在低位空间上仍然能够做到坐标间的方差最大化,使得数据分布能尽可能分散以增强可分性。然而,以协方差矩阵的特征值最大的特征向量方向投影就是能够最大化可分性目标的做法两者是等价的。

PCA的过程是什么?
首先对每个样本点减去特征均值,然后 X X T XX^T XXT获得协方差矩阵。然后特征分解求得前d个最大的特征值,将这些特征值的特征向量作为投影的矩阵。达到降维的目的

PCA有什么局限?
只能捕捉线性结构的特征,对于非线性流形需要引入kernel PCA

1.提出背景与有效性基础

主成分分析(Principal Component Analysis, PCA)作为线性降维技术的代表,其有效性建立在统计最优性准则几何投影理论的等价性上。面对高维数据中普遍存在的特征冗余与维度灾难问题,主成分分析(PCA)直接通过一个线性变换,将原始空间中的样本投影到新的低维空间中。简单来理解这一过程便是:PCA采用一组新的基来表示样本点,其中每一个基向量都是原来基向量的线性组合,通过使用尽可能少的新基向量来表出样本,从而达到降维的目的

  1. 最近重构性(Minimum Reconstruction Error)
    要求投影后的低维坐标能最大程度保留原始高维数据的拓扑结构,即样本点到投影超平面的垂直距离平方和最小:
    min ⁡ W ⊤ W = I ∑ i = 1 m ∥ x i − W W ⊤ x i ∥ 2 \min_{\boldsymbol{W}^\top\boldsymbol{W} = \boldsymbol{I}} \sum_{i=1}^m \|\boldsymbol{x}_i - \boldsymbol{W}\boldsymbol{W}^\top\boldsymbol{x}_i\|^2 WW=Imini=1mxiWWxi2
    其中 W ∈ R d × d ′ \boldsymbol{W} \in \mathbb{R}^{d \times d'} WRd×d为投影矩阵,约束条件 W ⊤ W = I \boldsymbol{W}^\top\boldsymbol{W} = \boldsymbol{I} WW=I保证基向量正交归一化。

  2. 最大可分性(Maximum Variance Projection)
    要求投影后样本在低维空间的坐标方差最大化,使数据分布尽可能分散以增强可分性
    max ⁡ W ⊤ W = I tr ( W ⊤ X ⊤ X W ) \max_{\boldsymbol{W}^\top\boldsymbol{W} = \boldsymbol{I}} \text{tr}\left( \boldsymbol{W}^\top\boldsymbol{X}^\top\boldsymbol{X}\boldsymbol{W} \right) WW=Imaxtr(WXXW)
    此处 X ∈ R m × d \boldsymbol{X} \in \mathbb{R}^{m \times d} XRm×d为数据中心化后的样本矩阵,协方差矩阵 Σ = 1 m X ⊤ X \boldsymbol{\Sigma} = \frac{1}{m}\boldsymbol{X}^\top\boldsymbol{X} Σ=m1XX因此事实上沿着协方差矩阵特征值较大的特征向量的方向投影就使得投影之后的方差较大

2.优化问题的等价性证明

通过代数变换可证上述两目标函数等价:
∑ i = 1 m ∥ x i − W W ⊤ x i ∥ 2 = tr ( X ⊤ X ) − tr ( W ⊤ X ⊤ X W ) \sum_{i=1}^m \|\boldsymbol{x}_i - \boldsymbol{W}\boldsymbol{W}^\top\boldsymbol{x}_i\|^2 = \text{tr}(\boldsymbol{X}^\top\boldsymbol{X}) - \text{tr}(\boldsymbol{W}^\top\boldsymbol{X}^\top\boldsymbol{X}\boldsymbol{W}) i=1mxiWWxi2=tr(XX)tr(WXXW)
因此,最小化重构误差等价于最大化投影方差。此等价性揭示了PCA在信息压缩与特征保持之间的根本一致性。

3.数学求解与有效性保障

对协方差矩阵 Σ \boldsymbol{\Sigma} Σ进行特征值分解:
Σ = V Λ V ⊤ \boldsymbol{\Sigma} = \boldsymbol{V} \boldsymbol{\Lambda} \boldsymbol{V}^\top Σ=VΛV
其中特征向量矩阵 V = [ v 1 , v 2 , . . . , v d ] \boldsymbol{V} = [\boldsymbol{v}_1, \boldsymbol{v}_2, ..., \boldsymbol{v}_d] V=[v1,v2,...,vd]对应特征值降序排列 λ 1 ≥ λ 2 ≥ . . . ≥ λ d \lambda_1 \geq \lambda_2 \geq ... \geq \lambda_d λ1λ2...λd。选取前 d ′ d' d个特征向量构成投影矩阵 W = [ v 1 , v 2 , . . . , v d ′ ] \boldsymbol{W} = [\boldsymbol{v}_1, \boldsymbol{v}_2, ..., \boldsymbol{v}_{d'}] W=[v1,v2,...,vd],其有效性由以下理论保证:

  • Karhunen-Loève定理:正交投影下,PCA是保留样本二阶统计量(协方差)的最优线性降维方法。
  • 方差解释率:主成分方差 λ i \lambda_i λi反映数据在该方向的信息量,累计贡献率 ∑ i = 1 d ′ λ i / ∑ i = 1 d λ i \sum_{i=1}^{d'}\lambda_i / \sum_{i=1}^d \lambda_i i=1dλi/i=1dλi量化降维后的信息保留程度。

算法优势与适用性

  1. 去相关特性:主成分坐标间协方差为0,消除特征冗余。
  2. 计算高效性:基于协方差矩阵的特征分解,时间复杂度为 O ( d 3 ) O(d^3) O(d3),适合中等维度数据。
  3. 去噪能力:舍弃小特征值对应的成分,可滤除低方差方向的高频噪声。

局限性

  • 仅捕捉线性结构,对非线性流形需引入核方法(Kernel PCA)
  • 方差最大化可能忽略判别信息,分类任务中需结合LDA等监督降维方法。
    在这里插入图片描述

通过最大化数据内在方差与最小化信息损失的双重优化,PCA构建了高维数据在低维空间的最优线性表征,其数学严密性与计算可行性奠定了其作为基础降维技术的核心地位。


http://www.hkcw.cn/article/ZqigEkASBc.shtml

相关文章

20250531MATLAB三维绘图

MATLAB三维绘图 三维曲线:plot3功能介绍代码实现过程plot3实现效果 三维曲面空间曲面作图命令:meshmeshgrid语法示例应用meshgrid实操训练 peakspeaks 的基本用法peaks数学表达式实操训练自定义网格大小使用自定义网格 meshMATLAB代码对齐快捷键Ctrli墨西…

郑钦文称打5盘都没问题可惜没有 能量满满晋级八强

6月1日,法网女单16强决战中,中国选手郑钦文经过2小时47分钟的激战,以2-1战胜俄罗斯名将萨姆索诺娃,赢得罗兰-加洛斯的10连胜,首次闯入法网八强。接下来她将对阵萨巴伦卡。首盘比赛中,郑钦文两次被破发后都顽强回破,最终在抢七局中以7-5拿下第一盘。第二盘,郑钦文错失了…

张振朗称《刑侦12》让我过足戏瘾 挑战“人格解离症”角色

由钟澍佳总监制,巢志豪监制,林保怡、陈法蓉、张振朗等领衔主演的TVB刑侦悬疑剧《刑侦12》正在腾讯视频和TVB翡翠台热播。这是张振朗近一年来第三次饰演警员角色。与此前的《反黑英雄》《夺命提示》不同的是,他在《刑侦12》中饰演的刑凯有点“怪”——因为儿时的原生家庭创伤…

魏建军回应邀71岁车手参加拉力赛 精神榜样引热议

在新疆塔克拉玛干N39沙漠落幕的环塔拉力赛现场,长城汽车董事长魏建军回应了邀请71岁车手梁钰祥参赛的原因。此次比赛,长城汽车派出强大阵容,时隔十年再次以多品牌联合形式参赛。梁钰祥驾驶坦克500 Hi4-Z参与T2量产组比赛,在恶劣的沙漠环境和复杂的地形中稳扎稳打,展现了高…

花两千买苹果15被说一眼假 山寨机陷阱需警惕

金华兰溪的杨先生最近经历了一件让人无奈的事。他在直播间花2000元买了一部512G的苹果15 Pro Max,以为捡了大便宜,但到手后发现手机问题不断。从外观、桌面到应用图标,乍一看确实像苹果手机,但点开APP Store时出现的“手机助手”字样立刻暴露了真相,原来这是一部披着苹果外…

柳岩因卡鱼刺进了医院 分享就医经历提醒众人

6月1日,湘籍女星柳岩分享了自己去医院取鱼刺的经历,并提醒大家喉咙卡鱼刺时应尽快就医。她写道:“卡鱼刺是常发生的事,去医院取鱼刺是第一次,无论如何,不要跟鱼刺搏斗,越早去医院,越早解脱,医院技术很好,完全不遭罪。”柳岩出生于湖南省衡阳市,毕业于湖南师范大学,…

一场来自云端的生死自救 当事人讲述更多逃生细节

5月24日,在甘肃省西部的祁连山区域,55岁的滑翔伞爱好者彭玉江在进行地面日常训练时,意外遭遇异常天气状况,被强对流云团卷入后以极快的速度上升至海拔8000多米的高空,这一高度远超普通滑翔伞飞行的安全极限。但他仍坚持住有意识控伞,冲出云层,最后安全着陆。事后,甘肃省…

樊振东留洋是主动走出舒适区 开启乒乓新篇章

2025年6月1日,德国乒乓球甲级联赛(TTBL)的FC萨尔布吕肯俱乐部宣布奥运冠军樊振东正式加盟,将以“欧洲冒险者”的身份征战新赛季。这一消息在国际乒坛引起轰动。与以往中国球员短期留洋不同,樊振东的主动选择不仅体现了个人职业规划的突破,也标志着中国乒乓球运动员国际化…

猎德征婚小伙称微信被加爆 “两栋楼”引热议

5月31日,广州天河猎德村迎来一年一度的龙舟招景盛会,超过150条龙舟齐聚猎德涌,现场热闹非凡。在这场传统活动中,一位小伙的独特征婚方式吸引了所有人的目光。这位姓李的小伙来自广州海珠区仑头,出生于1990年,身高超过1米7,单身已有三年。他身穿龙舟服,胸前挂着写有“两…

opencv使用经典bug

opencv经典bug 1.bug介绍2.解决方案 1.bug介绍 D:\anaconda3\envs\yolo11s\python.exe F:\BYSJ\LX\yolov11-main\OCR_plateRecognition\plateRevise.py Traceback (most recent call last): File "F:\BYSJ\LX\yolov11-main\OCR_plateRecognition\plateRevise.py", l…

性能优化 - 案例篇:缓存_Guava#LoadingCache设计

文章目录 Pre引言1. 缓存基本概念2. Guava 的 LoadingCache2.1 引入依赖与初始化2.2 手动 put 与自动加载(CacheLoader)2.2.1 示例代码 2.3 缓存移除与监听(invalidate removalListener) 3. 缓存回收策略3.1 基于容量的回收&…

纯汇编自制操作系统(四、应用程序等的实现)

本项目已在Github开源:Plain-OS shell.asm ;shell.asm [bits 32]extern scroll_screen [section .data] ; Shell界面 msg db "[rootPlain]-(/)# ", 0 cmd_buffer times 80 db 0; 命令定义 cmd_echo db "echo", 0 cmd_help db "help"…

基于Android的跳蚤市场_springboot+vue

开发语言:Java框架:springboot AndroidJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.6 系统展示 APP登录 A…

概念篇:软件测试

文章目录 定义软件测试开发工程师和测试工程师的区别其他不同自动化测试技术需求的概念开发模型瀑布模型螺旋模型增量模型和迭代模型 定义 1. 软件测试就是验证软件产品特性是否满足用户的需求 2. 产品特性:功能,性能,界面,易用性…

Redis最佳实践——电商应用的性能监控与告警体系设计详解

Redis 在电商应用的性能监控与告警体系设计 一、原子级监控指标深度拆解 1. 内存维度监控 核心指标: # 实时内存组成分析(单位字节) used_memory: 物理内存总量 used_memory_dataset: 数据集占用量 used_memory_overhead: 管理开销内存 us…

郑钦文取胜后直接倒地庆祝 艰苦胜利展现顽强斗志

北京时间6月1日,2025年法网女单第四轮比赛中,中国选手郑钦文经过3盘苦战,以7-6(5)/1-6/6-3战胜萨姆索诺娃,首次晋级法网八强。这也是自2011年李娜以来,首位在法网打进女单八强的中国选手。比赛耗时2小时47分钟,胜利后郑钦文兴奋倒地庆祝。这场比赛对郑钦文来说非常艰苦。…

微软前交易主管瞄准新私募股权基金 聚焦AI与并购

克里斯・杨正计划设立一只私募股权基金,专注于收购公司、进行合并,并利用人工智能提升其运营效率。他曾领导微软风险投资和并购团队长达五年,已向昔日同事透露了他的计划。杨对收购医疗保健公司以及网络安全等软件行业企业表现出浓厚兴趣。此前,独立投资者埃拉德・吉尔和贝…

韩警方介入调查菲籍孕妇分娩悲剧 飞行途中新生儿不幸夭折

韩国济州航空一架客机1日发生意外事件,一名菲律宾籍孕妇在飞行途中足月分娩,新生儿因无呼吸心跳,经紧急送医后仍不幸死亡。目前韩国警方已展开调查。仁川机场警方表示,当日清晨6时44分接到通报,称“飞机上出生的婴儿没有呼吸”。该婴儿在心跳停止状态下被紧急送医,最终抢…

雷军再发文回应被质疑 反击华为质疑

2025年的汽车圈注定不平静。华为常务董事余承东在公开场合“暗讽”友商“产品不行却靠营销卖爆”,小米总裁卢伟冰与雷军接连发文反击,一句“诋毁,本身就是一种仰望”将矛盾推向高潮。这场看似“口水战”的交锋背后,实则是国产车企在流量时代争夺市场话语权的生死博弈。5月3…

孩子喝牛奶过敏别慌 这份应对指南超实用

在儿童的成长过程中,牛奶作为重要的营养来源,被广泛用于满足孩子们的生长需求。然而,对于一部分孩子来说,牛奶却可能成为健康的威胁。牛奶过敏,这一看似不起眼却暗藏危险的问题,正逐渐引起家长和社会的广泛关注。今天,“健康北京”带领家长们深入探讨孩子喝牛奶过敏的相…