Scikit-learn 的内核 PCA:如何在 KPCA 中实现各向异性高斯内核或任何其他自定义内核?

2024-06-21

我目前正在使用Scikit-learn 的 KPCA https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.KernelPCA.html对我的数据集执行降维。它们具有各向同性高斯核(RBF 核),仅具有一个值 gamma。但现在,我想实现一个各向异性高斯核,它具有许多取决于维数的伽玛值。

我知道 Kernel PCA 有一个选项预先计算的内核,但我找不到任何用于降维的代码示例。

有谁知道如何在 sklearn KPCA 中实现自定义内核?


我已经找到了这个问题的解决方案。

首先,您必须定义自己的核函数,该函数返回样本之间的语法矩阵。

def customkernel(X1,X2,etc):
    k = yourkernelfunction(X1,X2,etc)
    return k

如果我们想要拟合一个数据集x有尺寸n x m进入我们的 KernelPCA 模型并将其转换为n x n_princomp,我们需要的是

KPCA = kpca(n_princomp,kernel='precomputed')
gram_mat = customkernel(x,x)
transformed_x = KPCA.fit_transform(gram_mat)

接下来,如果我们想转换另一个数据集X有尺寸N x m into N x n_princomp我们要做的就是计算一个新的语法矩阵,其中 X 为 X1,x 为 X2。

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

Scikit-learn 的内核 PCA:如何在 KPCA 中实现各向异性高斯内核或任何其他自定义内核? 的相关文章

随机推荐

  • 为什么我在 Safari 开发者工具中看不到预检(方法:选项)xhr 请求?

    由于我不明白的原因 Safari 无法 间歇性但持续地 连接到我们 QA 基础设施上的 Rails 应用程序 静态前端和 API 后端 我将就此写另一个问题 目前 让我感到困惑的一件事是 Safari 一般来说 似乎从未显示其他浏览器 Ch
  • iOS 中第一响应者的正式定义是什么?

    据我所知 第一响应者对象是根据输入活动等接收回调信号 并且它将沿着链向上冒泡 直到找到愿意处理它的响应者 但更正式地说 第一响应者的范围是什么 例如 它是应用程序范围的响应程序吗 似乎作为第一响应者只是说这个特定的对象将收到交互通知 其他响
  • 从命令行创建 MongoDB 用户

    我已经建立了一个 MongoDB 数据库admin仅具有管理权限的用户 无权读取或写入数据库 我现在想做的是 添加新数据库 并向该数据库添加一个新用户 并且 我需要从命令行执行此操作 所以我尝试 mongo admin u admin p
  • 是否可以将 Flutter 应用注册为 Android Intent Filter 并处理传入 Intents?

    人们可以使用 Flutter 应用程序中的 Intent 启动另一个 Activity https github com flutter flutter blob master examples widgets launch url dar
  • 删除嵌套重复项的方案

    所以我在方案中编程并创建了一个删除重复项的函数 但它不适用于嵌套 我真的想不出一个好方法来做到这一点 有没有办法修改我当前的代码并简单地使其与嵌套一起工作 清单 这是我的代码 define duplicates L cond null L
  • SQL Server 是否在复杂视图中传播 WHERE 条件?

    我在这个问题之后提供了一个完整的示例 以防不清楚我的问题的意思 我创建了一个视图 它连接了大约五个表中的数据 这些表包含大量数据 查询运行速度很慢 我的问题是 如果我这样做 SELECT FROM myView WHERE PersonID
  • 使用 Quicklisp 安装后使用 iterate

    当我使用 Quicklisp 加载 iterate 包时 ql quickload iterate 似乎加载得很好 但没有一个功能真正起作用 当我进入 iterate iter for i from 0 to 10 collect i 我收
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • svg:如何在计算线上设置一个圆?

    我试图用 svg 在计算线上设置一个圆 这是我的例子 http jsfiddle net 7XC9j http jsfiddle net 7XC9j html
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • Meteor 中的子域支持(如 slack - http://team.slack.com)

    流星中的子域支持 就像 slack http team slack com http team slack com 就像在 Slack 中一样 我的应用程序用户可以创建自己的子域 唯一 并且根据子域应该加载数据 并且围绕此应用程序将继续进行
  • Gmail Api 从别名发送

    我创建了一个使用 OAuth 2 0 与 Gmail API 连接的脚本 它运行完美 我可以从经过身份验证的帐户发送电子邮件 但是 我无法从该帐户的任何别名发送电子邮件 如果我尝试这样做 我会收到以下错误消息 error errors do
  • 反序列化具有相同元素名称但不同属性的 Xml

    我有一些 XML 如下所示
  • haskell复制目录的方法是什么

    我发现自己用 Haskell 编写越来越多的脚本 但在某些情况下 我真的不确定如何 正确 地做到这一点 例如递归地复制目录 a la unixcp r 由于我主要使用 Linux 和 Mac OS 所以我通常会作弊 import Syste
  • 如何用按钮打开所有infoWIndows

    现在我想添加打开所有引脚弹出窗口的按钮 infoWindows 所以我添加功能openAllInfoWindows并添加infoWindows i open 命令 但是不起作用 HTML 代码 a href Close a a href O
  • 如何编辑 git 中任何提交的提交消息? [复制]

    这个问题在这里已经有答案了 假设我有 3 个未推送的提交 现在我想更改第一次或第二次提交的提交消息 更改第三次提交的提交消息很简单 使用git commit amend 怎么做 回到子问题 是否有一个git commit amend对于先前
  • 如何使用 onSearchRequested() 调用搜索对话框

    我正在尝试实现搜索对话框 但无法显示活动中的搜索 我在清单文件中定义了主要活动 此活动向用户显示了他们必须从中选择的选项列表 选项之一是 搜索 选项
  • 使用 spring security 找不到 AuthenticationProvider

    我一直在尝试使用 x509 证书通过 LDAP 对用户进行身份验证 但似乎无法正常工作 我声明了一个身份验证提供程序 但仍然抛出错误 提示没有提供程序 这是我的调试输出 INFO Initiating Jersey application
  • PHP 继承以及静态方法和属性

    PHP 中的静态属性和方法不能被继承吗 一些例子会有所帮助 不 那不是真的 静态方法和属性 http www php net manual en language oop5 static php将会得到遗传 http www php net
  • Scikit-learn 的内核 PCA:如何在 KPCA 中实现各向异性高斯内核或任何其他自定义内核?

    我目前正在使用Scikit learn 的 KPCA https scikit learn org stable modules generated sklearn decomposition KernelPCA html对我的数据集执行降