svm预测结果为同一个值_Stata也能玩转机器学习——SVM支持向量机应用简介

d391c9cb3184b04088efba99e204ca58.png

导言

SVM,Support Vector Machine,支持向量机,属于监督学习,是在深度学习算法流行之前很火的一种机器学习算法。它的数学原理独到,功能强大,曾经一度是各类机器学习算法性能比较的benchmark。直到现在,SVM仍广泛用于学术圈和实业界(本人接触过用SVM对某个城市的数十万中小企业公司,进行分类评估以确定是否给予政策优惠的真实应用)。

和神经网络相比,SVM在拟合非线性的模型时可能会更强大,也更容易理解。不过SVM也有一些不足,比如容易过拟合。

SVM建模的过程即寻找最优模型参数Ɵ的过程。求解通常基于一些成熟的算法包来实现,比如liblinear和libsvm。

1 Stata实现

在Stata中目前通过“svmachines”命令实现。该命令在2016年已通过Stata Journal发布(SJ-16-4,st0416),并在2020年7月做出一些微调。

1.1 “svmachines”命令的下载和安装

“svmachines”命令可以通过在Stata命令窗口中输入“search svmachines”找到,或者直接用“ssc install svmachines”命令进行安装。由于命令附带的子命令、帮助文件和范例do等较多,安装起来比较麻烦。经过笔者本人的多次尝试发现,到SSC的维护方Boston College的网站下载并复制到相应ado文件夹是比较靠谱的做法。具体下载网址是:http://fmwww.bc.edu/RePEc/bocode/s/ --(对应下图中的第3个package,其版本相对更新)。

65b2c8a0dc9cf9c548ebab0ea731738b.png

1.2 “svmachines”命令的语法格式

语法格式如下。根据是否有因变量的信息,可以分为有监督学习和无监督学习两类。

有监督学习:svmachines depvar indepvars [if] [in] [, options]

无监督学习,主要用于寻找异常值:svmachines indepvars [if] [in], type(one_class) [options]

这里的“one_class”类型的建模专用于对数据进行无监督学习分类。即数据只有一类,并存在部分离群(异常)值。另外SVM建模涉及的全部变量必须是数字型(numeric)--如果是分类型变量,则需要在建模之前编码(encode命令)。因变量可以使用因子变量(factor variables)方法,如加上前缀i.和c.。(注意:这里的因子变量的说法只针对Stata,和R语言中的factor variable有不同。)

1.3选项和参数说明

“svmach

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值