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 Django连接MySQL数据库做增删改查
Nov 07 Python
python中ConfigParse模块的用法
Sep 29 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Python中请不要再用re.compile了
Jun 30 Python
简单了解python代码优化小技巧
Jul 08 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
python中的错误如何查看
Jul 08 Python
python设置表格边框的具体方法
Jul 17 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 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 error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
关于python的list相关知识(推荐)
2017/08/30 Python
python九九乘法表的实例
2017/09/26 Python
详解【python】str与json类型转换
2019/04/29 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python regex库实例用法总结
2021/01/03 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
积极分子思想汇报
2014/01/04 职场文书
中学家长会邀请函
2014/02/03 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
小学重阳节活动总结
2015/03/24 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB
vue router 动态路由清除方式
2022/05/25 Vue.js