Python幂律拟合异常求助:结果偏差大或仅返回初始参数
幂律曲线拟合异常排查求助
用Python拟合幂律曲线时遇到以下问题:
- 随机生成的数据测试时,拟合效果正常;但处理自有数据时,拟合结果偏差极大
- 尝试给
curve_fit提供初始参数后,拟合仅返回初始参数 - 添加初始猜测值与参数边界后,拟合结果仍明显偏差
测试用代码(随机数据拟合正常)
import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit # 定义幂律函数 def power_law(x, factor, exponent): ''' x: x轴数据 factor: y轴截距相关参数 exponent: 幂次(斜率) ''' return factor * x ** exponent # 生成符合幂律分布的模拟数据 np.random.seed(0) # 保证可复现 x_data = np.linspace(1, 10, 50) # 示例x值 y_data = power_law(x=x_data, factor=0.2, exponent=-10) * (1 + np.random.normal(scale=0.1, size=len(x_data))) # 加噪声的示例y值 # 拟合幂律模型 params, covariance = curve_fit(power_law, x_data, y_data) # 提取拟合参数 fac_fit, exp_fit = params # 绘制数据与拟合曲线 plt.figure() plt.scatter(x_data, y_data, label='Data') plt.plot(x_data, power_law(x_data, fac_fit, exp_fit), color='red', label='Fitted Power Law') plt.xscale('log') plt.yscale('log') plt.xlabel('X') plt.ylabel('Y') plt.title('Fitting a Power Law to Data') plt.legend() plt.grid(True) plt.show() # 打印拟合参数 print("Fitted Parameters:") print("factor =", fac_fit) print("exponent =", exp_fit)
自有数据拟合代码
# 自有数据 x_data = freq_full_ordered_withM[mask] y_data = PSD_full_ordered_withM[mask] # 过滤非正x值及对应y值 positive_mask = x_data > 0 x_data = x_data[positive_mask] y_data = y_data[positive_mask] # 拟合幂律模型 params, covariance = curve_fit(power_law, x_data, y_data) # 提取拟合参数 fac_fit, exp_fit = params # 绘制数据与拟合曲线 plt.figure() plt.scatter(x_data, y_data, label='Data') plt.plot(x_data, power_law(x_data, fac_fit, exp_fit), color='red', label='Fitted Power Law') plt.xscale('log') plt.yscale('log') plt.xlabel('X') plt.ylabel('Y') plt.title('Fitting a Power Law to Data') plt.legend() plt.grid(True) plt.show()
更新尝试:添加初始参数与边界后仍偏差
initial_guess = [10**2, -2] # 初始猜测参数(factor, exponent) bounds = ([10**0, -5], [10**5, 0]) # 参数上下界(factor, exponent) # 拟合幂律模型 params, covariance = curve_fit(power_law, x_data, y_data, p0=initial_guess, bounds=bounds)
拟合结果图
- 随机数据拟合图:

- 自有数据拟合图:

- 添加初始参数后拟合图:

恳请各位技术同行协助排查问题原因并提供解决方案。
内容的提问来源于stack exchange,提问作者Apinorr
相关产品推荐
相关产品推荐

