线性回归的基础知识

科技   2024-09-29 08:31   广东  

 今天是生信星球陪你的第996天


   

公众号里的文章大多数需要编程基础,如果因为代码看不懂,而跟不上正文的节奏,可以来找我学习,相当于给自己一个新手保护期。我的课程都是循环开课,点进去咨询微信↓

生信分析直播课程(9月30日下一期)

生信新手保护学习小组(10月初下一期)

单细胞陪伴学习小组(10月初下一期)

一些尘封已久的统计学知识啊。一开始也是感觉不像能看懂的样子,其实沉下心来理解理解,以前都学过,只是从脑子里唤醒一下罢了,很简单的。

目录

1.一元线性回归    1.1 线性回归是如何确定a和b的?    1.2 理解残差平方和2.多元线性回归    2.1 用所有的特征来拟合血糖    2.2 衡量线性回归的默认方式是R^23.常见的误差函数    3.1 残差平方和(RSS)    3.2 均方误差(MSE)    3.3 均方根误差(RMSE)

1.一元线性回归

y = ax+b

y  是目标变量

x 是单一特征,a和b是参数或者说系数。即斜率截距

1.1 线性回归是如何确定a和b的?

  • 为所有的回归线定义一个误差函数(也叫损失函数)
  • 选出让误差函数最小的一条线

error function = loss function = cost function

误差函数=损失函数=成本函数

1.2 理解残差平方和

预测值与真实值之差就是残差

如果将所有残差求和,正负数会相互抵消。所以,将残差求平方再求和,即得到残差平方和 (RSS)。

使残差平方和最小的线性回归,称为普通最小二乘法 ,“最小二乘”指的是最小化误差的平方和。

2.多元线性回归

特征不只有一个,而是两个或更多,代码也是类似的。

2.1 用所有的特征来拟合血糖

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
                                                    random_state=42)
reg_all = LinearRegression()
reg_all.fit(X_train, y_train)
y_pred = reg_all.predict(X_test)

2.2 衡量线性回归的默认方式是R^2

R^2量化特征解释目标变量方差的百分之多少,范围通常在0~1之间。如果 R^2为 0,意味着模型没有解释任何变异性,即模型的预测与实际值的平均值一样。值越接近 1,表示模型解释的变异性占比越高,模型的拟合效果越好。

reg_all.score(X_test, y_test)

对于分类模型,score计算的是准确率,而对于回归模型,score计算的是R方。

3.常见的误差函数

  • 残差平方和(RSS)
  • 均方误差(MSE)
  • 均方根误差(RMSE)

3.1 残差平方和(RSS)

rss = ((y_pred - y_test) ** 2).sum()
rss

3.2 均方误差(MSE)

是RSS除以样本数量,有专门的函数可以计算

from sklearn.metrics import mean_squared_error 
mean_squared_error(y_test, y_pred)
## 579.5923759407298

3.3 均方根误差(RMSE)

是均方误差开根号。

from sklearn.metrics import root_mean_squared_error 
root_mean_squared_error(y_test, y_pred)
## 24.07472483624122

生信星球
一个零基础学生信的平台-- 原创结构化图文/教程,精选阶段性资料,带你少走弯路早入门,收获成就感,早成生信小能手~
 最新文章