美文网首页特征变量选择
R语言:lasso建模和预测

R语言:lasso建模和预测

作者: 胡童远 | 来源:发表于2021-01-17 18:30 被阅读0次

导读:

clustlasso函数包lasso函数进行建模和预测,包中clustlasso函数也可以进行相似的建模和预测。

clustlasso安装:
https://www.jianshu.com/p/2aed75aeca91

clustlasso lasso使用文档:
https://gitlab.com/biomerieux-data-science/clustlasso/-/blob/master/vignettes/vignette.pdf

1 加载包和数据

# load package
library(clustlasso)
# specify / set random seed
seed = 42
set.seed(seed)
# load example dataset
input.file = system.file("data", "NG-dataset.Rdata", package = "clustlasso")
load(input.file)

2 随机选择20%的ID

# pick 20% for test
test.frac = 0.2
# stratify by origin / population structure
ind.by.struct = split(seq(nrow(meta)), meta$pop_structure)
# split按值分割成列表
ind.sample = sapply(ind.by.struct, function(x){sample(x, round(test.frac * length(x)))})  # 每个表种select 20%, sample对List中的每个df执行一次function。

3 制备test set和train set

ind.test = unlist(ind.sample)
# test dataset
X.test = X[ind.test, ]
y.test = y[ind.test]
meta.test = meta[ind.test, ]
# train datasets
X.train = X[-ind.test, ]
y.train = y[-ind.test]
meta.train = meta[-ind.test, ]

4 建模和交叉验证

# 1. Cross-validation process
# specify cross-validation parameters
n.folds = 10
n.lambda = 100
n.repeat = 3
# run cross-validation process
cv.res.lasso = lasso_cv(X.train, y.train, subgroup = meta.train$pop_structure, n.lambda = n.lambda, n.folds = n.folds, n.repeat = n.repeat, seed = seed, verbose = FALSE)

pdf("cv.pdf", width=15)
par(mfcol = c(1, 3))  # 一页多图,一行三列
show_cv_overall(cv.res.lasso, modsel.criterion = "balanced.accuracy.best", best.eps = 1)
dev.off()

5 最佳模型

# 2. Selecting the best model
pdf("cv_best.pdf", width=15)
layout(matrix(c(1, 2, 3), nrow = 1, byrow = TRUE), width = c(0.3,
0.3, 0.4), height = c(1))
perf.best.lasso = show_cv_best(cv.res.lasso, modsel.criterion = "balanced.accuracy.best", best.eps = 1, method = "lasso")
dev.off()
# print cross-validation performance of best model
print(perf.best.lasso)
best.model.lasso = extract_best_model(cv.res.lasso, modsel.criterion = "balanced.accuracy.best", best.eps = 1)

6 模型预测和表型评估

# 3. Making predictions and measuring performance
# make predictions # preds.lasso$preds预测结果
preds.lasso = predict_clustlasso(X.test, best.model.lasso)
# compute performance
perf.lasso = compute_perf(preds.lasso$preds, preds.lasso$probs,
y.test)
# print
print(t(perf.lasso$perf))
pdf("predict.pdf", width=15)
par(mfcol = c(1, 2))
plot(perf.lasso$roc.curves[[1]], lwd = 2, main = "lasso - test set ROC curve")
grid()
plot(perf.lasso$pr.curves[[1]], lwd = 2, main = "lasso - test set precision / recall curve")
grid()
dev.off()

参考:
【机器学习】Cross-Validation(交叉验证)详解
Lasso regression(稀疏学习,R)
lasso_cv

相关文章

  • R语言:lasso建模和预测

    导读: clustlasso函数包lasso函数进行建模和预测,包中clustlasso函数也可以进行相似的建模和...

  • 预测分析研究

    预测算法用java实现 数学建模spss时间预测 Arima模型分析预测 基于R语言的上海房价预测 R学习日记——...

  • TCGA数据挖掘九:lasso回归

    加载表达矩阵和生存数据 进行lasso回归,找到最佳建模位置 再用得到的最佳的位置去建模 判断预测结果的准确性 后...

  • R包:clustlasso基于聚类分析的特征选择分类包

    介绍 clustlasso是结合lasso和cluster-lasso策略的R包,并发表在Interpreting...

  • 机器学习经验总结之XGBoost

    以下内容属于经验总结的建模模块,建模模块目前包括 lasso 和 XGBoost,文章内容属于 XGBoost。 ...

  • TCGA学习04:建模预测-lasso回归

    法2:lasso回归 lasso回归在建立广义线型模型的时候,可以包含一维连续因变量、多维连续因变量、非负次数因变...

  • R实战 | Lasso回归模型建立及变量筛选

    R实战 | Lasso回归模型建立及变量筛选 Tibshirani(1996) 引入了 LASSO (Least ...

  • R lasso

    The first plot above shows the variables going to zero as...

  • n元模型

    区分好 语言建模 和 语言模型。理解好 直接预测的问题:(1). 数据量需要庞大(为什么?)(2). 计算量庞大。...

  • 大数据相关技术有哪些?

    分析技术 数据处理:自然语言处理技术 统计和分析:关联规则分析、分类、聚类 模型预测:预测模型、机器学习、建模仿真...

网友评论

    本文标题:R语言:lasso建模和预测

    本文链接:https://www.haomeiwen.com/subject/gsvnaktx.html