zoukankan      html  css  js  c++  java
  • 无标度网络-幂律分布

    参考链接https://ask.csdn.net/questions/365756

    今天一直在找关于幂律分布的验证相关资料,很多都是只言片语,这个图首先解释了幂律分布的定义

    2.然后,https://www.douban.com/group/topic/69712255/ 真正实践去验证的时候,先在python环境下安装powerlaw包,然后这个链接内容告诉我们具体怎么应用这个包,对每行代码的解释真心很详细!powerlaw.Fit拟合幂律分布

    # -*- coding: utf-8 -*-
    import numpy as np
    from matplotlib.pylab import plt
    import powerlaw
    #打开数据包------------------------------------------------------------

    data=np.loadtxt('C:/Users/peterduus/degree.txt')
    #用numpy的loadtxt()方法把文本数据读入二维数组---------------------------

    fit=powerlaw.Fit(data,discrete=True)
    print 'xmin =',fit.xmin
    print 'alpha =',fit.power_law.alpha
    print 'sigma =',fit.power_law.sigma
    print 'D =',fit.power_law.D
    #拟合幂律,放到名为fit的对象中。网络度是离散的,所以要用discrete=True。
    #是不是离散型数据,可以用fit.power_law.discrete来查看。
    #计算fit的最小界值。
    #计算fit的alpha值。根据所遵循公式,alpha是幂指数,即P(x)是x的-alpha次方。 也就是我们想要的参数值了,参考文献中讲到是通过最大似然估计得到的。一般幂律分布的该参数范围在2-3是很典型的值。
    #sigma是alpha的标准差。
    #注意看幂律区间如果占据总区间很小部分,那这种拟合是没有意义的。

    R1,p1=fit.distribution_compare('power_law','exponential')
    R2,p2=fit.distribution_compare('power_law','lognormal')
    R3,p3=fit.distribution_compare('power_law', 'stretched_exponential')
    R4,p4=fit.distribution_compare('power_law', 'truncated_power_law')
    R12,p12=fit2.distribution_compare('power_law','exponential')
    R22,p22=fit2.distribution_compare('power_law','lognormal')
    R32,p32=fit2.distribution_compare('power_law', 'stretched_exponential')
    R42,p42=fit2.distribution_compare('power_law', 'truncated_power_law')
    R52,p52=fit2.distribution_compare('exponential', 'truncated_power_law')

    print 'power_law vs. ','exponential ',R1,p1
    print 'power_law vs. ','lognormal ',R2,p2
    print 'power_law vs. ', 'stretched_exponential ',R3,p3
    print 'power_law vs. ', 'truncated_power_law ',R4,p4
    print ' '
    print 'power_law vs. ','exponential ',R12,p12
    print 'power_law vs. ', 'truncated_power_law ',R42,p42
    print 'exponential vs. ', 'truncated_power_law ',R52,p52

    #R是似然比,正值表示前者比后者更契合数据,
    #p是两模型的差异是否具有显著性,即用R所做的比较结果是否有统计学意义

    3.文章中还用到ks检验,暂时还没明白如何用代码进行检验,有待补充!

  • 相关阅读:
    Java并发实现一(并发的实现之Thread和Runnable的区别)
    Java中的enum
    Eclipse+Maven创建webapp项目
    手机上最简洁的"云笔记"软件
    工具与艺术的结合:浅谈博客的排版规范与样式设计
    页面定制CSS代码初探(四):cnblogs使用Github引用样式
    脑图工具MindNode"附属节点"是什么意思 图解
    页面定制CSS代码初探(三):设置正文最小高度
    Sublime 是自动检测而非自动设置缩进
    苹果操作系统名称演变史 新名称macOS
  • 原文地址:https://www.cnblogs.com/kjkj/p/10297353.html
Copyright © 2011-2022 走看看