基于实例的学习方法

基于实例的学习方法

  • 动机
  • 基本概念
      • 基于实例的学习
        • 基于实例的概念表示
    • 1. 最近邻
      • 最近邻的例子
      • 理论结果
      • 最近邻(1- NN):解释
      • 问题
  • K-近邻(KNN)
    • KNN讨论1 :距离度量
    • KNN 讨论2:属性
      • KNN:属性归一化
      • KNN:属性加权
    • KNN讨论3:连续取值目标函数
    • KNN讨论4 : k的选择
    • KNN讨论5:打破平局
    • KNN 讨论 6: 关于效率
      • KD-Tree: ( 1) 构建
      • KD-Tree: ( 2) 查询
    • KNN 总览:优点与缺点
      • 优点
      • 缺点
    • 下一个问题
  • 距离加权 KNN (Distance-weighted KNN)
    • 距离加权 KNN
    • 回顾
    • 基于实例/记忆的学习器: 4 个要素
      • 1-NN
      • K-NN
      • 距离加权 KNN
  • 扩展:局部加权回归 (Locally weighted regression)
    • 局部加权回归 (例子)
    • 局部加权回归
  • 真实测试样例下 不同基于实例的算法表现举例
    • 线性回归
    • 1- 近邻
    • K -近邻(k=9)
    • 距离加权回归(核回归)
    • 局部加权回归
  • 懒惰学习与贪婪学习 Lazy learner and Eager Learner
    • 不同的学习方法
      • 懒惰学习vs. 贪婪学习
        • 懒惰
        • 贪婪
  • 基于实例的学 习总结

动机

  • 之前【三步走】的学习方法

    • 估计问题特性(如分布)
    • 做出模型假设
      • LSE,Decision Tree,MAP,MLE,Naive Bayes ,…
    • 找到最优的参数
  • 有没有一种学习方法**不遵循【模型假设+参数估计】

  • 人们通过记忆和行动来推理学习

  • 思考即回忆、进行类比Thinking is reminding,making analogies

  • One takes the behavior of one’s company[近朱者赤,近墨者黑]

在这里插入图片描述

基本概念

  • 参数化(Parametric) vs.非参数化(Non-parametric)

    • 参数化:
      • 设定一个特定的函数形式
      • 优点:简单,容易估计和解释
      • 可能存在很大的偏置:实际的数据分布可能不遵循假设的分布
  • 非参数化:

    • 分布或密度的估计是数据驱动的(data-driven)
    • 需要事先对函数形式作的估计相对更少
  • Instance-Based Learning (IBL):基于实例的学习
    or Instance Based Methods (IBM):基于实例的方法

  • Memory-Based Learning :基于记忆的学习

  • Case-Based Learning :基于样例的学习

  • Similarity-Based Learning :基于相似度的学习

  • Case-Based Reasoning :基于样例的推理

  • Memory-Based Reasoning :基于记忆的推理

  • Similarity-Based Reasoning :基于相似度的推理

基于实例的学习

  • 无需构建模型一一仅存储所有训练样例
  • 直到有新样例需要分类才开始进行处理
    在这里插入图片描述

基于实例的概念表示

  • 一个概念 c i c_i ci可以表示为:
    • 样例的集合 c i = { e i 1 , e i 2 , . . . } c_i = \{e_{i1}, e_{i2},...\} ci={ei1,ei2,...},
    • 一个相似度估计函数 f f f,以及
    • —个阈值0
  • 一个实例’a’属于概念 c i c_i ci,当
    • 'a’和ci的某些ej相似,并且
    • f ( e j , a ) > θ f(e_j, a)>\theta f(ej,a)>θ

1. 最近邻

  • 相似度 ← → 距离 相似度\leftarrow\rightarrow距离 相似度←→距离
    在这里插入图片描述

最近邻的例子

信用评分
分类:好/坏
特征:

  • L = 延迟还款/年
  • R =收入/花销
nameLRG/P
A01.2G
B250.4P
C50.7G
D200.8P
E300.85P
F111.2G
G71.15G
H150.8P

在这里插入图片描述

nameLRG/P
I61.15?
J220.45?
K151.2?

在这里插入图片描述

距离度量:

  • 缩放距离 ( L 1 − L 2 ) 2 + ( 10 R 1 − 10 R 2 ) 2 \sqrt{(L_1 - L_2)^2 + (10R_1-10R_2)^2} (L1L2)2+(10R110R2)2

理论结果

  • 无限多训练样本下1-NN的错误率界限:
    E r r ( B y t e s ) ≤ E r r ( 1 − N N ) ≤ E r r ( B y t e s ) ( 2 − K K − 1 E r r ( B a y e s ) ) Err(Bytes)\le Err(1-NN) \le Err(Bytes)\left(2-\frac{K}{K-1}Err(Bayes)\right) Err(Bytes)Err(1NN)Err(Bytes)(2K1KErr(Bayes))
  • 证明很长(参照Duda et al, 2000)
  • 因此1-NN的错误率不大于Bayes方法错误率的2倍

最近邻(1- NN):解释

在这里插入图片描述

  • Voronoi Diagram

  • Voronoi tessellation

  • 也称为 Dirichlet tessellation

  • Voronoi decomposition

  • 对于任意欧氏空间的离散点集合S,以及几乎所有的点x, S中一定有一个和x最接近的点

    • -没有说“所有的点”是因为有些点可能和两个或多个点距离相等(在边界上)

问题

在这里插入图片描述

  • 最近邻的点是噪音怎么办?
  • 解决方法
    • 用不止一个邻居
    • 在邻居中进行投票 → \rightarrow k-近邻(KNN)

K-近邻(KNN)

KNN:示例(3-NN)

顾客年龄收入(K)卡片数结果距David距离
John35353No ( 35 − 27 ) 2 + ( 35 − 50 ) 2 + ( 3 − 2 ) 2 = 15.16 \sqrt{(35-27)^2+(35-50)^2+(3-2)^2}=15.16 (3527)2+(3550)2+(32)2 =15.16
Mary22502Yes ( 22 − 37 ) 2 + ( 50 − 50 ) 2 + ( 2 − 2 ) 2 = 15 \sqrt{(22-37)^2+(50-50)^2+(2-2)^2}=15 (2237)2+(5050)2+(22)2 =15
Hannah632001No ( 63 − 37 ) 2 + ( 200 − 50 ) 2 + ( 1 − 2 ) 2 = 152.23 \sqrt{(63-37)^2+(200-50)^2+(1-2)^2}=152.23 (6337)2+(20050)2+(12)2 =152.23
Tom591701No ( 59 − 37 ) 2 + ( 170 − 50 ) 2 + ( 1 − 2 ) 2 = 122 \sqrt{(59-37)^2+(170-50)^2+(1-2)^2}=122 (5937)2+(17050)2+(12)2 =122
Nellie25404Yes ( 25 − 37 ) 2 + ( 40 − 50 ) 2 + ( 4 − 2 ) 2 = 15.74 \sqrt{(25-37)^2+(40-50)^2+(4-2)^2}=15.74 (2537)2+(4050)2+(42)2 =15.74
David37502Yes-

KNN讨论1 :距离度量

在这里插入图片描述
在这里插入图片描述

  • Minkowski或 L λ L_\lambda Lλ度量: d ( i , j ) = ( ∑ k = 1 p ∣ x k ( i ) − x k ( j ) ∣ λ ) 1 λ d(i,j)=\left(\sum_{k=1}^{p}|x_k(i)-x_k(j)|^\lambda\right)^{\frac{1}{\lambda}} d(i,j)=(k=1pxk(i)xk(j)λ)λ1
  • 欧几里得距离 ( λ = 2 ) (\lambda=2) (λ=2) d i j = ∑ k = 1 p ( x i k − x j k ) 2 d_{ij}=\sqrt{\sum_{k=1}^{p}(x_{ik}-x_{jk})^2} dij=k=1p(xikxjk)2
  • 曼哈顿距离 Manhattan Distance
    城市街区距离City block Dis.
    出租车距离 Taxi Distance
    或L1度量( λ = 1 \lambda=1 λ=1): d ( i , j ) = ∑ k = 1 p ∣ x k ( i ) − x k ( j ) ∣ d(i,j)=\sum_{k=1}^{p}|x_k(i)-x_k(j)| d(i,j)=k=1pxk(i)xk(j)
    在这里插入图片描述
  • •切比雪夫距离(Chebyshev Distance)
    棋盘距离(Chessboard Dis.)
    L ∞ L_{\infty} L
    d ( i , j ) = m a x k ∣ x k ( i ) − x k ( j ) ∣ d(i,j)=\underset{k}{max}|x_k(i)-x_k(j)| d(i,j)=kmaxxk(i)xk(j)
  • 加权欧氏距离
    Mean Censored Euclidean
    Weighted Euclidean Distance
    ∑ k ( x j k − x j k ) 2 / n \sqrt{\sum_k(x_{jk}-x_{jk})^2/n} k(xjkxjk)2/n
  • • Bray-Curtis Dist ∑ k ∣ x j k − x j k ∣ / ∑ k ( x j k − x j k ) \sum_{k} |x_{jk}-x_{jk}|\bigg/\sum_{k} (x_{jk}-x_{jk}) kxjkxjk/k(xjkxjk)
  • •堪培拉距离C anberra Dist. ∑ k ∣ x j k − x j k ∣ / ( x j k − x j k ) k \frac{\sum_{k} {|x_{jk}-x_{jk}|\big/(x_{jk}-x_{jk})}}{k} kkxjkxjk/(xjkxjk)

KNN 讨论2:属性

在这里插入图片描述

  • 邻居间的距离可能被某些取值特别大的属性所支配
    • e.g.收入 D i s ( J o h n , R a c h e l ) = ( 35 − 45 ) 2 + ( 95000 − 215000 ) 2 + ( 3 − 2 ) 2 Dis(John, Rachel)=\sqrt {(35-45)^2 + (95000-215000)^2+(3-2)^2} Dis(John,Rachel)=(3545)2+(95000215000)2+(32)2
      -对特征进行归一化是非常重要的(e.g.,把数值归一化到[0-1])
    • Log, Min-Max, Sum,…

KNN:属性归一化

顾客年龄收入(K)卡片数结果
John35/63=0.5535/200=0.1753/4=0.75No
Mary22/63=0.3450/200=0.252/4=0.5Yes
Hannah63/63=1200/200=11/4=0.25No
Tom59/63=0.93170/200=0.851/4=0.25No
Nellie25/63=0.3940/200=0.24/4=1Yes
David37/63=0.5850/200=0.252/4=0.5Yes

KNN:属性加权

  • 一个样例的分类是基于所有属性的
    • 与属性的相关性无关——无关的属性也会被使用进来
  • 根据每个属性的相关性进行加权 e.g d W E ( i , j ) = ( ∑ k = 1 p w k ( x k ( i ) − x k ( j ) ) 2 ) 1 2 d_{WE}(i,j)=\left(\sum_{k=1}^{p}w_k(x_k(i)-x_k(j))^2\right)^\frac{1}{2} dWE(i,j)=(k=1pwk(xk(i)xk(j))2)21
  • **在距离空间对维度进行缩放 **
    • wk = 0 → \rightarrow 消除对应维度(特征选择)
      一个可能的加权方法
      使用互信息/(属性,类别)
      I ( X , Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X,Y) = H(X)+H(Y)-H(X,Y) I(X,Y)=H(X)+H(Y)H(X,Y) H:熵(entropy)
      H ( X , Y ) = − ∑ p ( x , y ) l o g p ( x , y ) H(X,Y) = -\sum p(x,y)logp(x,y) H(X,Y)=p(x,y)logp(x,y) 联合熵 (joint entropy)

KNN讨论3:连续取值目标函数

  • 离散输出-投票
  • 连续取值目标函数
    • k个近邻训练样例的均值
      红色:实例的真实值蓝色:估计值 红色:实例的真实值 蓝色:估计值 红色:实例的真实值蓝色:估计值
      在这里插入图片描述

KNN讨论4 : k的选择

  • 多数情况下k=3
  • 取决于训练样例的数目
    • 更大的k不一定带来更好的效果
  • 交叉验证
    • Leave-one-out (Throw-one-out, Hold-one-out)
      • 每次:拿一个样例作为测试,所有其他的作为训练样例
  • KNN是稳定的
    • 样例中小的混乱不会对结果有非常大的影响

KNN讨论5:打破平局

在这里插入图片描述

  • 如果k=3并且每个近邻都属于不同的类 ?
    • P(W|X)=1/3 尸2
    • 或者找一个新的邻居(4th)
    • 或者取最近的邻居所属类
    • 或者随机选一个
    • 或者 …

「之后会讨论一个更好的解决方案

KNN 讨论 6: 关于效率

  • KNN算法把所有的计算放在新实例来到时,实时计算开销大
  • 加速对最近邻居的选择
    • 先检验临近的点
    • 忽略比目前找到最近的点更远的点
  • 通过 KD-tree 来实现:
    • KD-tree: k 维度的树 (数据点的维度是 k)
    • 基于树的数据结构
    • 递归地将点划分到和坐标轴平行的方形区域内

KD-Tree: ( 1) 构建

  • 从一系列数据点出发
    在这里插入图片描述
    |Pt|X|Y|
    | – | – | – |
    |1 | 0.00|0.00|
    |2 | 1.00 | 4.31|
    |3 | 0.13 | 2.85 |
    | … | … | …|

在这里插入图片描述

    • 我们可以选择一个维度 X 和分界值 V 将数据点分为两组: X > V 和 X <= V
      在这里插入图片描述
  • 接下来分别考虑每个组,并再次分割(可以沿相同或不同的维度)
    在这里插入图片描述
  • 持续分割每个集合中的数据点, 从而构建一个树形结构
    每个叶节点表示为一系列数据点的列表
    在这里插入图片描述

在每个叶节点维护一个额外信息:这个节点下所有数据点的 (紧) 边界
在这里插入图片描述
用启发式的方法去决定如何分割

  • 沿哪个维度分割?
    • 范围最宽的维度
  • 分割的值怎么取?
    • 数据点在分割维度的中位数
    • 为什么是「中位数」而不是「均值」?
  • 什么时候停止分割?
    • 当剩余的数据点少于 m,或者
    • 区域的宽度达到最小值

KD-Tree: ( 2) 查询

  • 遍历树,来查找所查询数据点的最近邻居
    在这里插入图片描述
  • 先检验临近的点 :关注距离所查询数据点最近的树的分支
    在这里插入图片描述
    在这里插入图片描述
  • 达到一个叶节点后 :计算节点中每个数据点距离目标点的距离
    在这里插入图片描述
    在这里插入图片描述

接着回溯检验我们访问过的每个树节点的另一个分支
在这里插入图片描述

  • 每次我们找到一个最近的点,就更新距离的上界
    在这里插入图片描述
  • 利用这个最近距离以及每个树节点下数据的边界信息
    我们可以对一部分不可能包含最近邻居的分支进行剪枝
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

KNN 总览:优点与缺点

优点

  • 概念上很简单,但可以处理复杂的问题(以及复杂的目标函数)
    • e.g. 图片分类
  • 通过对k-近邻的平均, 对噪声数据更鲁棒
  • 容易理解 :预测结果可解释(最近邻居)
  • 训练样例中呈现的信息不会丢失
    • 因为样例本身被显式地存储下来了
  • 实现简单、稳定、没有参数(除了 k)
  • 方便进行 leave-one-out 测试

缺点

  • 内存开销
    • 需要大量的空间存储所有样例
    • 通常来说,需要存储任意两个点之间的距离 O(n2) ; K-DTrees O(nlogn)
  • CPU 开销
    • 分类新样本需要更多的时间(因此多用在离线场景)
  • 很难确定一个合适的距离函数
    • 特别是当样本是由复杂的符号表示时
  • 不相关的特征 对距离的度量有负面的影响

下一个问题

  • 回忆:用多个邻居使得对噪声数据鲁棒
    这些邻居的贡献是一样的吗?
  • 解决方案
    • 对数据加权
    • 更接近所查询数据点的邻居赋予更大的权 → \rightarrow 距离加权近邻

距离加权 KNN (Distance-weighted KNN)

距离加权 KNN

  • 一种加权函数
    • wi = K(d(xi, xq))
    • d(xi, xq) :查询数据点与 xi 之间的关系
    • K( ·) :决定每个数据点权重的核函数
  • 输出: 加权平均: p r e d i c t = ∑ w i y i / ∑ w i predict = \sum w_i y_i / \sum w_i predict=wiyi/wi
  • 核函数 K(d(xi, xq))
    • 1/d2, e − d e^{-d} ed, 1/(1+d), … 应该和距离 d 成反比

回顾

在这里插入图片描述
距离加权 NN
在这里插入图片描述
在这里插入图片描述

基于实例/记忆的学习器: 4 个要素

  1. 一种距离度量
  2. 使用多少个邻居?
  3. 一个加权函数(可选)
  4. 如何使用已知的邻居节点?

1-NN

在这里插入图片描述

基于记忆的学习器:4 个要素

  1. 一种距离度量 欧式距离
  2. 使用多少个邻居? 一个
  3. 一个加权函数(加权)
  4. 如何使用已知的邻居节点? 和邻居节点相同

K-NN

在这里插入图片描述

基于记忆的学习器:4 个要素

  1. 一种距离度量 欧式距离
  2. 使用多少个邻居? K 个
  3. 一个加权函数(加权)
  4. 如何使用已知的邻居节点? K 个邻居节点投票

距离加权 KNN

在这里插入图片描述

基于记忆的学习器: 4 个要素

  1. 一种距离度量 缩放的欧式距离
  2. 使用多少个邻居? 所有的,或K 个
  3. 一个加权函数(可选)
    w i = e x p ( − D ( x i , q u e r y ) 2 / K w 2 ) w_i = exp(-D(x_i, query)^2 / K_w^2) wi=exp(D(xi,query)2/Kw2)
    Kw :核宽度。非常重要
  4. 如何使用已知的邻居节点?每个输出的加权平均 p r e d i c t = ∑ w i y i / ∑ w i predict = \sum w_iy_i / \sum w_i predict=wiyi/wi

扩展:局部加权回归 (Locally weighted regression)

  • 回归:对实数值目标函数做估计/预测
  • 局部: 因为函数的估计是基于与所查询数据点相近的数据
  • 加权:每个数据点的贡献由它们与所查询数据点的距离决定

局部加权回归 (例子)

在这里插入图片描述

局部加权回归

在这里插入图片描述
基于记忆的学习器:4 个要素

  1. 一种距离度量 缩放的欧式距离
  2. 使用多少个邻居? 所有的,或K 个
  3. 一个加权函数(可选)
    e.g. w i = e x p ( − D ( x i , q u e r y ) 2 / K w 2 ) w_i = exp(-D(x_i, query)^2 / K_w^2) wi=exp(D(xi,query)2/Kw2)
    Kw :核宽度。非常重要
  4. 如何使用已知的邻居节点?
  5. 首先构建一个局部的线性模型。拟合 β \beta β 最小化局部的加权平方误差和: β ‾ = a r g m i n β ∑ k = 1 N w k 2 ( y k − β T x k ) 2 \underline\beta=\underset{\beta}{argmin} \sum_{k=1}^{N} w_k^2(y_k-\beta^Tx_k)^2 β=βargmink=1Nwk2(ykβTxk)2
    那么 y p r e d i c t = β ‾ T x q u e r y y_{predict} = \underline\beta^T x_{query} ypredict=βTxquery

真实测试样例下 不同基于实例的算法表现举例

线性回归

在这里插入图片描述

  • 连接所有点
    在这里插入图片描述

1- 近邻

在这里插入图片描述

K -近邻(k=9)

在这里插入图片描述

距离加权回归(核回归)

在这里插入图片描述

选择一个合适的 Kw 非常重要,不仅是对核回归,对所有局部加权学习器都很重要

局部加权回归

在这里插入图片描述

懒惰学习与贪婪学习 Lazy learner and Eager Learner

不同的学习方法

  • 贪婪学习
    在这里插入图片描述
  • 懒惰学习 (例如基于实例的学习)
    在这里插入图片描述

懒惰学习vs. 贪婪学习

懒惰

  • 懒惰 :等待查询再泛化

    • 训练时间 :短
    • 测试时间 :很长
  • 懒惰学习器

    • 可以得到局部估计

贪婪

  • 贪婪 :查询之前就泛化

    • 训练时间 :长
    • 测试时间:短
  • 贪婪学习器

    • 对于每个查询使用相同的模型
    • 倾向于给出全局估计

如果它们共享相同的假设空间,懒惰学习可以表示更复杂的函数
( e.g. H=线性函数)

基于实例的学 习总结

  • 基本概念与最近邻方法
  • K近邻方法
    • 基本算法
    • 讨论:更多距离度量;属性:归一化、加权;连续取值目标函数; k 的选择;打破平局;关于效率(K-Dtree的构建与查询)
  • 距离加权的KNN
  • 基于实例的学习器的四要素
  • 扩展:局部加权回归
  • 真实测试样例下的算法表现举例
  • 懒惰学习与贪婪学习

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

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

相关文章

C# 使用NPOI操作EXCEL

1.添加NOPI 引用->管理NuGet程序包->添加NOPI 2.相关程序集 3.添加命名空间 using NPOI.HSSF; using NPOI.XSSF; using System.IO; using NPOI.XSSF.UserModel; using NPOI.HSSF.UserModel; 4.从Excel导入的dgv样例 //NPOI读入dgv private void button1_Click(object s…

Python切换输入法的实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

经纬恒润荣获吉利汽车“最佳价值贡献”奖

8月18日&#xff0c;以“全面向新 共创共赢”为主题&#xff0c;吉利汽车在宁波成功举行2023年电子电器核心供应商恳谈会。经纬恒润凭借在项目合作上持续创新、高效协同等优异表现&#xff0c;获得“最佳价值贡献”奖项。 作为国产汽车代表性品牌之一&#xff0c;吉利汽车积极推…

多通道振弦数据记录仪在岩土工程隧洞中的完整解决方案

多通道振弦数据记录仪在岩土工程隧洞中的完整解决方案 隧洞工程是一种非常复杂的工程类型&#xff0c;需要高度的安全性和精确性。而在岩土工程中&#xff0c;振弦是一种非常常用的测试方法&#xff0c;用于测定岩土体的物理性质以及地震波传播特性等&#xff0c;以利于对隧洞…

【深入浅出设计模式--状态模式】

深入浅出设计模式--状态模式 一、背景二、问题三、解决方案四、 适用场景总结五、后记 一、背景 状态模式是一种行为设计模式&#xff0c;让你能在一个对象的内部状态变化时改变其行为&#xff0c;使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧密相关&#x…

解决Three.js辉光背景不透明

使用此pass canvas元素的background都能看到 不过相应的辉光颜色和背景颜色不相容的地方看起来颜色会怪一些 如图 不过如果是纯色就没什么问题了 //ts-nocheck /** Author: hongbin* Date: 2023-04-06 11:44:14* LastEditors: hongbin* LastEditTime: 2023-04-06 11:49:23* De…

电缆工厂 3D 可视化管控系统 | 智慧工厂

近年来&#xff0c;我国各类器材制造业已经开始向数字化生产转型&#xff0c;使得生产流程变得更加精准高效。通过应用智能设备、物联网和大数据分析等技术&#xff0c;企业可以更好地监控生产线上的运行和质量情况&#xff0c;及时发现和解决问题&#xff0c;从而提高生产效率…

libevent源码学习3---事件event

libevent源码学习3—事件event libevent 的基本操作单元是事件。每个事件代表一组条件的集合, 这些条件包括: 文件描述符已经就绪, 可以读取或者写入文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发 IO)超时事件发生某信号用户触发事件 所有事件具有相似的生命周期。…

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用

深度学习推荐系统(二)Deep Crossing及其在Criteo数据集上的应用 在2016年&#xff0c; 随着微软的Deep Crossing&#xff0c; 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出&#xff0c; 推荐系统全面进入了深度学习时代&#xff0c; 时至今日&#xff0c…

跨站请求伪造(CSRF)

文章目录 渗透测试漏洞原理跨站请求伪造&#xff08;CSRF&#xff09;1. CSRF概述1.1 基本概念1.1.1 关键点1.1.2 目标 1.2 CSRF场景1.2.1 银行账户转账1.2.2 构造虚假网站1.2.3 场景建模1.2.4 实验 1.3 CSRF类别1.3.1 POST方式 1.4 CSRF验证1.4.1 CSRF Poc generator 1.5 XSS与…

SpringAOP详解(下)

proxyFactory代理对象创建方式和代理对象调用方法过程&#xff1a; springaop创建动态代理对象和代理对象调用方法过程&#xff1a; 一、TargetSource的使用 Lazy注解&#xff0c;当加在属性上时&#xff0c;会产生一个代理对象赋值给这个属性&#xff0c;产生代理对象的代码为…

政府科技项目验收全流程分享

科技验收测试 &#xff08;验收申请→主管部门初审→科技厅审核→组织验收→归档备案→信用管理&#xff09;&#xff1a; &#xff08;一&#xff09;验收申请 项目承担单位通过省科技业务管理系统提交验收申请。 按期完成的项目&#xff0c;项目承担单位应当在项目合同书…

C 实现Window/DOS 键盘监听事件

今天是重新复习C语言实现的第一天&#xff0c;今天想编写C 对Windwos/Dos 键盘事件的学习。但是我在安装Visual Studio 2022 没有安装MFC 框架&#xff0c;今天记录下VS追加 MFC框架。 Visual Studio 2022 追加MFC 1、打开vs&#xff0c;点击创建新项目&#xff0c;右侧滑动框…

docker 学习-- 04 实践2 (lnpmr环境)

docker 学习 系列文章目录 docker 学习-- 01 基础知识 docker 学习-- 02 常用命令 docker 学习-- 03 环境安装 docker 学习-- 04 实践 1&#xff08;宝塔&#xff09; docker 学习-- 04 实践 2 &#xff08;lnpmr环境&#xff09; 文章目录 docker 学习 系列文章目录1. 配…

5G智能网关如何解决城市停车痛点难点

2023年上半年&#xff0c;我国汽车新注册登记1175万辆&#xff0c;同比增长5.8%&#xff0c;88个城市汽车保有量超过100万辆&#xff0c;北京、成都等24个城市超过300万辆。随着车辆保有量持续增加&#xff0c;停车难问题长期困扰城市居民&#xff0c;也导致城市路段违停普遍、…

制作鲜花商城小程序的详细步骤

如果你是一个新手商家&#xff0c;想要进入鲜花团购市场&#xff0c;但是不知道如何制作一个小程序商城&#xff0c;那么这篇文章就是为你准备的。以下是制作鲜花团购小程序商城的详细步骤&#xff1a; 1. 登录乔拓云平台后台&#xff0c;进入商城管理页面 首先&#xff0c;你需…

虚拟化技术:云计算发展的核心驱动力

文章目录 虚拟化技术的概念和作用虚拟化技术的优势虚拟化技术对未来发展的影响结论 &#x1f389;欢迎来到AIGC人工智能专栏~虚拟化技术&#xff1a;云计算发展的核心驱动力 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系…

WebGL矩阵变换库

目录 矩阵变换库&#xff1a; Matrix4对象所支持的方法和属性如表所示&#xff1a; 方法属性规范&#xff1a; 虽然平移、旋转、缩放等变换操作都可以用一个44的矩阵表示&#xff0c;但是在写WebGL程序的时候&#xff0c;手动计算每个矩阵很耗费时间。为了简化编程&#xf…

opencv 案例05-基于二值图像分析(简单缺陷检测)

缺陷检测&#xff0c;分为两个部分&#xff0c;一个部分是提取指定的轮廓&#xff0c;第二个部分通过对比实现划痕检测与缺角检测。本次主要搞定第一部分&#xff0c;学会观察图像与提取图像ROI对象轮廓外接矩形与轮廓。 下面是基于二值图像分析的大致流程 读取图像将图像转换…

Spring Cloud + Spring Boot 项目搭建结构层次示例讲解

Spring Cloud Spring Boot 项目搭建结构层次示例讲解 Spring Cloud 项目搭建结构层次示例Spring Cloud示例&#xff1a; Spring Boot 项目搭建结构层次讲解Spring Boot 项目通常按照一种常见的架构模式组织&#xff0c;可以分为以下几个主要层次&#xff1a;当构建一个 Spring…