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备份文件以及mysql数据库的脚本代码
Jun 10 Python
python连接mysql并提交mysql事务示例
Mar 05 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
python实现自动解数独小程序
Jan 21 Python
Python和Go语言的区别总结
Feb 20 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Jupyter安装链接aconda实现过程图解
Nov 02 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调用mysql数据 dbclass类
2011/05/07 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
CI框架Session.php源码分析
2014/11/03 PHP
js继承的实现代码
2010/08/05 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
Python中使用logging模块打印log日志详解
2015/04/05 Python
python递归计算N!的方法
2015/05/05 Python
django之常用命令详解
2016/06/30 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
wxPython实现绘图小例子
2019/11/19 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
软件售后服务方案
2014/05/29 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
参加招聘会后的感想
2015/08/10 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python