首先像下面这样读入数据
\\spambase.data中包含实际数据,spambase.names中包含变量的信息
> spambase <- read.csv("spambase.data",header=F)
由于该数据文件中不包含变量信息,因此令header=F,使第1行不为变量名。像下面通过read.table()函数读入数据,并通过colnames()函数指定数据框spambase的变量名。
> colnames(spambase) <- read.table("spambase.names",skip=33,
+ sep=":",comment.char=" ")[,1]
> colnames(spambase)[ncol(spambase)] <- "spam"
先来考虑用一个解释变量预测目标变量的情形。解释变量设为word_freq_your,目标变量spam。首先我们观察word_freq_your和spam的散点图。
> library(ggplot2)
> qplot(word_freq_your,spam,data=spambase,alpha=I(0.03))
alpha参数设置了透明度,点较多的地方显示较浓,可以看到word_freq_your的值较大,则越容易判定为垃圾邮件。根据垃圾邮件判定的真伪,向下面这样输出中位数、平均值、标准差。
> library(dplyr)
> spambase %>%
> group_by(spam) %>%
> summarise(count=n(),
+ med=median(word_freq_your),
+ mean=mean(word_freq_your),
+ sd=sd(word_freq_your))
然后用一元回归模型套用到该模型上:

本文介绍了如何使用Logistic回归分析数据,首先通过R语言读取数据并设定变量名,然后探讨一个解释变量(word_freq_your)与目标变量(spam)的关系,展示其散点图,并计算相关统计量。接着,建立一元Logistic回归模型,并用glm()函数求解参数。通过散点图展示模型效果,利用predict()和residuals()函数评估模型预测准确性。最后,增加了多个变量进行预测并进行变量选择,以提升模型预测性能。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



