机器学习里的 kernel 是指什么?

2023-11-19

转自我的知乎回答:机器学习里的 kernel 是指什么?

我换个角度来解释这个问题。

机器学习在做回归或者分类时有一个很朴实的想法:预测 x 的值,那就在训练集 X 中寻找那些与 x 相似的样本,再把这些样本的值加权作为预测值。 这里有两个问题:

  1. 如何度量样本之间的相似性?
  2. 如何加权?

下面先看三个例子:

  1. k近邻。这个很熟悉,一般用欧式距离寻找离 x 最近的 k 个点,然后把对应的 y 等权重加权作为预测值。
  2. Nadaraya-Watson估计。在非参数估计中经常看到,距离越近的点,权重越大。
    f ^ ( x ⋆ ) = ∑ i = 1 n ω i y i \hat{f}(x_\star) = \sum_{i=1}^{n}\omega_iy_i f^(x)=i=1nωiyi
    其中 w i = k i ∑ j = 1 n k j w_i = \frac{k_i}{\sum_{j=1}^{n}k_j} wi=j=1nkjki , k i = d ( x i , x j ) k_i = d(x_i,x_j) ki=d(xi,xj)
    这里的 d ( x i , x j ) d(x_i,x_j) d(xi,xj)通常叫做核函数,但在这里无妨称之为距离函数。
  3. 线性回归
    这个有必要好好解释下。设训练集为 (X,y) ,则回归参数是 β ^ = ( X T X ) − 1 X T y \hat{\beta} = (X^TX)^{-1}X^Ty β^=(XTX)1XTy。新样本 x 的预测值为:
    f ( x ) = x T β ^ f(x) = x^T\hat{\beta} f(x)=xTβ^
    = x T ( X − 1 X ) T X T y = x^T(X^{-1}X)^{T}X^Ty =xT(X1X)TXTy
    = x T ( X − 1 X ) T ( x 1 , ⋯   , x n ) y = x^T(X^{-1}X)^{T}(x_1,\cdots,x_n)y =xT(X1X)T(x1,,xn)y
    = ∑ i = 1 n x T ( X − 1 X ) T x i y i = \sum_{i=1}^n x^T(X^{-1}X)^{T}x_iy_i =i=1nxT(X1X)Txiyi
    = ∑ i = 1 n ω i y i =\sum_{i=1}^{n}\omega_iy_i =i=1nωiyi
    这不就是“加权”的形式么???。两点说明:
    1、 ∑ i = 1 n ω i ≠ 1 \sum_{i=1}^n\omega_i \neq 1 i=1nωi̸=1 ,因此它不是一种通常意义上的权重。一般的权重有什么局限性?既然是 n 个值的加权平均,那预测值一定不会比样本最大值更大。
    2、 ω i = x T ( X T X ) − 1 x i T \omega_i = x^T(X^TX)^{-1}x_i^T ωi=xT(XTX)1xiT , X 中心化后, ( X T X ) − 1 (X^TX)^{-1} (XTX)1 是协方差矩阵。这其实就是将 x 和 x i x_i xi 标准化,再求内积。内积越大,表明两个样本越相似,因此权重越大。 ω i \omega_i ωi 不满足 ≥ 0 \geq0 0

现在看到了,这三个模型,最关键的就是计算样本之间的距离。

最常用的是欧氏距离。如果欧式距离的效果不好,通常我们会进行特征工程,新增或删除一些特征。特征向量变长或缩短,重新计算的距离就变化了。对于特征工程,可以参考我的另一个回答:特征工程到底是什么?

核方法提供了另一个思维角度,跳过了对特征做处理,而是在原特征的基础上,构造一个新的距离。距离解决了,其它的就水到渠成了。

从空间映射的角度讲,核函数对应了一个再生核希尔伯特空间(RKHS),原空间中的向量在RKHS中变成了一个函数。核函数度量的距离就是RKHS空间中函数之间距离,等价于函数在RKHS基函数上的投影构成的向量的欧式距离。

其实,特征工程对核方法也有作用,这一点很少有人提。前面不少回答都举了类似于下面这样例子,二维空间中不可分的点到了三维空间就可分了。
在这里插入图片描述
这种情况是相当理想了,很多时候你根本不知道核函数将数据映射成了什么样子,映射后的数据变得更差也有可能。

以squared exponential核为例:
k ( x i , x j ) = exp ⁡ ( − ∣ ∣ x i − x j ∣ ∣ 2 2 l 2 ) k(x_i,x_j)=\exp(-\frac{\vert\vert x_i-x_j\vert\vert^2}{2l^2}) k(xi,xj)=exp(2l2xixj2)

可以看到核函数 k 等权重依赖于每一个特征,如果 x i x_i xi x j x_j xj 的某个特征相差很大,但其实这个特征与 y 没有关系,是不是就出问题了?

一个办法是先筛选那些与 y 相关的特征(注意是相关,不只是线性相关),例如用distance corelation,然后再选择核函数和相关参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习里的 kernel 是指什么? 的相关文章

  • 对最后 X 秒内收到的值的平均值进行采样

    我有一个调度成功和失败事件的类 我需要维护该类最后 X 秒内的平均失败数 事件总数的统计数据 我正在考虑使用循环链表并为每个事件附加成功或失败节点 然后计算列表中故障节点的数量与总节点数 但这有两个主要缺点 我需要不断地放大 缩小列表大小
  • R 的 xtsum 命令?

    我们正在处理面板数据 Stata中有一个命令 xtsum 这给出了数据集中变量的内部方差和方差之间 R 是否有类似的命令可以产生干净的输出 我用了一个小函数来做到这一点 函数 XTSUM 接受三个输入 数据 数据集varname xtsum
  • 性能测量的建模分布

    您如何对重复的现实生活性能测量的分布进行数学建模 现实生活 意味着您不仅仅是循环有问题的代码 而且它只是在典型用户场景中运行的大型应用程序中的一个简短片段 我的经验表明 平均执行时间通常会出现峰值 可以使用高斯分布对其进行充分建模 此外 还
  • 使用 p 值的逐步回归删除 p 值不显着的变量

    我想表演一个逐步线性回归 using p values作为选择标准 例如 在每个步骤中删除具有最高即最不显着 p 值的变量 当所有值均由某个阈值定义的显着时停止alpha 我完全知道我应该使用 AIC 例如命令step or stepAIC
  • 如何从pairwise.t.test获取df和t值?

    有没有办法从a中获取t值和dfpairwise t test对于相关数据 Example data lt c 2 3 2 2 5 2 4 2 4 3 4 2 time lt c 1 1 1 1 2 2 2 2 3 3 3 3 pairwis
  • 稳定地找到曲线的肘点?

    我知道存在this https stackoverflow com questions 4033821 using a smoother with the l method to determine the number of k mean
  • 根据另一列的相应行值创建行子集?

    让 CSV 包含两列 年龄 和 性别 其中 Age 30 24 55 61 70 21 Gender Male Female Male Male Male Female 我希望它向我显示与 Gender Male 相对应的所有 Age 值
  • 如何根据分数标准化评论

    规范评论的最佳方法是什么 IE 假设我们有用户可以从 1 星到 5 星投票的产品 简单地取平均值并不是一个好方法 因为它没有考虑到评论的数量 例如 如果一个产品只有一条 5 星评论 那么它不应该领先于有 10000 条评论的产品 仅仅因为唯
  • PHP服务器统计脚本? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我不太确定把这个问题放在哪里 它不是真正的网络应用程序或超级用户 但我确信类似的东西已经存在 我正在寻
  • 使用 ywunbiased 时,statsmodels.tsa.stattools 中的 PACF 函数给出的数字大于 1?

    我有一个长度为 177 的数据帧 我想计算并绘制部分自相关函数 PACF 我已导入数据等 我这样做 from statsmodels tsa stattools import pacf ys pacf data key array diff
  • 分类变量的多重共线性

    对于数值 连续数据 为了检测预测变量之间的共线性 我们使用皮尔逊相关系数并确保预测变量之间不相关 但与响应变量相关 但我们怎样才能检测到多重共线性如果我们有一个数据集 其中预测变量都是绝对的 我正在共享一个数据集 我试图找出预测变量是否相关
  • 如何在 Python 中使数据正确符合幂律?

    我正在考虑Moby Dick 小说中独特单词的出现次数 http tuvalu santafe edu 7Eaaronc powerlaws data htm并使用powerlaw蟒蛇包 https pythonhosted org pow
  • 如何确定一系列循环数据中的高值和低值?

    我有一些代表周期性运动的数据 所以 它从高点到低点 然后又回来 如果你要绘制它 它就像一个正弦波 然而 每个周期的幅度略有不同 我想列出整个序列中的每个最大值和最小值 如果有 10 个完整的周期 我最终会得到 20 个数字 其中 10 个为
  • 将绘图对象存储在列表中

    I asked this https stackoverflow com questions 1816480 generating names iteratively in r for storing plots昨天关于在对象中存储绘图的问
  • 在循环中预测.lm()。警告:排名不足的拟合预测可能会产生误导

    此 R 代码引发警告 Fit regression model to each cluster y lt list length y lt k vars lt list length vars lt k f lt list length f
  • 有效地将相似的数字分组在一起[重复]

    这个问题在这里已经有答案了 可能的重复 一维数数组聚类 https stackoverflow com questions 11513484 1d number array clustering 我有一个数字数组 例如 1 20 300 4
  • 使用perl求中位数、众数、标准差?

    我有一个数字数组 计算数据集的中位数 众数和标准差的最简单方法是什么 Statistics Basic Mean http p3rl org Statistics Basic Mean Statistics Basic Median htt
  • 解释为什么没有船的空 scenekit 场景只有一个节点和 2.73K 多边形

    为什么移除船舶后的空 scenekit 场景只有一个节点和 2 73K 多边形数 如果我展开统计视图 会看到两个节点和 5 46K 个多边形 它必须与统计视图有关 但为什么有这么多多边形 为什么这个视图会出现在场景内部 一个空的 Scene
  • 在 R 中使用 NA 计算栅格数据的变异函数

    Summary 我有一个包含 NA 值的栅格数据集 并且想要计算它的变异函数 忽略 NA 我怎样才能做到这一点 我有一个图像 已使用以下命令加载到 R 中readGDAL函数 存储为im 为了使其可重复 结果dput图像上可在https g
  • 好的 PHP 开源分析/统计软件吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在构建的网址缩短服务需要向用户显示一些基本的点击统计信息 点击次数 转化次数 引用域和国家 地区

随机推荐

  • Mybatis与Spring的集成

    目录 一 Mybatis与spring集成 1 导入pom依赖 2 创建spring配置文件applicationContext 3 注解式开发 二 Aop整合pagehelper插件 4 Spring Test junit完美组合 一 M
  • 哈希表设计思想及实现

    哈希表设计思想及实现 定义 哈希表在 算法4 这本书中是这么介绍的 哈希表其实又叫散列表 是算法在时间和空间上做出权衡的经典例子 如果一个表所有的键都是小整数 我们就可以用一个数组来实现无序的符号表 将键作为数组的索引而数组中i出存储的值就
  • Python打印各种图形

    一 打印直角三角形 for i in range 1 6 print i end n 二 打印矩形 num 5 for i in range 1 6 print 5 for n in range 5 for i in range 5 pri
  • SpringBoot打成的jar和普通的jar有什么区别?

    SpringBoot项目最终打包成的jar是可执行jar 这种jar可一天通过java jar xxx jar命令来运行 这种jar不可以作为普通jar被其他项目依赖 即使依赖了也无法使用其中的类 SoringBoot项目打包的jar无法被
  • Mybaits源码学习(七):动态参数

    一 前文回顾 在前文中我们分析了Mybatis是如何替我们实现了我们所编写的Mapper接口 采用JDK动态代理 在获取Mapper的时候创建Mapper的实现类 本文将继续学习Mybatis中其他的知识 今天索要研究的是Mybatis是如
  • 阿里云mysql数据库修改密码问题小记。

    场景描述 一台阿里云服务器 上面有装mysql数据库 但是不知道数据库的密码 怎么办 改密码呗 下面一系列故事就围绕改密码展开来了 整个过程 1 一顿操作猛如虎 感觉自己不是新手 得有追求 得看看系统的版本 等一系列的参数 其实然并卵 2
  • 全国失信被执行人黑名单信息查询API接口

    接口地址 https api hackeus cn api shixin 请求协议 HTTP HTTPS 请求方式 GET POST 返回格式 JSON 请求示例 https api hackeus cn api shixin api ke
  • RT-Thread通过SDIO接口使用SD卡,使用ulog保存日志到sd卡

    开发环境 野火的stm32f407 rt thread studio版本是版本 2 2 6 stm32f4的资源包为0 2 2 rt thread版本为4 0 3 开发板原理图 引脚分配 PC8 SDIO D0 PC9 SDIO D1 PC
  • 【JavaSpring】Aop案例

    测定接口执行效率 描述 在接口执行前输出当前系统时间 开发模式 XML or 注解 思路分析 1 导入坐标 pom xml
  • python变量的作用域及生命周期_Python——变量的作用域

    原创声明 本文系博主原创文章 转载及引用请注明出处 1 在编程语言中 变量都有一定的作用域 用来限定其生命周期 且不同类型的变量作用域不同 在Python中解释器引用变量的顺序 优先级 为 当前作用域局部变量 gt 外层作用域变量 gt 当
  • python frame用法_Pandas Series.to_frame()用法介绍

    系列被定义为可以容纳整数 字符串 双精度值等的列表类型 它以列表的形式返回对象 该列表的索引从0到n开始 其中n表示系列中值的长度 系列和数据框架之间的主要区别在于 系列只能包含具有特定索引的单个列表 而数据框架是可以分析数据的多个系列的组
  • CentOS8基础篇11:CentOS8挂载本地ISO,配置本地yum源

    1 创建ISO镜像挂在目录 第一种方法 VMware用户可以直接用镜像挂载 2 挂载镜像 第一种方法测试成功 第二种方法 采用ISO镜像文件方式挂载 把ISO文件复制到 opt目录下 这也是最好的方式 将Centos8的ISO镜像上传到IS
  • Linux大文件查看利器:掌握Less命令的使用和技巧

    文章目录 简介 1 1 less命令的作用和功能 1 2 less命令与more命令的对比 安装和基本用法 2 1 Linux系统中less命令的安装方法 2 2 使用less命令打开文件 2 3 基本导航和浏览文件 2 4 在文件中搜索关
  • 三层交换机实现不同vlan间通信

    1 器材 二层交换机为神州数码DCS 3950 路由交换机为神州数码DCRS 5650 路由器为神州数码DCR 2600 2 原理 2 1交换机的带外管理和带内管理 交换机的管理方式可以分为带内管理和带外管理两种管理模式 所谓带内管理 是指
  • 输出整数m中删除n位之后的最大(小)数(保持各位顺序不变)

    这个题不知道ac没有 因为是随便看到的一个题 没办法测 如果有错误请帮我指出来 看到很多复杂度很高的暴力破解方法 有三层循环的那种 我这个复杂度应该会低一点 思路 先将结果初始化最后m n个字符 放在res中 从res的第一位开始 在它前面
  • C# ADSL自动拨号实现代码

  • docker安装mysql8

    docker 默认mysql版本为8 0 docker pull mysql 启动mysql8 首先需要新建目录及文件 文件 F mydocker mysql8 config my cnf 目录 F mydocker mysql8 data
  • java数组专题

    下文笔者讲述求数组并集的方法分享 如下所示 实现思路 1 定义一个set集合 2 将数组中的元素都放入set中 则可实现数组并集 例 package com java265 other import java util HashSet im
  • QT 切换界面时候布局错乱

    偶然发现 在win下 全屏显示 showFullScreen 时候 label 如果开启 自动换行功能会出现 布局错乱QLabelt gt setWordWrap true
  • 机器学习里的 kernel 是指什么?

    转自我的知乎回答 机器学习里的 kernel 是指什么 我换个角度来解释这个问题 机器学习在做回归或者分类时有一个很朴实的想法 预测 x 的值 那就在训练集 X 中寻找那些与 x 相似的样本 再把这些样本的值加权作为预测值 这里有两个问题