使用 scikit learn 对通过 networkx 生成的图进行谱聚类

2024-04-25

我有一个 3000x50 特征向量矩阵。我使用以下方法获得了一个相似度矩阵sklearn.metrics.pairwise_distances作为“相似度矩阵”。现在我用了networkx使用上一步中生成的相似度矩阵创建一个图G=nx.from_numpy_matrix(Similarity_Matrix)。我想在此图上执行谱聚类G现在,但一些谷歌搜索未能在该图上提供 scikit learn 谱聚类的不错示例:( 官方文档显示了如何对某些图像数据进行谱聚类,至少对于像我这样的新手来说,这是非常不清楚的。

任何人都可以给我一个代码示例,或者使用 networkx、scikit learn 等进行图形切割或图形分区。

太感谢了!


adj_matrix = nx.from_numpy_matrix将帮助您创建一个邻接矩阵,该矩阵将成为您的亲和力矩阵。您需要将其提供给 scikit-learn,如下所示:SpectralClustering(affinity = 'precomputed', assign_labels="discretize",random_state=0,n_clusters=2).fit_predict(adj_matrix)

如果您没有任何相似度矩阵,则可以将“affinity”参数的值更改为“rbf”或“nearest_neighbors”。下面的示例解释了整个频谱聚类流程:

import sklearn
import networkx as nx
import matplotlib.pyplot as plt

'''Graph creation and initialization'''
G=nx.Graph()
G.add_edge(1,2)  # default edge weight=1
G.add_edge(3,4,weight=0.2) #weight represents edge weight or affinity
G.add_edge(2,3,weight=0.9) 
G.add_edge("Hello", "World", weight= 0.6)

'''Matrix creation'''
adj_matrix = nx.to_numpy_matrix(G) #Converts graph to an adj matrix with adj_matrix[i][j] represents weight between node i,j.
node_list = list(G.nodes()) #returns a list of nodes with index mapping with the a 

'''Spectral Clustering'''
clusters = SpectralClustering(affinity = 'precomputed', assign_labels="discretize",random_state=0,n_clusters=2).fit_predict(adj_matrix)
plt.scatter(nodes_list,clusters,c=clusters, s=50, cmap='viridis')
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 scikit learn 对通过 networkx 生成的图进行谱聚类 的相关文章

随机推荐

  • 使用 insertUI 闪亮创建时,dragUI 不可拖动

    我用insertUI 函数来创建新的dragUI 动态地 不幸的是 新创建的dragUI行为不符合预期 我无法将它们拖动为dragUI是从创建的ui初始函数 library shiny library shinyDND ui lt flui
  • 在新窗口中打开谷歌地图。

    我创建了一个 Google Map API 我想在新选项卡 窗口 中打开它 我可以知道我的代码有什么问题吗 我可以打开新选项卡 但无法显示 Google 地图 下面是我的代码 谢谢 function newWindow var myLatl
  • 你的项目路径包含非ASCII字符android studio

    我正在安装android studio 但是当程序启动时出现这个问题 错误 1 0 您的项目路径包含非 ASCII 字符 这 很可能会导致 Windows 上的构建失败 请移动您的 项目到不同的目录 看http b android com
  • 带有简单光标适配器项目的列表视图已选中,但在滚动期间未选中

    我有一个问题 我无法在 SO 上找到答案 所有问题都在 SO 上解决 其中有太多不同的问题并且不起作用 问题是 1 ListView中被点击的行 点击后标记为蓝色背景和复选框 在滚动后失去了被点击的标记 选中的复选框和颜色 2 甚至更多 在
  • 初始化字符串的格式不符合从索引 0 开始的规范

    我有一个 ASP Net MVC 应用程序 它在我的本地开发计算机上运行良好 但是部署到IIS7后尝试登录时出现以下错误 初始化字符串格式不符合规范 从索引 0 开始 大多数发布此错误的人通过以某种方式更改连接字符串来解决它 但是 我在本地
  • 如何确定完整的 CUDA 版本 + 颠覆版本?

    Linux 上的 CUDA 发行版曾经有一个名为version txt例如 CUDA Version 10 2 89 这非常有用 但是 从 CUDA 11 1 开始 该文件不再存在 我如何在 Linux 上通过命令行确定并检查 path t
  • django OneToOne反向访问

    我有这些简单的课程 Class A models Model Class Meta models Model a models OnetoOneField A primary key True width models IntegerFie
  • python的xml.etree.ElementTree支持DTD吗?

    xml etree ElementTree 支持 DTD 吗 如果它支持 我可以强制 ElementTree 根据 dtd 文件检查 XML 文件 即使 XML 文件已经有一个 内部或外部 我不确定xml etree but lxml支持D
  • Java-使用Byteoutputstream写入大文件

    我正在尝试使用以下命令写入大小在 1kb 到 10GB 之间的文件ByteArrayOutputStream但抛出以下异常 我正在使用jdk 6 请建议任何更好的高性能Api 我使用同一个网络盒来读取和写入 Exception in thr
  • 更改本机确认/警报[重复]

    这个问题在这里已经有答案了 我想删除弹出 JavaScript 的标题 但我不知道如何才能以及在哪里编写代码 这是我的代码 a href 感谢您的帮助 你无法控制外观confirm or alert Javascript 弹出窗口 因为它们
  • 如何检查设备上是否启用了蓝牙

    我想检查设备上是否启用了蓝牙 以便应用程序可以在没有用户交互的情况下使用它 有什么办法可以做到这一点吗 我还可以分别检查蓝牙和蓝牙低功耗吗 我使用以下方法完成了此操作Radio class 检查蓝牙是否已启用 public static a
  • 在 DataRowState.Modified 中合并两个相同的 DataTables 结果

    我假设如果两个相同的话是错误的吗DataTables are merged每行的状态将被保留 看一下这个简单的例子 它创建两个相同的表并合并updated表与original桌子 但返回的表在original GetChanges is n
  • Azure 应用服务 Active Directory 身份验证访问被拒绝

    我们有一个 Web 应用程序 正在从 Azure 经典云服务过渡到应用服务 Web 应用程序 经典云服务位于包含我们的域控制器 常规 AD 而不是 Azure AD 的 vnet 上 应用程序服务使用 VNET 集成 因此它连接到我们的 v
  • 使用 NHibernate 深复制实体

    我目前正在工作中启动一个新的 ASP NET MVC 项目 我们需要生成项目成本估算 我们使用 NHibernate ASP NET MVC 1 0 和 StructureMap 客户希望能够填写有关项目的所有信息 这些信息位于不同的页面中
  • 如何在 Drupal 7 中打印自定义菜单?

    我在 Drupal 7 中创建了一个菜单 并创建了该菜单下页面的链接 我将新菜单命名为 站点菜单 在我希望菜单出现的 page tpl php 中 我已将其放在适当的位置 清除缓存并刷新页面后 我的菜单不会出现 我很困惑 任何帮助将不胜感激
  • PHPExcel_Style_Fill 无限递归

    我使用图书馆PHPExcel 1 7 9跟 共事Excel文件 首先 我创建一个模板 对其进行样式化和润色 然后 为了避免样式硬编码 使用上述库打开该模板 更改一些值并将其保存为新的 xlsx file 首先 我们从单元格中获取该样式 th
  • TypeScript 类函数不可用

    我正在尝试调用 TypeScript 类的实例方法 在 ASP NET MVC 项目中 但是 在运行时我遇到了类似的异常0x800a01b6 JavaScript runtime error Object doesn t support p
  • 从 CLI 列出 ARM 的 Docker 映像

    我拥有一台 Mac M1 我在上面运行 Docker 在 OSX 上 Docker 可以运行本机 ARM 映像 但也可以模拟 x86 amd64 来运行不是为 ARM 构建的映像 我的问题很简单 从命令行 我试图找到显示图像的命令 dock
  • 用于色彩空间转换的 IMTransform 视频处理器的设置

    我正在尝试使用视频处理器 MFT 进行一些基本的色彩空间转换 我的相机本身支持 NV12 我需要 RGB24 来编写一些着色器 以提供类似卡通的效果 下面是用于执行 MF 的 Media 类的定义 class Media public IM
  • 使用 scikit learn 对通过 networkx 生成的图进行谱聚类

    我有一个 3000x50 特征向量矩阵 我使用以下方法获得了一个相似度矩阵sklearn metrics pairwise distances作为 相似度矩阵 现在我用了networkx使用上一步中生成的相似度矩阵创建一个图G nx fro