[机器学习-5]岭回归及python实现(Ridge Regression)

[机器学习-5]岭回归[L2正则化]及python实现(Ridge Regression)【L2】

前言

!!实现直接跳转实现
这章本来是为了接前面的过拟合(overfit)的,结果到现在过拟合还没水出来,所以就先写这一篇啦。
首先简单地提一下过拟合,所谓过拟合,可以理解为过度地取悦我们所用的数据,结果就是训练出来的模型,在我们的训练集(training set)上表现完美,结果在泛化上直接拉跨。原因是我们训练集内部可能有一些结构性的特点,而我们在训练的时候把它们考虑进来了。
下面的几个例子都可以很清楚地看到过拟合的现象出现
在这里插入图片描述
在这里插入图片描述

题目

今天我在做老师的题目的时候,遇到了这道题
在这里插入图片描述
简单来说,就是我们要训练一个模型来预测一个城市的犯罪率,我们先看老师给的README文件
在这里插入图片描述
我们的训练集中的第一列为犯罪率,后面为各种因素(比如失业率等等)也就是所谓的feature,使用训练集中的数据后,我们要在测试集上测试我们所训练出来的模型

岭回归(Ridge Regression)

众所周知,L1(LASSO)和L2(Ridge)都是我们用来防止出现过拟合的方法.
对于下面这么一个问题,我们怎么解决呢?我们知道我们的目标函数与限制即参数矩阵的二范数,结合起来,我们要求满足条件的最小参数矩阵。
在这里插入图片描述
我们可以通过添加惩罚来讲两者联系起来,这样一来,显然参数矩阵的二范数就不能过大了,因为它越大,惩罚越重。参数lambda与C显然存在具体关系(虽然我们不知道),这样我们就将选C,改变成了选lambda了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不同的L2正则化
在这里插入图片描述
在这里插入图片描述

k-fold validation

既然题目要求,那么我就来提一嘴吧
所谓k-fold validation就是将数据分成K份,分别将第i(i=1,…,K)份作为验证集(validation set),其余作为训练集,训练出来后在验证机上测试performance
在这里插入图片描述
最终通过测试选取一个拥有最小MSE的模型。需要注意与测试集的区别

sklearn ridge

这里我用到了sklearn自带的岭回归函数,它有一些自带的属性与方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)实现(realization)

import pandas as pd
import numpy as np
from matplotlib import pyplot
from sklearn import linear_model
import matplotlib.pyplot as plt
import math
from sklearn.metrics import mean_squared_error
from sklearn.base import clone
def E_in(theta,phi,y):
    result = 0.5*np.linalg.norm(np.dot(theta,phi)-y)
    return result
def E_aug(lambda_1, y, X, w):
    result = 0.5*np.linalg.norm(np.dot(w,X)-y)+lambda_1*np.linalg.norm(X)
    return result
if __name__ == '__main__':
    df_train = pd.read_table("crime-train.txt")
    df_test = pd.read_table("crime-test.txt")
    column = df_train.shape[1] #96
    row = df_train.shape[0] #1595
    MSE_SET =[]
    C_SET = []
    MSE_min = 0
    Y_train = df_train['ViolentCrimesPerPop'] # Y (2)
    buffer_train = df_train.copy
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ridge回归是一种机器学习算法,它是线性回归的一种变种。它在标准线性回归的基础上加入了一个正则化项,以防止过拟合Ridge回归的核心思想是通过最小化代价函数来找到最优的回归系数。代价函数由两部分组成,一部分是均方误差,用来衡量预测值与实际值之间的差距;另一部分是正则化项,用来控制回归系数的大小。正则化项中的参数λ决定了正则化的程度,越大则对回归系数的限制越严格。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [机器学习算法-线性回归、Lasso回归、Ridge回归算法python实现](https://download.csdn.net/download/LYQZDX/87921627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)](https://blog.csdn.net/sai_simon/article/details/122337097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [机器学习算法系列篇9:Lasso 和 Ridge回归算法](https://blog.csdn.net/robot_learner/article/details/103942849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值