统计学第一章--最小二乘拟合正弦函数,正则化

#coding:utf-8
import numpy as np
import scipy as sp
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
# 目标函数
def real_func(x):
    return np.sin(2*np.pi*x)

# 多项式
def fit_func(p, x):
    f = np.poly1d(p)
    # print('f=',f)
    return f(x)

# 残差
def residuals_func(p, x, y):
    ret = fit_func(p, x) - y
    return ret

# 十个点
x = np.linspace(0, 1, 10)
x_points = np.linspace(0, 1, 1000)
# 加上正态分布噪音的目标函数的值
y_ = real_func(x)
y = [np.random.normal(0, 0.1) + y1 for y1 in y_]


def fitting(M=0):
    """
    M    为 多项式的次数
    """
    # 随机初始化多项式参数
    p_init = np.random.rand(M + 1)
    # 最小二乘法
    p_lsq = leastsq(residuals_func, p_init, args=(x, y))
    print('Fitting Parameters:', p_lsq[0])
    #
    # 可视化
    plt.plot(x_points, real_func(x_points), label='real')
    plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')
    plt.plot(x, y, 'bo', label='noise')
    plt.legend()
    plt.show()
    return p_lsq
# M=0
p_lsq_0 = fitting(M=0)
# M=1
p_lsq_1 = fitting(M=1)
# M=3
p_lsq_3 = fitting(M=3)
# M=9
p_lsq_9 = fitting(M=9)

M分别为0,1,3,9时的多项式系数。 

 

M=0,即多项式为常数时 

M=1, 即多项式为一次项时

 M=3,即多项式为三次项时,可看出拟合的比较不错

M=9时,可看出过拟合了

引入正则化

#加入正则
regularization = 0.0001
def residuals_func_regularization(p, x, y):
    ret = fit_func(p, x) - y
    ret = np.append(ret, np.sqrt(0.5*regularization*np.square(p))) # L2范数作为正则化项
    return ret
# 最小二乘法,加正则化项
p_init = np.random.rand(9+1)
p_lsq_regularization = leastsq(residuals_func_regularization, p_init, args=(x, y))
plt.plot(x_points, real_func(x_points), label='real')
plt.plot(x_points, fit_func(p_lsq_9[0], x_points), label='fitted curve')
plt.plot(x_points, fit_func(p_lsq_regularization[0], x_points), label='regularization')
plt.plot(x, y, 'bo', label='noise')
plt.legend()
plt.show()

可看出:正则化有效 

 

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Simpca-p偏最小二乘(PLS)使用手册(中文版)是一本关于Simpca-p偏最小二乘分析方法的指南。PLS是一种多变量统计分析方法,用于探究多个自变量与一个或多个因变量之间的相关性。该手册提供了对Simpca-p偏最小二乘方法的详细介绍、理论基础和应用实例。 手册首先介绍了Simpca-p偏最小二乘的基本概念和原理。它解释了PLS如何将多个自变量与因变量进行联合建模,以最大程度地解释两者之间的相关性。手册介绍了PLS中使用的数据处理和模型建立的基本流程,包括数据预处理和模型验证等环节。 接下来,手册详细解释了Simpca-p偏最小二乘的算法和计算步骤。它介绍了基于线性代数和统计学原理的模型构建和参数估计方法。同时,手册还讲解了如何使用相关软件或编程语言实现Simpca-p偏最小二乘方法,并提供了使用示例和代码片段。 此外,手册还提供了丰富的案例研究和实际应用。它展示了Simpca-p偏最小二乘在不同领域和问题中的应用,如化学分析、生物医学、金融预测等。这些案例研究可以帮助读者更好地理解Simpca-p偏最小二乘方法的实际应用场景和效果。 总之,Simpca-p偏最小二乘使用手册(中文版)是一本全面而详细的指南,为读者提供了关于Simpca-p偏最小二乘方法的理论基础、算法实现和实际应用的全面介绍。阅读这本手册可以帮助读者更好地理解和掌握Simpca-p偏最小二乘方法,并在实际问题中灵活运用。 ### 回答2: Simca-P(Soft Independent Modeling of Class Analogy)是一种常用的化学数据分析软件,而PLS(Partial Least Squares)则是Simca-P中的一种建模方法。Simca-P偏最小二乘PLS使用手册(中文版)主要介绍了如何使用PLS方法进行数据分析和建模。 在Simca-P中,PLS的主要功能是进行数据预处理、建立模型和进行模型评估。首先,手册会介绍如何导入和预处理化学数据,包括缺失值处理、变量选择和数据标准化等。然后,手册会详细介绍如何使用PLS方法建立模型,包括选择合适的模型类型、设置模型参数和优化模型性能等。同时,手册也会讲解如何使用交叉验证方法评估模型的预测性能和稳定性。 另外,Simca-P偏最小二乘PLS使用手册还会提供一些实际案例和示例,以帮助读者更好地理解和运用PLS方法。这些案例通常涉及不同领域的化学数据分析问题,如无机化合物分析、药物质量控制和食品质量评估等。通过学习这些案例,读者可以掌握如何在实际问题中应用PLS方法进行数据建模和预测。 总的来说,Simca-P偏最小二乘PLS使用手册是一本指导用户在Simca-P软件中使用PLS方法进行数据分析和建模的实用工具。通过学习这本手册,读者可以快速掌握PLS方法的原理和操作步骤,并能够独立地在Simca-P软件中进行化学数据分析和建模工作。 ### 回答3: SIMCA-P偏最小二乘(PLS)使用手册是一个详细介绍如何在SIMCA-P软件中使用PLS方法的指南。PLS是一种多元统计分析方法,用于建立预测模型和解释数据变异的模型。 该手册首先会介绍PLS方法的基本原理和数学模型。PLS方法通过在自变量和因变量之间建立潜在变量来预测和解释数据。这些潜在变量是通过最小化自变量和因变量之间的协方差来得到的。 之后,手册会详细说明在SIMCA-P软件中如何使用PLS方法。它会介绍如何导入数据集、选择自变量和因变量、进行数据预处理和模型建立等步骤。手册还会介绍如何进行模型的验证和优化。 除了建立模型,该手册还包括了如何解释和评估模型的方法。它会介绍如何解释变量的重要性、解释模型的贡献和解释潜在变量之间的关系等内容。 最后,该手册还会提供一些案例研究,以帮助读者更好地理解和应用PLS方法。这些案例研究会展示如何应用PLS方法解决实际问题,并给出相应的结果和解释。 总的来说,SIMCA-P偏最小二乘(PLS)使用手册是一本全面而详细的指南,可以帮助用户在SIMCA-P软件中学习和应用PLS方法。它不仅介绍了PLS方法的原理和数学模型,还提供了详细的操作步骤和案例研究,使用户能够更好地理解和应用该方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值