我有一个包含以下变量的训练数据集
> names(train)
[1] "id" "user_id" "campaign_id" "send_date" "is_open"
[6] "is_click"
另外一个名为'campaign'的数据集,其中包含以下内容
> names(camp)
[1] "campaign_id" "communication_type" "total_links"
[4] "no_of_internal_links" "no_of_images" "no_of_sections"
[7] "email_body" "subject" "email_url"
测试数据集如下
> names(test)
[1] "id" "campaign_id" "user_id" "send_date"
我使用左连接根据2个数据集中的'campaign_id'组合了火车和营地。
结果数据集名为“left”,它具有以下变量:
> names(left)
[1] "id" "user_id" "campaign_id"
[4] "send_date" "communication_type" "total_links"
[7] "no_of_internal_links" "no_of_images" "no_of_sections"
[10] "email_body" "subject" "email_url"
[13] "is_open" "is_click"
数据集的维度分别如下:
> dim(train);dim(camp);dim(left);dim(test)
[1] 1023191 6
[1] 52 9
[1] 1023191 14
[1] 773858 4
我根据要求对数据集'left'进行了逻辑回归,不包括变量“id”和“campaign_id”。 “is_click”是类变量。
model <- glm(is_click ~., data = left[, !names(left) %in% c("id", "campaign_id")], family = binomial)
模型成功运行。但是当我尝试使用预测函数预测测试数据集时,它会发出一个错误,因为测试数据集没有训练模型的数据集中的所有变量 - “左”
> predict1 <- pglogis(predict(model, test))
Error in eval(predvars, data, env) :
object 'communication_type' not found
我希望输出包含变量“id”和“is_click”。 “is_click”是类变量,我希望将概率视为0&lt; 0.5和1为概率&gt; 0.5
非常感谢您的帮助。