84-预测分析-R语言实现-支持向量机

Python017

84-预测分析-R语言实现-支持向量机,第1张

使用生物降解数据集,包含41个数值型变量,描述了1055种化学品的分子组成及属性。

建模的任务是根据这些属性来预测某个特定化学品是否会生物降解。

最后一列X42包含了输出变量,不可生物降解为NRB,可生物降解为RB,需要转换为因子型。其他数值型中有的也被识别为字符型,需要手动转换为数值型。

数据集不存在缺失值。

对特征进行归一化处理(让它们具有0均值和单位方差),消除量纲的影响,尤其是使用径向基核函数时。

Number of Support Vectors : 297,表示成为支持向量的数据点的数量为297个。

查看训练集的正确率。

训练集上的准确率为86.98%,还不错。看看在测试集上的准确率。

测试集上表现略好于训练集,为88.57%。

检查准确率:

可以看到,径向基核函数的性能比线性核函数要差一些。

K折交叉验证:将训练数据拆分为K个同样大小且不会重叠的分区,然后,用K-1个分区训练模型,并把剩下的1个分区作为测试集。这样一共进行K次,每次留出一个分区作为测试集。最后,对K个不同测试集上获得的所有估计进行汇总,来计算在未知数据上的精确度的整体估计。

使用10折交叉验证,再次对比两种核函数模型的性能。

使用10折交叉验证后,可以看到,径向基核函数的性能要优于线性核函数。

查看径向基核函数下,支持向量机模型的性能。

ROC曲线:

使用R做回归分析整体上是比较常规的一类数据分析内容,下面我们具体的了解用R语言做回归分析的过程。

首先,我们先构造一个分析的数据集

x<-data.frame(y=c(102,115,124,135,148,156,162,176,183,195),

var1=runif(10,min=1,max=50),

var2=runif(10,min=100,max=200),

var3=c(235,321,412,511,654,745,821,932,1020,1123))

接下来,我们进行简单的一元回归分析,选择y作为因变量,var1作为自变量。