KeplerMapper Cover类深度讲解:n_cubes与perc_overlap如何决定图的精细度
KeplerMapper Cover类深度讲解n_cubes与perc_overlap如何决定图的精细度【免费下载链接】kepler-mapperKepler Mapper: A flexible Python implementation of the Mapper algorithm.项目地址: https://gitcode.com/gh_mirrors/ke/kepler-mapperKeplerMapper 是一款灵活易用的 Python Mapper 算法实现用于从高维数据中提取拓扑结构。它的核心组件Cover 类通过两个参数n_cubes与perc_overlap直接决定了最终拓扑图的精细度格子切得越密、重叠越多图就越细致。本文带你用最直观的方式理解这两个参数并给出一份新手参数调优速查表 。一瞥Cover 类在 Mapper 算法中的位置KeplerMapper 的 Mapper 算法分三步走详见 docs/theory.rst投影Project把高维数据压成低维镜头lens覆盖Cover用一堆相互重叠的超立方体格子盖住投影空间聚类Cluster每个格子里的点做聚类簇变成图节点重叠区域产生边。Cover 类就负责第 2 步根据n_cubes和perc_overlap自动计算每个格子的中心与半径把镜头空间切割成网格。空格子会被自动剔除所以最终图的节点数往往少于格子总数。上图为 Cover 类切割镜头空间后经聚类连边得到的典型拓扑网络节点大小代表簇内样本数连线来自格子的重叠区域。n_cubes图的分辨率n_cubes指每个维度上划分的超立方体数量默认 10定义见 kmapper/cover.py。它相当于相机分辨率n_cubes5镜头空间被切成粗网格每个格子聚合成一个大团图节点少、结构粗糙n_cubes20网格变密细节簇被单独识别出来图更精细多维投影时格子总数 n_cubes的维数次方2 维、n_cubes10时就是 100 个格子所以高维投影下格子数会指数增长大量空格子被剔除后图可能变得碎片化。它还支持按维度分别设置例如n_cubes[10, 20, 5]给不同维度的数据分配不同精度见 kmapper/kmapper.py 的示例。perc_overlap图的连通性perc_overlap是相邻格子沿单一维度的重叠比例0~1。源码中的半径公式很直观kmapper/cover.pyradius range / (2 × n_cubes × (1 - perc_overlap))重叠小如 0.1格子几乎不重叠相邻节点很难共享成员图容易出现孤立岛屿和断开的分支重叠大如 0.7相邻格子共享大量样本边多而密原本零散的簇被缝合成一张连通的网络极端值perc_overlap1.0时半径无限大所有格子完全重叠图会退化成稠密团状。它同样支持按维度列表设置如perc_overlap[0.1, 0.2, 0.5]。两参数如何共同决定图的精细度一句话总结n_cubes管切多细perc_overlap管连得多紧。两者组合出四种典型效果组合图的表现适用场景低 n_cubes 低 overlap节点少、碎片化快速把握粗略结构 ⚡低 n_cubes 高 overlap节点少但连通数据稀疏、想保连通性高 n_cubes 低 overlap细节多但可能断裂精细探索、噪声较少高 n_cubes 高 overlap细腻且连通节点偏多默认精细分析下面两张 make_circles 示例脚本见 examples/makecircles/make_circles_distmean.py展示了同一圆环数据在不同参数下的差异高重叠比例Overlap 70%下圆环被缝合成一条首尾相连的彩色链路参数面板清晰列出 Cubes per dimension 与 Overlap percentage 两项关键配置。低重叠比例Overlap 10%下节点间连接明显变少圆环出现缺口——这正是 perc_overlap 过小的典型信号。而想要还原出完整的马形结构见 examples/horse/plot_horse.py就需要把两者同时调高让精细的局部簇之间保留足够重叠合理的 n_cubes 与 perc_overlap 组合下马的轮廓、四肢与头部都被清晰还原节点颜色随镜头函数渐变。新手参数调优速查表起点Cover(n_cubes10, perc_overlap0.1)是map()的内置默认见 kmapper/kmapper.py图太碎优先把perc_overlap提到 0.3~0.5而不是直接加格子细节不够逐步提高n_cubes10 → 15 → 20观察节点数是否爆炸调试可加verbose1打印格子中心与半径单测用例 test/test_coverer.py 覆盖了边界情况可对照学习。小结Cover 类用切格子 算重叠两件小事掌控着 KeplerMapper 输出的精细度与连通性。记住这张速查表调参不再是碰运气 。【免费下载链接】kepler-mapperKepler Mapper: A flexible Python implementation of the Mapper algorithm.项目地址: https://gitcode.com/gh_mirrors/ke/kepler-mapper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻