SVM重复样本点会改变判断结果嘛

这是一道在面试中被问到的题目,比较晕,今天做了实验只是get了结果先记录一下,具体原因探索清楚再补充
【问题】

  1. 当样本点整体copy一份会改变SVM的预测吗
  2. 仅正/负样本点整体copy一份会改变SVM的预测吗

【实验】


```python
from sklearn import svm
 
# 测试数据
X = [[-2, 0], [0, 0], [0, 1], [1, 0]]  # training samples 
y = [0, 0, 1, 1]  # training target

# 线性SVM
sv = svm.SVC(kernel='linear')  # class 
sv.fit(X, y)  # training the svc model
# 支持向量
data3=sv.support_vectors_
print(data3)

#画分类线图,支持向量机
import numpy as np
import matplotlib.pyplot as plt
#正样本 & 负样本
data1 = np.asarray(X)[np.nonzero(np.asarray(y) > 0)[0], :]
data2 = np.asarray(X)[np.nonzero(np.asarray(y) <= 0)[0], :]
plt.plot(np.asarray(data1)[:, 0], np.asarray(data1)[:, 1], 'ro')
plt.plot(np.asarray(data2)[:, 0], np.asarray(data2)[:, 1], 'bo')
plt.plot(np.asarray(data3)[:, 0], np.asarray(data3)[:, 1], 'xk')
x = np.arange(-3.0, 3.0, 0.1)
w1 = sv.coef_[0, 0]
w2 = sv.coef_[0, 1]
y = (w1 * x + sv.intercept_) / (-w2)
print(w1 / (-w2), sv.intercept_/ (-w2))
plt.plot(x, y,'black')

结果:四个点都是支持向量,y=-x - 0.5
在这里插入图片描述
改变Xy为所有数值均copy

X = [[-2, 0], [0, 0], [0, 1], [1, 0], [-2, 0], [0, 0], [0, 1], [1, 0]]
y = [0, 0, 1, 1, 0, 0, 1, 1] 

此时结论为:支持向量是[[0. 0.] [0. 0.] [0. 1.] [1. 0.]], y=-x
在这里插入图片描述
再次改变Xy为only负样本copy

X = [[-2, 0], [0, 0], [0, 1], [1, 0], [-2, 0], [0, 0]]
y = [0, 0, 1, 1, 0, 0] 

此时结论为:支持向量是[[0. 0.] [0. 0.] [0. 1.] [1. 0.]], y=-x+0.5
在这里插入图片描述
再次改变Xy为only正样本copy

X = [[-2, 0], [0, 0], [0, 1], [1, 0], [0, 1], [1, 0]]  
y = [0, 0, 1, 1, 1, 1] 

此时结论为:支持向量是[[-2. 0.] [0. 0.] [0. 1.] [1. 0.]], y=-x-0.5,和原始未copy一致

在这里插入图片描述

【分析】
待思考补充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值