[集成学习]task02:回归问题

[集成学习]task02:回归问题

  • 线性回归模型
    求解线性回归模型的参数:
    构建一个含有参数的 Loss Function,求解使得 Loss Function最小的参数的值。
    一般的 Loss Function的形式有:
    在这里插入图片描述求参数值的方法:
    (1)最小二乘估计
    以估计值与真实值差的平方的和为 Loss Function,对 Loss Function求关于参数的导数,得到 Loss Function取极小值时参数所对应的值。
    (2)几何法

(3)极大似然估计
假设噪声的分布已知,通过噪声的分布构造似然函数,通过求似然函数的极值求解参数的值。

  • 线性模型的推广
    对于分布是非线性的数据,我们可以采取以下几种方法进行建模。
    (1)多项式回归
    注:多项式的阶数不能过高,若多项式的阶数过高,会产生过拟合的现象,使得模型缺乏泛型。
    (2)GAM模型
    (3)回归树模型
    在这里插入图片描述

(4)支持向量机回归(SVR)

作业

在这里插入图片描述
(2)极大似然估计与最小二乘估计的联系与区别
区别:在极大似然估计中,要假设噪声服从正态分布,只有在已知分布的情况下,才能够构造出似然函数。而在最小二乘估计中不需要做出假设。
联系:极大似然估计与最小二乘估计的结果相同。

(3)为什么多项式回归在实际问题中的表现经常不是太好?
多项式回归模型次数越高,曲线就越光滑,在边界处的置信区间增大,预测效果的稳定性降低

(5)什么是KKT条件?
在这里插入图片描述

(6)为什么要引入原问题的对偶问题?
对偶问题是一个凸优化问题,凸优化问题在最优化理论较为简单。

(7)找到一个具体数据集,用线性回归模型拟合模型,要求不能使用sklearn,只能用python与numpy

import numpy as np
import matplotlib.pyplot as plt

a=[1.3,7.9,6.4,9.2,13.7,17.1,28.2,53.8,44.5,61.9,89.9]
p=[3.3,5.8,4.2,7.3,6.2,12.8,13.6,22.7,18.3,40.8,67.1]
a_test=np.random.choice(a)
p_test=np.random.choice(p)
 
if __name__ == '__main__':
    # 初始化
    k = 0
    b = 0
    lr = 1e-7 
    iteration_times = int(1e5) 
 
    for i in range(iteration_times):
        k_gradient = 0
        b_gradient = 0
        for j in range(len(a)):                     
            k_gradient += 2*(p[j]-k*a[j]-b)*(-a[j])  
            b_gradient += 2*(p[j]-k*a[j]-b)*(-1)        
        k -= lr*k_gradient
        b -= lr*b_gradient
 
    print(f"k的值:{k},b的值:{b}")
    print(f"预测的模型 y = {k}*x + {b}")
    x = np.linspace(0,100,50) 
    y = k*x+b   
    plt.rcParams['font.sans-serif'] = ['SimHei']    
    plt.plot(x,y,label="我们预测的直线")
    plt.legend()
 
    plt.plot(a,p,"ro",label="使用数据的点")
    plt.legend()
 
    plt.plot(a_test,p_test,"ko",label="测试的点")
    plt.legend()
 
    plt.show()

在这里插入图片描述

参考:
[1] https://github.com/datawhalechina/ensemble-learning
[2]https://blog.csdn.net/qq_39627843/article/details/105243618

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值