R语言运行逻辑回归模型?

By 陆勤 at 2019-03-13 • 0人收藏 • 220人看过

逻辑回归模型是每一位数据工作者都要熟悉和掌握的模型,它是一个经典的二元分类模型。

逻辑回归模型有着广泛地应用,例如:用户是否会点击某一个广告?用户借钱后是否会逾期?用户对营销的消息是否响应?这些问题都是非常有价值的,这些问题都可以用逻辑回归模型来做预测。若是效果佳,就直接部署应用;若是效果一般,它就可以作为一个基准模型,为寻找更好的模型做参照对象。


一 R语言如何运行逻辑回归模型呢?


ISLR包里面的Smarket数据集,运行逻辑回归模型。

使用R语言的glm()函数


代码片段:

library(ISLR)
names(Smarket)
head(Smarket)
summary(Smarket)

#数据集划分:训练集和测试集
#以时间点划分
train <-  Year<2005
glm.fit <- glm(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume, 
               data = Smarket, 
               family = binomial, 
               subset = train)

glm.probs <- predict(glm.fit, 
                    newdata = Smarket[!train,], 
                    type = "response")

glm.pred <- ifelse(glm.probs > 0.5, "Up", "Down")

# 模型准确性度量
Direction.2005 = Smarket$Direction[!train]
table(glm.pred, Direction.2005)


参考资料:

1 逻辑回归模型R语言教程

2 ISLR的Smarket数据集介绍

1 个回复 | 最后更新于 2019-03-13
2019-03-13   #1

二 利用h2o包来运行逻辑回归模型?

h2o是一个强大的开源的机器学习库。

数据集还是采用前面的Smarket数据集


代码片段:

library(h2o)

x <- c("Lag1", "Lag2", "Lag3", "Lag4", "Lag5", "Volume")
y <- "Direction"

# 数据集划分
train <-  Year<2005
train_data <- Smarket[train,]
test_data <- Smarket[!train,]

# 数据集的目标变量类型转换
train_data$Direction <- as.factor(train_data$Direction)
test_data$Direction <- as.factor((test_data$Direction))

localH2O <- h2o.init()

train_data.hex <- as.h2o(
x = train_data, 
destination_frame = "train_data.hex")

test_data.hex <- as.h2o(
x = test_data, 
destination_frame = "test_data.hex")
train_data.glm <- h2o.glm(x = x,
                               y = y, 
                               training_frame = train_data.hex,
                               seed = 1234567,       
                               family = "binomial",   
                               lambda_search = TRUE, 
                               alpha = 0.5,           # Elastic net regularisation
                               nfolds = 5             # N-fold cross validation
                               )
                               
train_data.glm@model$training_metrics@metrics$AUC 
train_data.glm@model$cross_validation_metrics@metrics$AUC  

yhat <- h2o.predict(train_data.glm, test_data.hex)  

h2o.varimp_plot(train_data.glm, num_of_features = 5) # 变量的重要性分析


参考资料:

1 h2o运行逻辑回归模型


登录后方可回帖

信息栏
数据人网是数据人学习、交流和分享的平台,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值
Loading...