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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录