Skip to content

hxxiagroup/csslab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

csslab

使用指南

  • methods,各个模块,实现数据处理,分析,可视化的功能。

  • tools,包含常用的一些小工具

  • Tutorials,是其他包的使用的一些教程与示例。

模块与功能介绍

各个模块,方法都放在了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来做。

备注:功能一直处于更新中,模块可能需要用面向对象来重构,跟进第三方包


colorfly

关于颜色选择的模块,为离散和连续的数据选择合适的颜色,对于离散数据,更重要的,支持多种颜色的插值方式,例如线性的,log插值,让可视化结果更符合数据的分布。

  • hex2rgb() : 十六进制颜色转RGB颜色

  • rbg2hex() : RGB颜色转十六进制颜色码

  • classify_color_discrete(data,...) : 为离散的数据设置颜色,支持传入颜色cmap

  • classify_color_sequential(data,...) : 为连续的数据设置颜色,支持多种插值方式,自定义颜色层数

  • get_cmap_colors(...) : 获取离散cmap的颜色码

见issue:数据的颜色选择模块


entropy

关于熵值的计算,适用于多层网络或者普通数据的熵值计算,详情见这里

  • 多层网络而言,计算节点基于某一属性的熵值(通过流量或度计算);
  • 普通的数据表,计算每一行数据的熵值。
多层网络例如:
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)

visualization

可视化方面的轮子,目前功能较少。

  • 从pandas的Dataframe绘制热图

备注:需要增加更多的功能

更多的轮子

Contributing makes team growing

每个人都是项目的参与者:

  • 通用性的方法
  • 帮助完善,改进
  • 新的想法
  • 亟需解决的问题
  • 涉及 unpublished 工作内容,数据等内容,请勿上传

内容不限于下面几个方面:

  • 数据分析的方法
  • 可视化
  • 模型,模拟
  • 网络分析
  • 软件的使用教程,例子。

任何问题,随时联系非凡,IT茜,波波文 -- By Complex Society System Group of DUT, 2017 ~

About

A platform for method share and cooperation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages