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中的startswith和endswith函数使用实例
Aug 25 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
python自动zip压缩目录的方法
Jun 28 Python
python读取oracle函数返回值
Jul 18 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
python中温度单位转换的实例方法
Dec 27 Python
python调用百度AI接口实现人流量统计
Feb 03 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的autoLoad自动加载机制
2012/09/27 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
采购部岗位职责
2013/11/24 职场文书
国培教师自我鉴定
2014/02/12 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
2015年元旦活动总结
2014/05/09 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
教师个人发展总结
2015/02/11 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
预备党员半年考察意见
2015/06/01 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript