#机器学习公式推导#SVM

模型介绍

支持向量机是一种判别模型。在类别划分的时候,我们希望能找到这样一个超平面,这个超平面对训练样本的泛化能力最好,也就是对极端异常值的容忍度最好。那么如何达到这个目的呢?SVM的方法是找到距离这个超平面最近的且分类正确的点,这个点就叫支持向量,让这个点到超平面的距离最远,这样一来,超平面的泛化能力就能达到最优。

模型推导

我们定义超平面为
在这里插入图片描述公式1.1
定义训练集中的任意一点X到超平面的距离为
在这里插入图片描述 公式1.2
我们令Y的取值为+1和-1,但是要注意,这里有一个限制条件,超平面必须是能把训练集全部分类正确的平面(硬间隔),那么要加一个条件,
在这里插入图片描述 公式1.3
公式1.3的目的是为了让真实值的Y和预测值的Y同号,符号一致则表示分类正确。
由空间几何的知识我们可以得知,W和b成比例的放缩并不会影响到最优化问题的解,也就是公式1.1的取值并不会影响到求解,所以为了方便计算,不妨将其的模取值为1。那么公式1.2和公式1.3就转化为

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,它可以用于分类和回归分析。SVM能够找到一个超平面,将不同类别的数据点有效地分开。 实现一个简单的SVM源代码,可以基于Python编程语言和scikit-learn库来实现。首先,需要导入所需的库和数据集。然后,对数据进行预处理,如标准化或归一化处理。接下来,使用svm模块中的SVC类来创建一个SVM分类器,并通过fit()方法对数据进行拟合。最后,可以使用该模型对新的数据进行预测,并评估模型的性能。 下面是一个Python实现的简单SVM源代码示例: ```python # 导入所需的库 import numpy as np from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.metrics import accuracy_score # 载入数据集 iris = datasets.load_iris() X = iris.data y = iris.target # 数据预处理 scaler = StandardScaler() X = scaler.fit_transform(X) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建SVM分类器 svm_classifier = SVC(kernel='linear', C=1.0) # 拟合数据 svm_classifier.fit(X_train, y_train) # 预测测试集 y_pred = svm_classifier.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("SVM模型的准确率为:", accuracy) ``` 以上是一个简单的SVM源代码实现示例,该代码使用SVM算法对鸢尾花数据集进行分类,并计算了模型的准确率。通过学习和理解这个示例,可以更深入地理解SVM算法的实现原理和应用方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值