在 K 均值算法 (MATLAB) 中使用绝对皮尔逊相关性作为距离

2024-01-07

我需要使用相关距离进行一些聚类,但我需要绝对皮尔逊距离,而不是使用定义为 d=1-r 的内置“距离”“相关”。在我的应用程序中,反相关数据应该获得相同的集群 ID。现在,当使用 kmeans() 函数时,我得到的质心高度反相关,我希望通过组合它们来避免这种情况。现在,我对 matlab 还不太熟练,并且在阅读 kmeans 函数时遇到一些问题。可以根据我的目的对其进行编辑吗?

Example:

当使用相关距离作为指标时,第 1 行和第 2 行应该获得相同的簇 ID。

我做了一些编辑内置 matlab 函数的尝试(打开 kmeans->第 775 行) 但奇怪的是 - 当我更改距离函数时,我得到了有效的距离矩阵,但集群索引错误,找不到原因。 希望得到一些提示!一切顺利!


这是一个很好的例子来说明为什么您不应该将 k-means 与其他距离函数一起使用.

k 均值确实not尽量减少距离。它最大限度地减少了一维偏差平方和 (SSQ).

这在数学上相当于欧几里得距离的平方,所以它确实最小化了欧几里得距离,作为数学副作用。确实如此not最小化任意性other距离,这不等于方差最小化。

就你而言,很高兴看到它失败的原因;我必须记住这是一个演示案例。

您可能知道,k 均值(即 Lloyds)包含两个步骤:按最小平方偏差进行分配,然后重新计算均值.

现在的问题是,重新计算平均值与绝对皮尔逊相关性不一致.

让我们取两个相关系数为 -1 的向量:

+1 +2 +3 +4 +5
-1 -2 -3 -4 -5

并计算mean:

 0  0  0  0  0

繁荣。它们与平均值完全不相关。事实上,Pearson 相关性并不均匀明确的对于这个向量来说,因为它的方差为零......

为什么会出现这种情况?因为您将 k 均值误解为基于距离。其实也一样多算术平均值基于。算术平均值是最小二乘 (!!) 估计量 - 它最小化偏差平方和。这就是平方欧几里德距离起作用的原因:它优化与重新计算平均值相同的数量。优化同一目标both步骤使算法收敛。

另请参阅此推土机距离的反例 https://stats.stackexchange.com/a/112803/7828,其中 k 均值的平均步骤产生次优结果(尽管可能不如绝对皮尔逊那么糟糕)

考虑使用而不是使用 k 均值k-中心点又名 PAM,其中does适用于任意距离。或者许多其他聚类算法之一,包括DBSCAN https://en.wikipedia.org/wiki/DBSCAN and OPTICS https://en.wikipedia.org/wiki/OPTICS_algorithm.

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

在 K 均值算法 (MATLAB) 中使用绝对皮尔逊相关性作为距离 的相关文章

  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 动态调整自定义刻度数

    Taking SO 的一个例子 https stackoverflow com a 7139485 97160 我想根据当前视图调整轴刻度 这是默认行为 除非设置自定义的刻度数 下图展示了由此产生的行为 左侧是默认行为 右侧是带有自定义刻度
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • kmeans 对分组数据进行聚类

    目前 我尝试在分组数据中找到簇的中心 通过使用示例数据集和问题定义 我能够创建kmeans每个组内的集群 然而 当涉及到给定组的集群的每个中心时 我不知道如何获取它们 https rdrr io cran broom man kmeans
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur
  • for 循环中的绘图没有可见点

    我正在努力解决我想使用 for 循环制作的情节 我知道当我在循环之后添加它时它会起作用 只是一个简单的图 但我想用另一种方式尝试一下 fib ones 1 10 for k 3 10 hold on fib k fib k 1 fib k
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant

随机推荐

  • 防止 TrueType 字体的抗锯齿(或子像素渲染)

    这就是 ttf 字体的渲染方式 我使用 FontForge 创建了这种纯矢量 TrueType 字体 我想在需要基于矢量的字形且不支持加载 ttf 嵌入位图的应用程序上使用此字体 貌似没有这个问题 在某些颜色方案上 Windows 执行的子
  • 如何使用prometheus获取pod的CPU和内存使用百分比

    我想使用 promql Prometheus 以以下格式显示 pod 详细信息 此外 我想使用 promql 以以下格式显示应用程序 组件的 CPU 和内存利用率 promql 查询 sum container memory working
  • 插值函数需要

    我需要一个可以像原型 js 框架那样进行插值的 JavaScript 函数 有人有不依赖原型的插值函数吗 欢迎使用 Jquery 谢谢 根据您的需求 类似这样的事情可能会起作用 String prototype interpolate fu
  • 加速位图灰度转换,OpenMP 是 C# 中的一个选项吗?

    请帮助我使用 openmp 使此代码并行 此代码在单击按钮时运行 文本框为 128 using System using System Collections Generic using System ComponentModel usin
  • 使用 Tidyverse Join 更新/替换 Dataframe 中的值

    使用查找表中的 正确 值更新 替换主数据集中的 NA 最有效的方法是什么 这是很常见的操作 类似的问题似乎没有整齐的解决方案 限制条件 1 请假设有大量缺失值和比给出的示例更大的查找表 因此 按情况进行替换操作是不切实际的 没有case w
  • Angular 4在组件之间传递数据,无需输入\输出

    我正在尝试在 Angular 4 的组件之间传递数据 我不想使用输入 输出 在 HomeComponent 中 我想将数据推送到服务中 在 page2 组件中 我想从服务中获取数据 我只是查看了 observable 和 subject 的
  • 虚函数和vtable是如何实现的?

    我们都知道C 中什么是虚函数 但是深层次上它们是如何实现的呢 vtable可以在运行时修改甚至直接访问吗 vtable 是针对所有类都存在 还是只针对那些至少具有一个虚函数的类 抽象类是否至少有一个条目的函数指针为 NULL 使用单个虚函数
  • 使用aiogram创建后台进程

    我正在尝试在我正在开发的使用 aiogram 的电报机器人中发送加密货币的价格警报 我遇到的问题是 我不确定如何启动一个函数作为后台 非阻塞线程 然后继续启动调度程序 我知道如何使用标准同步电报机器人来做到这一点 但我对我应该用 aiogr
  • 如何本地化 UserControl

    我正在开发一个必须支持多种语言的Windows应用程序 我已经关注了下面的文章http msdn microsoft com en us library y99d1cd3 v vs 71 aspx http msdn microsoft c
  • 不清楚如何实现依赖注入

    假设我有一个 LoginView 及其数据上下文 LoginViewModel 需要注入一个可以根据用户名 密码对用户进行身份验证的服务 现在假设应用程序的状态是有人已经登录 但现在他们正在注销 我需要为下一个用户重新显示登录屏幕 所以此时
  • NodeJs require('./file.js') 问题

    我遇到了一些问题 包括要在 NodeJs 项目中执行的文件 我在同一目录中有两个文件 a js var test Hello World and b js require a js console log test 我执行 b jsnode
  • 使用 Chart.js 绘制重叠条形图

    我想开发一个如下所示的条形图 可以使用chart js来开发吗 是的 这是可能的 请参阅 Github 上此线程中的示例https github com chartjs Chart js issues 5224 https github c
  • 如何在不创建变量或指针或使用数据类型的 sizeof 的情况下找到数据类型的大小?

    下图是一道面试题 Q 你被给定 有一个数据类型 比如 C 中的 X 要求是获取数据类型的大小 而不声明 变量或该类型的指针变量 当然 不使用 sizeof 运算符 我不确定这个问题是否已经被问过 感谢致敬 麦迪 定义 sizeof type
  • pyspark/EMR 中大型 DataFrame 上的collect() 或 toPandas()

    我有一个由一台机器 c3 8xlarge 组成的 EMR 集群 在阅读了一些资源后 我了解到我必须允许相当数量的堆外内存 因为我使用的是 pyspark 因此我已按如下方式配置集群 执行人一名 火花 执行器 内存 6g Spark exec
  • 我可以在同一台计算机上安装 .Net Framework 和 .Net Core 吗?

    将它们安装在同一台机器上时是否有任何限制或需要注意的事项 NET Framework 安装是计算机全局的 例如如果将计算机从 NET Framework 4 5 2 更新到 NET Framework 4 6 all计算机上的 NET Fr
  • 使用 Response.BinaryWrite 和 Server.Mappath 将文件下载到特定位置可能吗?

    我有与数据库中的文件关联的 varbinary 数据 这是我用来在单击链接时下载此文件的代码 a is my attachment object var r context Response r AddHeader Content Disp
  • Retrofit & OkHttp - 是否可以一次只发送一个请求?

    我正在使用 Retrofit 2 4 0 向服务器发送请求 但有时 如果我的请求与另一个请求具有相似的时间戳 以毫秒为单位 服务器会阻止我的请求 我需要一次发送一个请求 请求 A 已发送 请求 B 等待 直到收到请求 A 的响应 请求 A
  • 如何在没有 npm require 的情况下使用 ReactRouter CDN 方式?

    我是反应新手 我通过直接添加react js和react dom js文件以及browser min js来使用它来进行javascript转换到我的HTML页面中进行练习 现在 我想使用react router 我已经添加了ReactRo
  • iOS 上有触摸画线的 SDK 吗?

    有没有一个框架可以用来通过触摸画线 基本上 我想为客户添加在 iPad iPhone 上签名并将其捕获为图像的功能 非常感谢任何帮助 Thanks 您可以使用UIKIT框架中提供的核心图形来满足您的要求 我在我的应用程序中有类似的要求 但用
  • 在 K 均值算法 (MATLAB) 中使用绝对皮尔逊相关性作为距离

    我需要使用相关距离进行一些聚类 但我需要绝对皮尔逊距离 而不是使用定义为 d 1 r 的内置 距离 相关 在我的应用程序中 反相关数据应该获得相同的集群 ID 现在 当使用 kmeans 函数时 我得到的质心高度反相关 我希望通过组合它们来