library(rms)
head(lung)
data <- lung#把数据集赋值给data
data <- na.omit(data)#把存在缺失值的行进行删除
#如果数据集中有3分类的变量,需要设置哑变量
#假设数据集中X变量为3分类变量,水平分别是A,B,C,这时需要将X处理成两个哑变量
#data$X_B <- ifelse(data$X=="B",1,0)
#data$X_C <- ifelse(data$X=="C",1,0)
library(glmnet)#岭回归,lasso回归,弹性网络
library(caret)
#使用岭回归和lasso回归都要把数据处理为矩阵
View(data)
#数据的类型不能是double,即双精度浮点型,否则也会报错
X <- as.matrix(data[,4:10])
#自变量是4-10列
Y <- as.matrix(data[,3])
#因变量是3列
#glmnet()中alpha=0表示岭回归,alpha=1表示lasso回归
lasso <- glmnet(X,Y,alpha=1,family = "binomial",nlambda = 100)
#如果是岭回归nlambda = 100,将模型进行100次的迭代
#第100次的模型就是最优的模型
#如果是lasso回归,nlambda = 100,不一定进行100次的迭代
#lasso会找到最优解,最优解之后不再进行迭代
print(lasso)
View(print(lasso))
#Df自由度,
因篇幅问题不能全部显示,请点此查看更多更全内容