python回归算法_机器学习算法之回归详解

本文详细介绍了回归算法在机器学习中的应用,包括普通线性回归、局部加权线性回归和岭回归。通过Python代码实现,讨论了不同回归方法的优缺点,如线性回归可能出现的欠拟合和过拟合问题,以及如何通过权重调整改善预测效果。此外,文章还提到了交叉验证和LASSO回归在模型选择和特征选择中的作用。
摘要由CSDN通过智能技术生成

导语

回归:从一组数据出发,确定某些变量之间的定量关系式;即建立数学模型并估计未知参数。

回归的目的是预测数值型的目标值,它的目标是接受连续数据,寻找最适合数据的方程,并能够对特定值进行预测。这个方程称为回归方程,而求回归方程显然就是求该方程的回归系数,求这些回归系数的过程就是回归。

我们先来看看回归跟分类的区别:(引用 - 走刀口的回答 - 知乎

https://www.zhihu.com/question/21329754/answer/17901883)

分类和回归的区别在于输出变量的类型。

定量输出称为回归,或者说是连续变量预测;

定性输出称为分类,或者说是离散变量预测。

举个例子:

预测明天的气温是多少度,这是一个回归任务;

预测明天是阴、晴还是雨,就是一个分类任务。

普通线性回归

我们做线性回归是为了得到一个最优回归系数向量w使得当我们给定一个x能够通过y=xw预测y的值。假定输入数据存放在矩阵 X 中,而回归系数存在在向量 w 中。那么对于给定的数据X1,预测结果将会通过Y1=XT1w给出。

那么怎样的w才是最优的呢?在标准线性回归中我们需要找到是误差最小的w, 即预测的y值与真实的y值之间的差值,为了避免简单累加造成的正负差值相互抵消,这里采用了平方误差:

平方误差

用矩阵可表示为:(y-Xw)T(y-Xw),)因为要求函数的极小值,对w求导可得:

对w求导

使其等于0,便可求出W的最优解:

求出w

上述求w最优解的方法也叫做最小二乘法。

需要注意的是,上述公式中包含(XTX)-1,也就是需要对矩阵求逆,因此这个方程只有在逆矩阵存在的时候有用,所以我们写代码时必须需要事先确定矩阵是否可逆。

此外,我们知道线性回归的方程的一般形式为:y=wx+b;即存在一定的偏移量b,于是,我们可以将回归系数和特征向量均增加一个维度,将函数的偏移值b也算作回归系数的一部分,占据回归系数向量中的一个维度,比如w=(w1,w2,...,wN,b)。相应地,将每条数据特征向量的第一个维度设置为1.0,即所有特征向量的第一个维度值均为1.0,这样,最后得到的回归函数形式为y=w[0]+w[1]x1+...+w[N]xN.

Python代码实现

# 普通线性回归

def standRegress(xArr, yArr):

# 用mat函数转换为矩阵之后可以才进行一些线性代数的操作

xMat = mat(xArr); yMat = mat(yArr).T

# XtX

xTx = xMat.T * xMat

# 判断矩阵是否可逆

if linalg.det(xTx) == 0:

print("This matrix is singular, cannot do inverse")

return

# 根据公式计算w

w_hat = xTx.I * (xMat.T * yMat)

return w_hat

线性回归拟合

相关系数(Correlation Coefficient)计算:

几乎任意数据集都可以用上述方法建立模型,怎么判断这些模型的好坏呢?为了计算预测值序列和真实值序列的匹配程度,可以计算出这两个序列的相关系数。

计算公式:

相关系数

公式就是用X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值