刚开始接触支持向量机,不是很懂是什么问题直接上图吧,求解答,
3条回答 默认 最新
- Kwan的解忧杂货铺@新空间代码工作室 2024-05-13 18:54关注
晚上好🌙🌙🌙
本答案参考ChatGPT-3.5支持向量机(Support Vector Machine,简称SVM)是一种经典的二分类模型,其基本思想是在特征空间中找到一个最优的超平面,使得不同类别的样本点到超平面的距离之和最大。在Python中,可以使用Scikit-learn库实现SVM模型。
具体实现步骤如下:
- 导入必要的库和数据集:
from sklearn import svm from sklearn.datasets import make_blobs import numpy as np X, y = make_blobs(n_samples=100, centers=2, random_state=6)
- 创建SVM模型,并对数据进行训练:
clf = svm.SVC(kernel='linear', C=1000) clf.fit(X, y)
其中,kernel参数指定核函数,这里使用的是线性核函数;C参数是惩罚系数,如果C越大,则会强调分类的正确性,但容易过拟合。
- 画出决策边界和数据点:
import matplotlib.pyplot as plt plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired) ax = plt.gca() xlim = ax.get_xlim() ylim = ax.get_ylim() xx = np.linspace(xlim[0], xlim[1], 10) yy = np.linspace(ylim[0], ylim[1], 10) YY, XX = np.meshgrid(yy, xx) xy = np.vstack([XX.ravel(), YY.ravel()]).T Z = clf.decision_function(xy).reshape(XX.shape) ax.contour(XX, YY, Z, colors='r', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=100, linewidth=1, facecolors='none', edgecolors='k') plt.show()
其中,clf.support_vectors_表示支持向量,即在最优超平面上的点。
整个实现过程可参考下面的完整代码:
from sklearn import svm from sklearn.datasets import make_blobs import numpy as np import matplotlib.pyplot as plt # 导入数据集 X, y = make_blobs(n_samples=100, centers=2, random_state=6) # 创建SVM模型 clf = svm.SVC(kernel='linear', C=1000) # 拟合数据 clf.fit(X, y) # 绘制数据点 plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired) # 绘制超平面和支持向量 ax = plt.gca() xlim = ax.get_xlim() ylim = ax.get_ylim() xx = np.linspace(xlim[0], xlim[1], 10) yy = np.linspace(ylim[0], ylim[1], 10) YY, XX = np.meshgrid(yy, xx) xy = np.vstack([XX.ravel(), YY.ravel()]).T Z = clf.decision_function(xy).reshape(XX.shape) ax.contour(XX, YY, Z, colors='r', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) ax.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s=100, linewidth=1, facecolors='none', edgecolors='k') plt.show()
最后可以获得如下图所示的决策边界和支持向量。
解决 1无用
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见