数据分析-回归

@回归

回归(Regression)这一概念最早由英国生物统计学家高尔顿和他的学生皮尔逊在研究父母亲和子女的身高遗传特性时提出“子女的身高趋向于高于父母的身高的平均值,但一般不会超过父母的身高。”-- 《遗传的身高向平均数方向的回归》
如今,我们做回归分析时所讨论的“回归”和这种趋中效应已经没有任何瓜葛了,它只是指源于高尔顿工作的那样——用一个或多个自变量来预测因变量的数学方法。
在一个回归模型中,我们需要关注或预测的变量叫做因变量,我们选取的用来解释因变量变化的变量叫做自变量。

1、回归算法

1) 线性回归
linear_model.LinearRegression

一元线性回归

当自变量只有1个时,假设𝑦=𝑤0+𝑤1* 𝑥+𝜀,其中𝑤0为截距,𝑤1为回归系数,𝜀 为随机误差项(noise),假设 𝜀~𝑁(0, 𝜎^2 ),则随机变量𝑦~𝑁(𝑤0+𝑤1 𝑥, 𝜎^2)
给定样本集合D={(𝑥1, 𝑦1 ), …, (𝑥𝑛, 𝑦𝑛 )},目标是找到(𝑤0,𝑤1),使得所有样本点尽可能与直线𝑦=𝑤0+𝑤1*𝑥近。
目标函数:
在这里插入图片描述
求导,令导数等于零,将观测值Xi,Yi分别带入,最小二乘求解最优的𝑤0,𝑤1。

多元线性回归

当自变量只有n个时(n>1),n维空间的直线可以表示为𝑦=𝑤0+𝑤1* 𝑥1+w2x2+…+wnxn+𝜀
给定样本集合D={(𝑥11,…,xn1, 𝑦1 ), …, (𝑥1k,…,xnk, 𝑦k )},目标是找到(𝑤0,𝑤1,…,wn),使得所有样本点尽可能与直线𝑦=𝑤0+𝑤1* 𝑥1+w2x2+…+wnxn近。
目标函数:
在这里插入图片描述
其中x为n维向量(x1,…,xn)
在这里插入图片描述

2) 岭回归
linear_model.Ridge
岭回归在最小二乘法的目标函数上加上一个对𝒘的惩罚函数,避免过拟合。
其目标函数为
在这里插入图片描述
求导可得:
在这里插入图片描述

3) LASSO回归
linear_model.Lasso
LASSO 是一种系数压缩估计方法,它的基本思想是通过追求稀疏性自动选择重要的变量
LASSO 的目标函数:
LASSO 的目标函数
LASSO没有解析表达式,常用的求解算法包括坐标下降法、LARS算法和ISTA算法等

4)弹性网络回归
linear_model.ElasticNet
弹性网络回归综合岭回归与LASSO回归。
在这里插入图片描述
5) 贝叶斯岭回归
linear_model.BayesianRidge
贝叶斯回归链接

6)RANSAC
linear_model.RANSACRegressor
当数据集中有较多的离群值,使用RANSAC算法针对离群值做处理,根据数据子集(所谓的内点)拟合回归模型。
RANSAC算法流程:
1)随机选择一定数量的样本作为内点拟合模型
2)用模型测试其他所有的点,把落在给定范围内的点放入内点集
3)调整模型中使用的所有内点
4)用内点重新拟合模型
5)评估模型预测结果与内点集相比较的误差
6)如果性能达到自定义的阈值或指定的迭代次数,则终止,否则返回步骤1

7) K近邻回归
neighbors.KNeighborsRegressor
K近邻回归链接
8)支持向量回归
svm.SVR
推荐链接:
支持向量回归

9)决策树回归
tree.DecisionTreeRegressor
推荐链接:
决策树回归

2、方法与属性

方法

fit() # 拟合
predict() #预测
score() #评价 R方 score(X_test,y_test)

属性

coef_ #回归系数
intercept_ #截距

3、评价

3.1 coefficient of determination

决定系数也称为拟合优度,决定系数越大,自变量对因变量的解释程度越高,拟合优度就越好,最高值为1。

通常使用𝑅^2进行模型评价。
𝑅^2
=解释变化/总变化
=1–未解释的变化/总变化
在这里插入图片描述
其中:总平方和(实际值与均值的差)
在这里插入图片描述
残差平方和(实际值与预测值的差)
在这里插入图片描述
R方统计有一个主要缺陷。当回归模型中自变量增加时,其值要么保持不变,要么随着新的自变量的增加而增加。
当自变量足够多时总会得到模型拟合良好,而实际却可能并非如此。
因此引入调整R方。
在这里插入图片描述
其中:
n表示数据集中的数据点数量
k表示自变量的个数
R代表模型确定的R方值

3.2 均方误差(mean squared error):

在这里插入图片描述

3.3 平均绝对误差(mean absolute error):

在这里插入图片描述

3.4 其它评价方法

在这里插入图片描述

3.5 sklearn实现

平均绝对误差:
metrics.mean_absolute_error
均方误差
metrics.mean_squared_error
均方对数误差
metrics.mean_squared_log_error
中值绝对误差
metrics.median_absolute_error
决定系数R^2
metrics.r2_score

参数:
(真实值,预测值)

4、多项式回归

在线性回归中,我们是寻找一条直线来尽可能的拟合数据。但是我们在大部分情况下并不满足简单的线性回归的。当自变量与因变量不是线性(直线)关系时,可采用多项式回归(Polynomial regression)。

(升维)

x = np.random.uniform(-3, 3, size = 100)
y=x*x*3+x*4+5+np.random.normal(0, 1, size = 100)
from sklearn.preprocessing import PolynomialFeatures
#(degree=2),增加二次项特征
#eg1:
# x  ,  y(标签/因变量)
#增加新的特征(degree=2)  x*x
# x ,  x*x,  y
#eg2:
#x1 ,x2, x3,  y(标签/因变量)
#增加   x1*x1,x2*x2,x3*x3,x1*x2,x1*x3,x2*x3二次项(degree=2)
#x1,x2,x3,x1*x1,x2*x2,x3*x3,x1*x2,x1*x3,x2*x3
poly = PolynomialFeatures(degree=2) # 添加特征(升维)
poly.fit(x)
X2 = poly.transform(x)
#X2为增加2次项后的数据
# 训练
lin_reg = LinearRegression()
lin_reg.fit(X2, y)
y_pred = lin_reg.predict(X2)
plt.scatter(x, y)
plt.scatter(x, y_pred, color = 'r')
plt.show()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITLiu_JH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值