图形超几何网络
hnet的Python项目详细描述
图形超几何网络
Star it if you like it!
HNet代表图形化超几何网络,它是一种通过统计推断来检验变量间关联的显著性的方法。 其目的是确定一个具有重要关联的网络,可以揭示变量之间的复杂关系。 输入数据集的范围从一般的数据帧到带有列表、缺失值和枚举的嵌套数据结构。在
真实世界的数据通常包含连续值和离散值的测量值。 尽管有许多库,但混合数据类型的数据集需要密集的预处理步骤, 如何描述变量之间的关系仍然是一个挑战。 数据理解阶段对数据挖掘过程至关重要,但是,在没有对数据进行任何假设的情况下, 搜索空间在变量数量上是超指数的。因此,彻底的数据理解阶段不是常见的做法。在
方法
我们提出了图形超几何网络(HNet
),这是一种使用统计推断测试变量间关联的显著性的方法。其目的是确定一个只使用重要关联的网络,以阐明变量之间的复杂关系。HNet处理原始的非结构化数据集,并输出由节点之间(部分)有向或无向边(即变量)组成的网络。为了评估HNet的准确性,我们使用已知的数据集和生成的具有已知基本真相的数据集。此外,还比较了HNet与贝叶斯关联学习的性能。在
结果
我们证明了HNet在节点链路检测方面表现出了很高的准确性和性能。在报警数据集的情况下,我们可以证明平均MCC得分为0.33+0.0002(P<;1x10-6),而贝叶斯关联学习的平均MCC得分为0.52+0.006(P<;1x10-11),随机分配边缘的MCC得分为0.004+0.0003(P=0.49)。在
结论
HNet克服了对原始非结构化数据集的处理,它允许分析混合数据类型,它很容易扩展变量的数量,并允许对检测到的关联进行详细检查。在
文档
方法概述
^{1}$ 在
安装
- 从PyPI安装hnet(推荐)。Hnet与Python3.6+兼容,可在Linux、MacOS X和Windows上运行。 它是在Apache2.0许可下发布的。在
- 泰坦尼克号数据集的简单示例
# Initialize hnet with default settingsfromhnetimporthnet# Load example datasetdf=hnet.import_example('titanic')# Print to screenprint(df)
# PassengerId Survived Pclass ... Fare Cabin Embarked
# 0 1 0 3 ... 7.2500 NaN S
# 1 2 1 1 ... 71.2833 C85 C
# 2 3 1 3 ... 7.9250 NaN S
# 3 4 1 1 ... 53.1000 C123 S
# 4 5 0 3 ... 8.0500 NaN S
# .. ... ... ... ... ... ... ...
# 886 887 0 2 ... 13.0000 NaN S
# 887 888 1 1 ... 30.0000 B42 S
# 888 889 0 3 ... 23.4500 NaN S
# 889 890 1 1 ... 30.0000 C148 C
# 890 891 0 3 ... 7.7500 NaN Q
在泰坦尼克号数据集上进行关联学习。
fromhnetimporthnethn=hnet()results=hn.association_learning(df)# Plot static graphG_static=hn.plot()# Plot heatmapP_heatmap=hn.heatmap(cluster=True)# Plot dynamic graphhn.d3graph()# Plot dynamic graphhn.d3heatmap()<;link rel=“导入”href=“https://erdogant.github.io/docs/d3graph/titanic_example/index.html“>;
总结结果。
网络会变成巨大的毛球,热图无法阅读。您可能希望查看类别之间的常规关联,而不是标签关联。 使用summary功能,结果将按类别汇总。在
# Importfromhnetimporthnet# Load example datasetdf=hnet.import_example('titanic')# Initializehn=hnet()# Association learningresults=hn.association_learning(df)# Plot heatmaphn.heatmap(summarize=True,cluster=True)hn.d3heatmap(summarize=True)# Plot static graphhn.plot(summarize=True)hn.d3graph(summarize=True,charge=1000)
在
功能重要性
# Plot feature importancehn.plot_feat_importance(marker_size=50)
在
性能
在
引文
如果这对你的研究有用,请在你的出版物中引用hnet
。在
这是BibTeX条目:
@misc{taskesen2020hnet,
title={HNet: Graphical Hypergeometric Networks},
author={Erdogan Taskesen},
year={2020},
eprint={2005.04679},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
维护人员
Erdogan Taskesen, github: [erdogant](https://github.com/erdogant)
Contributions are welcome.
Star it if you like it!
- 项目
标签: