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创建xml的方法
Mar 10 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
python使用Flask操作mysql实现登录功能
May 14 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
python 创建一个空dataframe 然后添加行数据的实例
Jun 07 Python
如何使用Python实现斐波那契数列
Jul 02 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
python 公共方法汇总解析
Sep 16 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
pandas中pd.groupby()的用法详解
Jun 16 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
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP基础知识介绍
2013/09/17 PHP
php中的观察者模式简单实例
2015/01/20 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
js中的闭包学习心得
2018/02/06 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
Python多进程机制实例详解
2015/07/02 Python
python交互式图形编程实例(二)
2017/11/17 Python
Django的分页器实例(paginator)
2017/12/01 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
应用电子专业学生的自我评价
2013/10/16 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
大课间体育活动方案
2014/03/12 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
体育活动总结范文
2014/05/04 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
简单租房协议书
2014/10/21 职场文书
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android