R小盐准备介绍R语言机器学习与预测模型的学习笔记
你想要的R语言学习资料都在这里, 快来收藏关注【科研私家菜】
01 偏差和方差
高偏差模型的一个例子是逻辑回归或线性回归,其中模型的偏移量仅为一条直线,由于线性模型无法很好地逼近底层数据,因此可能具有高误差分量。高方差模型的一个示例是决策树,在该模型中,模型可能会创建太多的摆动曲线作为拟合,其中,即使对内部数据进行微小更改,也会导致曲线拟合发生剧烈变化。目前,最先进的模型正在利用高方差模型,如决策树,并在其上执行集成,以减少高方差引起的误差,同时不影响因偏差分量导致的误差增加。这一类别的最佳示例是随机森林,其中许多决策树将独立生长并集成以获得最佳拟合;
在统计建模中,通常将数据随机分成70-30或80-20个训练和测试数据集,其中用于构建模型的训练数据及其有效性将在测试数据上进行检查。
数据拆分:
在下面的代码中,70%的数据应该被分割到训练数据集中,剩下的30%应该在测试数据集中。随机状态是生成伪随机数过程中的种子,通过在每次运行时分割完全相同的观察值,使结果可重复
full_data = read.csv("mtcars.csv",header=TRUE)
set.seed(123)
numrow = nrow(full_data)
trnind = sample(1:numrow,size = as.integer(0.7*numrow))
train_data = full_data[trnind,]
test_data = full_data[-trnind,]
02 统计建模和机器学习
统计建模和机器学习之间有相似之处,在统计建模中,具有两个自变量的线性回归正试图用最小值拟合最佳平面,然而,在机器学习中,自变量已转换为误差项的平方(平方确保函数将变得凸,从而提高收敛速度,并确保全局最优),并基于系数值而不是独立变量进行优化。
在进入梯度下降之前,引入凸函数和非凸函数非常有用。凸函数是指在函数上任意两个随机点之间绘制的直线也位于函数中的函数,而非凸函数并非如此。重要的是要知道函数是凸的还是非凸的,因为在凸函数中,局部最优也是全局最优,而对于非凸函数,局部最优不能保证全局最优。
03 线性回归与梯度下降
# Linear Regression
train_data = read.csv("mtcars.csv",header=TRUE)
model <- lm(mpg ~ hp, data = train_data)
print (coef(model))
# Gradient descent
gradDesc <- function(x, y, learn_rate, conv_threshold, batch_size, max_iter) { m <- runif(1, 0, 1) c <- runif(1, 0, 1)
ypred <- m * x + c
MSE <- sum((y - ypred) ^ 2) / batch_size
converged = F iterations = 0
while(converged == F) { m_new <- m - learn_rate * ((1 / batch_size) * (sum((ypred - y) * x)))
c_new <- c - learn_rate * ((1 / batch_size) * (sum(ypred - y)))
m <- m_new
c <- c_new ypred <- m * x + c
MSE_new <- sum((y - ypred) ^ 2) / batch_size
if(MSE - MSE_new <= conv_threshold) { converged = T return(paste("Iterations:",iterations,"Optimal intercept:", c, "Optimal slope:", m)) }
iterations = iterations + 1
if(iterations > max_iter) { converged = T return(paste("Iterations:",iterations,"Optimal intercept:", c, "Optimal slope:", m)) } MSE = MSE_new }}
gradDesc(x = train_data$hp,y = train_data$mpg, learn_rate = 0.00003, conv_threshold = 1e-8, batch_size = 32, max_iter = 1500000)
04 损失函数
机器学习中的损失函数或成本函数是将变量值映射到实数的函数,直观地表示与变量值相关的一些成本。优化方法通过改变参数值来最小化损失函数,这是机器学习的中心主题。
什么时候停止调整机器学习模型中的超参数至关重要。这个问题主要可以通过保持塔布森训练和测试误差来解决。在增加模型复杂性的同时,会出现以下阶段:
- 第1阶段:欠拟合阶段-高训练和高测试误差(或低训练和低测试精度)
- 第2阶段:良好拟合阶段(理想场景)-低训练和低测试误差(或高训练和高测试精度)
-
第3阶段:过度拟合阶段-低训练和高测试误差(或高训练和低测试精度)
关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型
网友评论