首先要做的是绘制CDF或者PDF,概率密度分布图和概率分布图,cdf其实就是pdf求导后的结果。有了概率分布图对x和y同时取对数,就知道是不是幂律分布了。
我的数据只有一列,用pandas读进来就行了,算每个x的概率就是Y,放df的两列中

#!/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
import pandas as pd
#数据处理,准备好要拟合幂律分布的x和y
def DataGenerate():data = []data = pd.read_csv(r"C:\Users\Administrator\Desktop\概率密度图像绘制\26235.csv", header=None)#检查有没有空值,返回ture就是有false就是没有print(data.isnull().any())denominator = len(data[0])  # 分母数量Data = pd.Series(data[0])  # 将数据转换为Series利用分组频数计算Fre = Data.value_counts()Fre_sort = Fre.sort_index(axis=0, ascending=True)Fre_df = Fre_sort.reset_index()  # 将Series数据转换为DataFrameFre_df[0] = Fre_df[0] / denominator  # 转换成概率np.log()Fre_df.columns = ['Rds', 'Fre']X = Fre_df['Rds']Y = Fre_df['Fre']# plot raw dataY=np.array(Y)plt.title("Raw data")plt.scatter(X, Y,  color='black')plt.show()#对x和y取对数X=np.log(X)  # 对X,Y取双对数Y=np.log(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))# if len(Y_parameter):  ##     print('Y 为非空list')  # 存在值即为True# else:#     print('Y 为空list')  # 不存在值即为FALSE# 模型拟合regr = linear_model.LinearRegression()regr.fit(X_parameter, Y_parameter)# 模型结果与得分print('Coefficients: \n', regr.coef_,)print("Intercept:\n",regr.intercept_)# The mean square errorprint("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)

最后要注意的是数据中不能出现0值和空值,不然会报错

  File "C:\Users\Administrator\PycharmProjects\untitled\venv\lib\site-packages\sklearn\utils\validation.py", line 100, in _assert_all_finitemsg_dtype if msg_dtype is not None else X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').Process finished with exit code 1

有空值肯定不行,可以用如下来检查输入有没有空值`

#检查有没有空值,返回ture就是有false就是没有print(data.isnull().any())

如果没有空值还报错就是因为有0值,因为log0是无穷值,报错里都说了“a value too large for dtype(‘float64’)”。所以不能有0值。0值还会影响斜率,要么就直接删除掉0值。

excel中读取数据拟合幂律分布相关推荐

  1. Matlab拟合幂律分布

    使用Matlab拟合幂律分布的两种方式: 一.编辑器输入 (1)新建matlab文件并输入对应的x,y变量(y为对应x值得概率) (2)点击运行后,右边工作区会显示对应x,y的变量 (3)点击菜单栏A ...

  2. python怎么从excel获取数据_python怎么从excel中读取数据?/python 读取 excle

    如何通过python快速输出数据库数据到excel 扩展库 xlrd 读excle xlwt 写excle 直接度就能下载 下载后使用 import xlrd 就可excle文件了 打开文件: xls ...

  3. python读excel成数组_python读取excel数据 python怎么从excel中读取数据?

    python怎么从excel中读取数据?分母那么浩瀚,分子那么微弱.唯一就等于没有. #导入包 import xlrd #设置路径 path='C:\\Users\\jyjh\\Desktop\\da ...

  4. 从excel中读取数据,然后拟合幂律分布

    主体思路和代码参考:https://blog.csdn.net/kevinelstri/article/details/52685934 幂律分布原理研究:https://blog.csdn.net/ ...

  5. 从Excel中读取数据并自动生成BPMN标准流程图

    2022年6月,由于某个项目建设的要求,需要从Excel中读取流程数据并且自动生成遵循BPMN标准的流程图,以用于作业处理,目前支持这些流程图的主流开源框架有Activiti.Flowable.Cam ...

  6. matlab从excel读取数据,使用Matlab从Excel中读取数据并实现回归统计计算

    Excel中的数据: y = 7.3800 8.5100 9.5200 7.5000 9.3300 8.2800 8.7500 7.8700 7.1000 8.0000 x = 1.0000    5 ...

  7. python从excel中读取数据并填写网页表格

    话不多说,先直接上代码 import time from selenium import webdriver from selenium.webdriver.common.keys import Ke ...

  8. python从EXCEL中读取数据转换为列表

    首先,安装xlrd库 我之前安装了Anaconda,Anaconda自带xlrd库,在这里安装xlrd库这一步就省略了. 代码实现 下面是代码部分 import xlrd as xd data =xd ...

  9. java 从excel中读取数据_在Java中读取Excel文件的内容和导出数据到Excel文件中

    转自www.chianjavaworld.net 原作者:SonyMusic 读:rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 在Java ...

最新文章

  1. vc得到屏幕的当前分辨率方法
  2. Fiddler对手机抓包
  3. 爬虫python下载视频_用python做爬虫下载视频
  4. [vue] 什么是双向绑定?原理是什么?
  5. LeetCode 1966. Binary Searchable Numbers in an Unsorted Array
  6. c++虚函数动态联编需要避免的内存泄漏问题
  7. 用什么软件测试钢结构受力,钢结构平台承载力检测
  8. android控制wifi,基于 Android 手机操作和控制的 Wifi 小车程序设计
  9. python中index什么意思_index在python中是什么意思
  10. 如何提高迅雷下载速度
  11. 0-1背包问题和部分背包(fractional knapsack)问题分析(动态规划,贪心算法)
  12. 计算机组成原理及汇编语言程序设计 179页4-24题 假设(AX)=0FF60H,有以下程序段:
  13. vim 多窗口切换和其他的一些快捷方法
  14. DC-DC与LDO的区别
  15. MATLAB数字图像处理(一)——图像打开、保存与显示
  16. 水仙花数(输出全部水仙花数)
  17. 哈工大深圳计算机导师介绍,杜建军 - 教师名录 - 教师队伍 - 哈尔滨工业大学(深圳)...
  18. Twig中控制保留小数位数
  19. 临近毕业,2020春招困惑你的十大问题,你中招了吗?
  20. 机器学习实战——分类

热门文章

  1. 【Laravel笔记】12. 模型的预加载
  2. Ubuntu16.04 NVIDIA显卡驱动卸载与安装
  3. 怎么使用软件操作将桌面上CAD转换为黑色背景WMF格式?
  4. python中查看相对路径_python提取相对路径
  5. 非线性微分方程的平均法
  6. 第一次参加kaggle比赛的一些收获与心得,记录一下
  7. win10 屏幕切换鼠标手势桌面边缘快捷切换 ahk
  8. 准备离开:致消散的梦想
  9. 关于spidev_test自发自收数据不正确的解决方案
  10. Java初学 通过接口实现猫狗跳高