机器学习--逐步回归算法,线性回归的特征选择算法

逐步回归算法

监督式学习算法的任务是拟合多个特征与标签的关系,在实际应用中,所收集的数据中,所有的特征可能并不是都与标签有关联。模型中如果包含与标签无关联的特征,不仅会增加数据规模和计算量,还会影响模型对标签的预测效果。因此特征选择是监督式学习算法的一个重要组成部分。
逐步回归是一个贪心算法。它的运行效率较高,但也因为其是贪心算法,有时会做出次优的最优选择。

向前逐步回归算法

向前逐步回归算法是最简单的一种特征选择方法,大概做法为:在向前逐步回归算法的初始阶段,先选定第一个特征,然后重复执行以下几个步骤----首先计算只使用当前选定的特征的线性回归的均方误差,然后逐一引入尚未选取的特征,选择能最大程度降低均方误差的一个特征,判断该特征是否在统计意义上显著地降低均方误差,如果是,就将该特征加入模型。重复循环上述过程,直至没有能够被继续选中的特征为止。

判断选择的特征是否在统计意义上显著降低均方误差

在向前逐步回归算法中,采用F检验来判断均方误差的减小是否具有统计显著性。
给定两个均方误差mse1 和mse2,设mse1>mse2。用F检验计算mse1>mse2的置信度p。
置信度p是在重新采样训练数据并对其重复向前逐步选择算法时再次出现mse1>mse2的概率。
如果置信度p>95%,则认为mse1>mse2这一结论具有统计显著性。

import numpy as np
from scipy.stats import f
# 向前逐步选择
class StepwiseRegression():
    def fit(self,X,y):
        return np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)

    # 计算均方误差
    def compute_mse(self,X,y):
        w = self.fit(X,y)
        r = y - X.dot(w)
        
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值