我用什么来找到 python 中最佳拟合模型的有理回归线?
What do I use in order to find the rational regression line of best fit model in python?
from numpy import *
from matplotlib.pyplot import *
import pandas as pd
data = pd.read_csv('student-mat.csv', sep=';')
predict = 'Markup'
original = 'OriginalPrice'
y = np.array(data[predict])
x = np.array(data[original])
p1 = polyfit(x,y,1)
p2 = polyfit(x,y,2)
p3 = polyfit(x,y,3)
print(p1,p2,p3)
plot(x,y,'o')
plot(x,polyval(p1,x), 'r-')
plot(x,polyval(p2,x), 'b-')
plot(x,polyval(p3,x), 'm-')
show()
我试图用一条最佳拟合线来表示一组数据,最初我使用了多项式,但似乎我需要对这组数据进行有理数。我不确定使用什么函数来生成合理的最佳拟合模型线。理想情况下,我可以简单地将 polyfit
函数替换为有理函数。在此先感谢,欢迎任何帮助:).
您可以编写自己的函数并使用最小二乘法将误差最小化吗?例如...
对于任意指数型数据,在变量 X 和 Y 中:
def exp(args):
a, b, c, d, e = args
curve = [a*b**(c*x-d)+e for x in X]
rmse = sum((y-pt)**2 for y,pt in zip(Y,curve))**0.5
return rmse
fit = optimize.minimize(exp, [2, 2.8, -1, 0, 1]).x #initial guess
看随机点+曲线拟合
from numpy import *
from matplotlib.pyplot import *
import pandas as pd
data = pd.read_csv('student-mat.csv', sep=';')
predict = 'Markup'
original = 'OriginalPrice'
y = np.array(data[predict])
x = np.array(data[original])
p1 = polyfit(x,y,1)
p2 = polyfit(x,y,2)
p3 = polyfit(x,y,3)
print(p1,p2,p3)
plot(x,y,'o')
plot(x,polyval(p1,x), 'r-')
plot(x,polyval(p2,x), 'b-')
plot(x,polyval(p3,x), 'm-')
show()
我试图用一条最佳拟合线来表示一组数据,最初我使用了多项式,但似乎我需要对这组数据进行有理数。我不确定使用什么函数来生成合理的最佳拟合模型线。理想情况下,我可以简单地将 polyfit
函数替换为有理函数。在此先感谢,欢迎任何帮助:).
您可以编写自己的函数并使用最小二乘法将误差最小化吗?例如...
对于任意指数型数据,在变量 X 和 Y 中:
def exp(args):
a, b, c, d, e = args
curve = [a*b**(c*x-d)+e for x in X]
rmse = sum((y-pt)**2 for y,pt in zip(Y,curve))**0.5
return rmse
fit = optimize.minimize(exp, [2, 2.8, -1, 0, 1]).x #initial guess
看随机点+曲线拟合