最后更新:2020-04-25 11:32:39 手机定位技术交流文章

支持向量机(SVM)可以解决支持分类和回归问题,这两个问题都可以通过构造函数h来解决,该函数将输入向量x与输出y匹配:y = h(x)
优点和缺点
优点:该算法可以基于核对线性和非线性问题的极限进行建模。“过度拟合”也是非常可行的,尤其是在大空的范围内。
缺点:支持向量机需要大量内存。选择正确的核是非常重要的,因此很难调整,并且在相当大的数据集下不能获得好的结果。
简要描述
假设我们有一个6点数据集,如下所示

你可以看到它们是线性可分的,但问题是有成千上万条直线可以做到这一点。

所有这些行都是有效的,可以100%正确分类。但问题是这些线路是有效的,但不是最佳的。
如下图所示,它们的原理非常简单:它们的目的是使用尽可能“简单”的边界将数据分成类,以便最大化不同数据组之间的距离以及它们之间的边界。这个距离也称为“边界”,所以支持向量机称为“宽边界分隔符”,而“支持向量”是最接近边界的数据。

要使用的机器学习数据集
1) SVM分类:我们将使用“社交网络广告”机器学习数据集,这是该数据集的链接。数据集由5列组成(用户标识、性别、年龄、估计薪资和购买),共400行。

2)第二次SVM回归:我们将使用“职位薪资”机器学习数据集,该数据集是该数据集的链接。数据集由3列(职位、级别、薪资)和10行组成。

有待实现的结果
分类:可视化和识别不同的类,并根据测试数据集划分界限。
回归:可视化数据点并绘制回归线,预测4.5和8.5级员工的工资
要遵循的步骤
分类
导入必要的库导入数据集将数据分为训练集和测试集根据需要构建特征缩放创建SVC对象拟合数据集(训练集)预测结果(测试集)用于SVM图书馆的分类评估机器学习模型回归
导入必要的Python库导入机器学习数据集根据需要构建特征缩放创建SVC对象拟合数据集预测结果算法用于来自SVM库的回归实现(分类)
这部分代码执行数据预处理、特征缩放、将数据划分为训练集和测试集,然后从支持向量机类中声明我们的支持向量机分类模型用于拟合和预测
#导入库导入编号作为np导入matplotlib.pyplot作为plt导入熊猫作为pd #导入数据集数据集= PD . read _ CSV(' Social _ Network _ Ads . CSV ')X =数据集. iloc
线性核

非线性核
算法实现(回归)
类似于上面的SVR模型。
导入编号作为np导入熊猫作为pd导入matplotlib.pyplot作为plt #导入并分割数据和类数据集= PD . read _ CSV(' Position _薪俸. csv'') X =数据集. iloc
预测4.5是130101.64,8.5是303706.02
我们用回归器= SVR(内核='rbf ')替换了回归器= SVR(),然后重新运行程序。

预测值为115841.63(4.5)和403162.82(8.5)
最后的
SVM的局限性包括:
SVM算法不适用于大数据集。当数据集的噪声较大时,支持向量机不能很好地工作。如果每个数据点的样本数超过训练数据样本数,SVM将表现不佳。由于支持向量分类器通过在分类超平面的上方和下方放置数据点来工作,因此没有概率解释。
本文由 在线网速测试 整理编辑,转载请注明出处。