python双曲线拟合

待拟合函数 y = alpha * pow(x, beta)

输入: x数组,y数组

输出: alpha,beta,相关系数R2

from scipy.optimize import leastsq
from pylab import *
import numpy as np

xdata = np.array([4.79616, 11.63, 37.5534, 105.414])

ydata = np.array([1.33921, 0.755319, 0.34085, 0.0554339])

# Define function for calculating a power law
powerlaw = lambda x, alpha, beta: alpha * (x ** beta)
logx = log10(xdata)
logy = log10(ydata)

# define our (line) fitting function
fitfunc = lambda p, x: p[0] + p[1] * x
errfunc = lambda p, x, y: (y - fitfunc(p, x))

pinit = [1.0, -1.0]
out, cov, infodict, mesg, ier = leastsq(errfunc, pinit,
                       args = (logx, logy), full_output=1)

beta = out[1]
alpha = 10.0 ** out[0]

ss_err = (infodict[‘fvec‘] ** 2).sum()
ss_tot = ((ydata - ydata.mean()) ** 2).sum()
r2 = 1 - (ss_err / ss_tot)

print(‘Alpha: %f, Beta: %f‘ % (alpha, beta))
print (‘R2: %f‘ % r2)

  

时间: 2024-11-05 08:01:52

python双曲线拟合的相关文章

python最小二乘法拟合

知道函数形式,python用最小二乘法拟合函数参数 例子: #-*- coding: utf-8 -*- #最小二乘拟合 #知道函数形式了,拟合函数的参数 #通过leastsq函数对带噪声的实验数据x, y1进行数据拟合,可以找到x和真实数据y0之间的正弦关系的三个参数: A, k, theta import numpy as np from scipy.optimize import leastsq import matplotlib.pyplot as pl def func(x,p): "

python matplotlib拟合直线

import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] def linear_regression(x, y): N = len(x) sumx = sum(x) sumy = sum(y) sumx2 = sum(x ** 2) sumxy = sum(x * y) A

[ML]从最简单的撸起-python实现线性拟合数据

注明:本文并非教程,仅作为记录本人的日常学习历程而存在. 目标:实现将图中的大量红色X状标记拟合为图中所示的一条蓝色直线 基本思想:吴恩达的coursera机器学习课程变量线性回归章节:递度下降法 实现: 1.引入相关库:这里用到了python的科学计算库numpy和绘图库matplotlib import numpy as np import matplotlib.pyplot as plt 2.虚拟生成数据:因为入门,暂时找不到现成的数据可以使用,故使用numpy的随机函数生成所需要的数据

python遗传算法实现数据拟合

python据说功能强大,触角伸到各个领域,网上搜了一下其科学计算和工程计算能力也相当强,具备各种第三方包,除了性能软肋外,其他无可指摘,甚至可以同matlab等专业工具一较高下. 从网上找了一个使用遗传算法实现数据拟合的例子学习了一下,确实Python相当贴合自然语言,终于编程语言也能说人话了,代码整体简洁.优雅.. 代码功能:给出一个隐藏函数 例如 z=x^2+y^2,生成200个数据,利用这200个数据,使用遗传算法猜测这些数据是什么公式生成的. (说的太直白,一点都不高大上) 代码如下:

用Python开始机器学习(3:数据拟合与广义线性回归)

机器学习中的预测问题通常分为2类:回归与分类. 简单的说回归就是预测数值,而分类是给数据打上标签归类. 本文讲述如何用Python进行基本的数据拟合,以及如何对拟合结果的误差进行分析. 本例中使用一个2次函数加上随机的扰动来生成500个点,然后尝试用1.2.100次方的多项式对该数据进行拟合.拟合的目的是使得根据训练数据能够拟合出一个多项式函数,这个函数能够很好的拟合现有数据,并且能对未知的数据进行预测. 代码如下: [python] view plain copy import matplot

Python 普通最小二乘法(OLS)进行多项式拟合

多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法: import numpy as np import pandas as pd #import statsmodels.api as sm #方法一 import statsmodels.formula.api as smf #方法二 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D df = pd.read_c

python中matplotlib实现最小二乘法拟合的过程详解

这篇文章主要给大家介绍了关于python中matplotlib实现最小二乘法拟合的相关资料,文中通过示例代码详细介绍了关于最小二乘法拟合直线和最小二乘法拟合曲线的实现过程,需要的朋友可以参考借鉴,下面来一起看看吧. 前言 最小二乘法Least Square Method,做为分类回归算法的基础,有着悠久的历史(由马里·勒让德于1806年提出).它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小.最小二乘法还

用python的numpy作线性拟合、多项式拟合、对数拟合

转自:http://blog.itpub.net/12199764/viewspace-1743145/ 项目中有涉及趋势预测的工作,整理一下这3种拟合方法:1.线性拟合-使用mathimport mathdef linefit(x , y):    N = float(len(x))    sx,sy,sxx,syy,sxy=0,0,0,0,0    for i in range(0,int(N)):        sx  += x[i]        sy  += y[i]        s

机器学习之路:python 多项式特征生成PolynomialFeatures 欠拟合与过拟合

分享一下 线性回归中 欠拟合 和 过拟合 是怎么回事~为了解决欠拟合的情 经常要提高线性的次数建立模型拟合曲线, 次数过高会导致过拟合,次数不够会欠拟合.再建立高次函数时候,要利用多项式特征生成器 生成训练数据.下面把整个流程展示一下模拟了一个预测蛋糕价格的从欠拟合到过拟合的过程 git: https://github.com/linyi0604/MachineLearning 在做线性回归预测时候,为了提高模型的泛化能力,经常采用多次线性函数建立模型 f = k*x + b 一次函数f = a