首先像下面这样读入数据
\\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(),
+