当前位置: 首页 > news >正文

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

🎯要点

🎯概率论和图论数学形式和图结构 | 🎯数学形式、图结构和代码验证贝叶斯分类器算法:🖊多类型:朴素贝叶斯,求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素贝叶斯 | 🖊多维型:贝叶斯链 | 🖊分层型:贝叶斯网络和链式分类器复合式 | 🖊数学形式、图结构和代码验证贝叶斯分类器算法 | 🎯数学形式、图结构和代码验证隐马尔可夫模型算法 | 🎯数学形式、图结构和代码验证马尔可夫随机场模型算法 | 🎯数学形式、图结构和代码验证贝叶斯网络算法:🖊学习树和有向无环图:Chow-Liu 算法、PC 算法 | 🎯数学形式、图结构和代码验证马尔可夫决策过程算法

🎯算法实现: 🖊结构学习算法:爬坡搜索、树搜索、最大-最小爬坡,穷举搜索 | 🖊参数学习算法:最大似然、贝叶斯估计器、期望最大化 | 🖊概率推理算法:变量消除、置信传播、最大乘积线性规划、取样方式 | 🖊因果推理算法:执行操作、调整套

🎯GPU多线程并行概率模型 | 🎯激光通信和-积消息传递算法模拟调制

📜Python和R和MATLAB图形模型用例

📜Python | R | MATLAB群体消息和遗传病筛选多元统计模型

📜Python神经模型评估微分方程图算法

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python图挖掘潜在关系

PC 算法利用对撞机和有向无环图的原理来挖掘潜在的前后关系,从而快速消除数据集中的不相关链接。然而,由此产生的因果图通常是完整的部分有向无环图,其特点是边缘方向不确定,而不是确定的有向无环图。

在我的方法中,我使用 PC 算法生成一个图,然后利用 NetworkX 的 is_directedis_directed_acyclic_graph 函数来确定该图是否符合有向无环图的条件。通常情况下,我们不会直接获得有向无环图。为了解决不确定的边,我们可以依靠人工干预或先验知识,尽管这需要额外的努力。

探索从酒类数据集开始,包含 178 个条目和 15 个不同的特征,如酒精、苹果酸和类黄酮。

import utils, pc_algorithm, random, copy, statistics
import pandas as pd
import numpy as np
import networkx as nx
from itertools import product
from pgmpy.estimators import BicScoredata = utils.get_data_from_ucirepo(109)
data.info()labels = data.columns.tolist()
data = np.array(data)

我使用自定义 PC 算法生成完整的部分有向无环图。

graph, sepetated_set = pc_algorithm.pc_get_graph(data)
cpdag_graph = pc_algorithm.pc_apply_rules(graph, sepetated_set)

然后使用 NetworkX 的有向图将完整的部分有向无环图转换为网络图。在此表示中,方向未确定的边标记为红色,突出显示图从完整的部分有向无环图到非有向无环图状态的转变。

network_graph = nx.DiGraph(cpdag_graph)
pos = nx.kamada_kawai_layout(network_graph)
print("Is Directed?: " + str(nx.is_directed(network_graph)))
print("Is DAG?: " + str(nx.is_directed_acyclic_graph(network_graph)))
undirected_edges = {frozenset(i) for i in network_graph.edges() if network_graph.has_edge(*i[::-1])}
edge_colors = ["red" if frozenset(edge) in undirected_edges else "gray" for edge in network_graph.edges()]nx.draw(network_graph, pos,edge_color = edge_colors,width=1,linewidths = 1,node_size = 600,font_size = 6,node_color="pink",alpha=0.9,labels=dict(zip(range(len(labels)), labels)))

在这里插入图片描述
当此类边的数量可控时,我们可以从完整的部分有向无环图中枚举所有可能的有向无环图。在本例中,从 128 个潜在配置中,出现了 60 个有效的 有向无环图。

possible_edges = list(product([0, 1], repeat = len(undirected_edges)))
print("All posiible graphs: " + str(len(possible_edges)))dags = []for i in possible_edges:network = nx.DiGraph(cpdag_graph)for j, k in enumerate(i):l = [*list(undirected_edges)[j]][0]m = [*list(undirected_edges)[j]][1]network.remove_edge(l, m)network.remove_edge(m , l)if k == 0:network.add_edge(l, m)else:network.add_edge(m , l)if nx.is_directed_acyclic_graph(network):dags.append(network)print("All DAGs: " + str(len(dags))

下一步是确定这些可能性中最适合的有向无环图。这是使用贝叶斯信息准则实现的,该准则使用 pgmpy 的 BicScore 计算。BIC 得分最低的有向无环图可能是我们数据集底层因果结构的最准确表示。

bic_calculator = BicScore(pd.DataFrame(data))
bics = [bic_calculator.score(i) for i in dags]nx.draw(dags[bics.index(min(bics))], pos,edge_color = edge_colors,width=1,linewidths = 1,node_size = 600,font_size = 6,node_color = "pink",alpha=0.9,labels=dict(zip(range(len(labels)), labels)))

通过这一探索,我们展示了如何将 PC 算法与 NetworkX 结合起来有效地识别复杂数据集中的潜在前后关系。

👉参阅&更新:计算思维 | 亚图跨际

http://www.lryc.cn/news/400447.html

相关文章:

  • 初识HTML
  • 基于Rspack实现大仓应用构建提效实践|得物技术
  • 什么是MOW,以bitget钱包为例
  • pytorch说明
  • AI语音机器人是否可以设计开放式问题
  • ModuleNotFoundError: No module named
  • 【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)
  • 算法刷题笔记 KMP字符串(C++实现,并给出了求next数组的独家简单理解方式)
  • SpringCloud架构师面试
  • C语言 | Leetcode C语言题解之第228题汇总区间
  • 入职前回顾一下git-01
  • this指向解析
  • 学习小记-Nacos的服务注册与发现原理
  • 视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台
  • [Spring] SpringBoot基本配置与快速上手
  • tomcat的优化、动静分离
  • Python与自动化脚本编写
  • 树与二叉树
  • SpringBoot+Vue实现简单的文件上传(Excel篇)
  • 科研绘图系列:R语言金字塔图(pyramid plot)
  • Tomcat多实例
  • 前端Vue组件化实践:自定义加载组件的探索与应用
  • 半小时获得一张ESG入门证书【详细中英文笔记一】
  • 类形断言和和类型推导的区别是什么?
  • Spring-Spring、IoC、DI、注解开发
  • Facebook的未来蓝图:从元宇宙到虚拟现实的跨越
  • Redis6.2.1版本集群新加副本
  • 2.The DispatcherServlet
  • bug定位策略
  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例