各个模块,方法都放在了methos目录下面。
-
对数据分布进行拟合,即确定符合数据分布的概率密度分布函数,得到各个分布函数的参数,拟合的结果R方,AIC等结果。
-
提供了计算分布,绘制分布,拟合分布等多种方法。
-
实现,是对scipy.stats 以及 powerlaw包的封装,使用方便。
-
备注,需进一步完善,同时要跟进封装的包。
from methods.distribution import FitModel
data = pd.Series(["you data"])
model = FitModel(data=data)
# model_expon就是拟合expon的结果,包含的信息见model.summary介绍
model_expon = model.fit(distribution='expon', x_max=8)
model.fit(distribution='lognorm')
model.fit(distribution='gamma')
model.fit_powerlaw(x_min=4)
model.plot_model(style=1)
# 保存模型
save_path = os.path.join(DataDir, 'model.json')
FitModel.save_model(model, save_path)
复杂网络分析工具,包含的功能如下:
* 从边数据生成网络 - get_graph_from_edgedata
* 从边数据获取节点 - get_nodes_from_edgedata
* 将有向边转化为无向边 - as_undirected_edgedata
* 合并两个网络 - merge_edgedata
* 计算网络的特征 - calculate_graph_features
* 计算节点的特征 - calculate_node_features
* 根据度来过滤网络 - degree_filter
* 计算模块度 - modularity
* 社区发现 - community_detect
* 社区结构的相似度度量 - partition_similarity
* 绘制网络 - draw_graph
实现:网络的拓扑分析,采用networkx实现,其他大部分功能基于pandas来做。
备注:功能一直处于更新中,模块可能需要用面向对象来重构,跟进第三方包
关于颜色选择的模块,为离散和连续的数据选择合适的颜色,对于离散数据,更重要的,支持多种颜色的插值方式,例如线性的,log插值,让可视化结果更符合数据的分布。
-
hex2rgb() : 十六进制颜色转RGB颜色
-
rbg2hex() : RGB颜色转十六进制颜色码
-
classify_color_discrete(data,...) : 为离散的数据设置颜色,支持传入颜色cmap
-
classify_color_sequential(data,...) : 为连续的数据设置颜色,支持多种插值方式,自定义颜色层数
-
get_cmap_colors(...) : 获取离散cmap的颜色码
见issue:数据的颜色选择模块
关于熵值的计算,适用于多层网络或者普通数据的熵值计算,详情见这里
- 多层网络而言,计算节点基于某一属性的熵值(通过流量或度计算);
- 普通的数据表,计算每一行数据的熵值。
from methods.entropy import Entropy
trans = ["Walk","Bus","Bike","Vehicle","Railway"]
graph_dic = dict.fromkeys(trans) # 总共5层子网络
for each in graph_dic.keys():
data_each = pd.DataFrame([[1,2],[2,3]], columns=["Source","Target"])
graph_dic[each] = data_each
ent = Entropy() #初始化一个实例
ent.init_with_subgraphes(graph_dic,directed=True,weighted=True) # 数据初始化
ent.entropy() # 计算节点信息熵
ent.modified_entropy() #计算修正熵值,归一到[0,1]
ent.save_result(r"./some_dir_you_like",keep_infodata=1)
可视化方面的轮子,目前功能较少。
- 从pandas的Dataframe绘制热图
备注:需要增加更多的功能
每个人都是项目的参与者:
- 通用性的方法
- 帮助完善,改进
- 新的想法
- 亟需解决的问题
- 涉及 unpublished 工作内容,数据等内容,请勿上传
内容不限于下面几个方面:
- 数据分析的方法
- 可视化
- 模型,模拟
- 网络分析
- 软件的使用教程,例子。
任何问题,随时联系非凡,IT茜,波波文 -- By Complex Society System Group of DUT, 2017 ~