IT评测·应用市场-qidao123.com技术社区

标题: 机器学习笔记五-SVM [打印本页]

作者: 光之使者    时间: 2024-8-21 10:58
标题: 机器学习笔记五-SVM
支持向量机(Support Vector Machine, SVM) 是一种监视学习算法,广泛应用于分类、回归和非常检测任务。SVM 的告急思想是找到一个能够将数据最大化间隔分开的超平面,从而实现对新数据的分类或猜测。
SVM 的基本概念

SVM 的类型

SVM 的优化目标

SVM 的目标是通过最大化边距来最小化分类错误率。这个优化问题可以形式化为一个约束优化问题,利用拉格朗日乘数法解决。最终得到的优化问题是一个凸优化问题,确保可以找到全局最优解。
核函数(Kernel Function)

核函数是 SVM 中的一个关键概念,它通过将数据映射到高维空间来处理非线性问题。常见的核函数包括:
优缺点

优点:

缺点:

SVM 的应用场景

示例代码(使用 sklearn):

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn import datasets
  4. from sklearn.model_selection import train_test_split
  5. from sklearn.svm import SVC
  6. from sklearn.metrics import classification_report, confusion_matrix
  7. # 加载示例数据集(鸢尾花数据集)
  8. iris = datasets.load_iris()
  9. X = iris.data[:, :2]  # 只取前两个特征用于可视化
  10. y = iris.target
  11. # 分割数据集
  12. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  13. # 初始化并训练SVM模型
  14. model = SVC(kernel='linear', C=1.0)
  15. model.fit(X_train, y_train)
  16. # 预测和评估
  17. y_pred = model.predict(X_test)
  18. print(classification_report(y_test, y_pred))
  19. # 可视化决策边界
  20. def plot_decision_boundary(X, y, model):
  21.     x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
  22.     y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
  23.     xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),
  24.                          np.arange(y_min, y_max, 0.02))
  25.     Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
  26.     Z = Z.reshape(xx.shape)
  27.     plt.contourf(xx, yy, Z, alpha=0.8)
  28.     plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o')
  29.     plt.show()
  30. plot_decision_boundary(X_train, y_train, model)
复制代码
示例代码剖析:

总结

SVM 是一种强大的分类和回归工具,尤其在高维空间中体现良好。它通过寻找最大化边距的超平面来实现对数据的分类,并可以通过核函数扩展到非线性问题。尽管在处理大型数据集时大概盘算复杂度较高,但通过适当的参数调优,SVM 可以在许多实际应用中取得良好的结果。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4