案例6.2 视频教程
题目:试使用LIBSVM,在西瓜数据集3.0α上分别用线性核和高斯核训练一个SVM,并比较其支持向量的差别。
步骤1:在“项目模板”中找到周志华习题,打开第六章向量机习题案例6.2,创建模板。
步骤2:在“CSV上传”模块上传CSV文件,这里用到的是西瓜数据集3.0。
步骤3:在全部组件列表搜索“序数编码”模块,拖到操作界面内,在字段设置的“目标字段”中输入“色泽,根蒂,敲声,纹理,脐部,触感,好瓜”特征字段。该模块主要用来将分类特征编码为整数数组。该模块的输入应为整数或者字符串的数组,表示分类特征采用的值。目的是找到每个特征的唯一值,然后将数据转换为叙述编码。
步骤4:在全部组件列表搜索“数据拆分CSV”模块,在“参数设置”的数据1比重和数据2比重设置为0.7:0.3,数据1集作为训练集,数据2作为测试集。
步骤5:在全部组件列表搜索“支持向量机分类SVC”组件,该实现基于libsvm,拟合时间与样本数量成平方比例。在参数设置的“kernel”字符串中,默认为rbf,指的是指定算法中要使用的内核类型。Linear为线性核,rbf为高斯核。其他参数均可选择默认参数。C为误差项的惩罚参数。一般来说,在支持向量机中,惩罚系数越大,正则化程度越低。高斯核的支持向量数目会较少,而线性核的会几乎没有变化。
步骤6:在全部组件列表搜索“模型预测”模块,将测试集与经过训练的训练集作为输入,设置“特征字段”输出模型到“分类评估”组件。特征字段为“色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率”。
步骤7:在全部组件列表搜索“分类评估”模块,在参数设置中选择accuracy_score,字段设置的票钱列为“好瓜”,预测列为prediction。
步骤8:运行全部程序,查看结果,由于西瓜数据集3.0线性不可分,即使C惩罚系数高,还是会出现误分类的情况,使用高斯核在惩罚系数较大时,可以完全拟合训练数据。可以通过调整C惩罚系数来提高精度。