Python数据可视化:幂律分布实例详解


Posted in Python onDecember 07, 2019

1、公式推导

对幂律分布公式:

Python数据可视化:幂律分布实例详解

对公式两边同时取以10为底的对数:

Python数据可视化:幂律分布实例详解

Python数据可视化:幂律分布实例详解

所以对于幂律公式,对X,Y取对数后,在坐标轴上为线性方程。

2、可视化

从图形上来说,幂律分布及其拟合效果:

Python数据可视化:幂律分布实例详解

对X轴与Y轴取以10为底的对数。效果上就是X轴上1与10,与10与100的距离是一样的。

Python数据可视化:幂律分布实例详解

对XY取双对数后,坐标轴上点可以很好用直线拟合。所以,判定数据是否符合幂律分布,只需要对XY取双对数,判断能否用一个直线很好拟合就行。常见的直线拟合效果评估标准有拟合误差平方和、R平方。

3、代码实现

#!/usr/bin/env python
# -*-coding:utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
from scipy.stats import norm

def DataGenerate():
 X = np.arange(10, 1010, 10) # 0-1,每隔着0.02一个数据 0处取对数,会时负无穷 生成100个数据点
 noise=norm.rvs(0, size=100, scale=0.2) # 生成50个正态分布 scale=0.1控制噪声强度
 Y=[]
 for i in range(len(X)):
  Y.append(10.8*pow(X[i],-0.3)+noise[i]) # 得到Y=10.8*x^-0.3+noise

 # plot raw data
 Y=np.array(Y)
 plt.title("Raw data")
 plt.scatter(X, Y, color='black')
 plt.show()

 X=np.log10(X) # 对X,Y取双对数
 Y=np.log10(Y)
 return X,Y

def DataFitAndVisualization(X,Y):
 # 模型数据准备
 X_parameter=[]
 Y_parameter=[]
 for single_square_feet ,single_price_value in zip(X,Y):
  X_parameter.append([float(single_square_feet)])
  Y_parameter.append(float(single_price_value))

 # 模型拟合
 regr = linear_model.LinearRegression()
 regr.fit(X_parameter, Y_parameter)
 # 模型结果与得分
 print('Coefficients: \n', regr.coef_,)
 print("Intercept:\n",regr.intercept_)
 # The mean square error
 print("Residual sum of squares: %.8f"
  % np.mean((regr.predict(X_parameter) - Y_parameter) ** 2)) # 残差平方和

 # 可视化
 plt.title("Log Data")
 plt.scatter(X_parameter, Y_parameter, color='black')
 plt.plot(X_parameter, regr.predict(X_parameter), color='blue',linewidth=3)

 # plt.xticks(())
 # plt.yticks(())
 plt.show()

if __name__=="__main__":
 X,Y=DataGenerate()
 DataFitAndVisualization(X,Y)

Python数据可视化:幂律分布实例详解

Python数据可视化:幂律分布实例详解

以上这篇Python数据可视化:幂律分布实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
采用python实现简单QQ单用户机器人的方法
Jul 03 Python
Python httplib模块使用实例
Apr 11 Python
用Python创建声明性迷你语言的教程
Apr 13 Python
linux下python抓屏实现方法
May 22 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
python 获取等间隔的数组实例
Jul 04 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
Django如何与Ajax交互
Apr 29 Python
Python数据可视化:泊松分布详解
Dec 07 #Python
python-numpy-指数分布实例详解
Dec 07 #Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 #Python
python实现输入的数据在地图上生成热力图效果
Dec 06 #Python
python 画3维轨迹图并进行比较的实例
Dec 06 #Python
解决pyshp UnicodeDecodeError的问题
Dec 06 #Python
python创建ArcGIS shape文件的实现
Dec 06 #Python
You might like
apache php mysql开发环境安装教程
2016/07/28 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
详解python中的lambda与sorted函数
2020/09/04 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
大门门卫岗位职责
2013/11/30 职场文书
优秀学生获奖感言
2014/02/15 职场文书
IT工程师岗位职责
2014/07/04 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
自荐信怎么写
2015/03/04 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
《春酒》教学反思
2016/02/22 职场文书