Python 拟合多自变量与单因变量的非线性关系 - 使用高斯函数
Python 拟合多自变量与单因变量的非线性关系 - 使用高斯函数
本文将介绍如何使用 Python 代码拟合多自变量与单因变量的非线性关系,并以高斯函数为例进行演示。
1. 导入库
首先,我们需要导入所需的库,包括 pandas、numpy 和 scipy:
import pandas as pd
import numpy as np
import scipy.optimize as opt
2. 读取数据
使用 pandas 库读取 Excel 表格中的数据:
data = pd.read_excel('data.xlsx')
3. 分离自变量和因变量
将数据分成自变量和因变量两个部分:
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
4. 定义非线性函数
定义一个非线性函数,用于拟合自变量和因变量之间的关系。本例中,我们使用高斯函数来拟合数据:
def gaussian(x, *params):
A, mu, sigma = params
return A * np.exp(-(x - mu) ** 2 / (2 * sigma ** 2))
5. 拟合数据
使用 scipy 库中的 curve_fit 函数来拟合数据:
params, _ = opt.curve_fit(gaussian, X, y)
6. 计算拟合值
使用拟合的参数来计算自变量和因变量之间的关系:
y_fit = gaussian(X, *params)
完整代码
import pandas as pd
import numpy as np
import scipy.optimize as opt
# 读取数据
data = pd.read_excel('data.xlsx')
# 分离自变量和因变量
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 定义高斯函数
def gaussian(x, *params):
A, mu, sigma = params
return A * np.exp(-(x - mu) ** 2 / (2 * sigma ** 2))
# 拟合数据
params, _ = opt.curve_fit(gaussian, X, y)
# 计算拟合值
y_fit = gaussian(X, *params)
注意
这只是一个简单的示例代码,实际上,根据数据的特点和研究问题的不同,可能需要使用不同的非线性函数来拟合数据,并进行更复杂的数据处理和分析。
原文地址: https://www.cveoy.top/t/topic/m5dU 著作权归作者所有。请勿转载和采集!