今天是生信星球陪你的第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