Part5__机器学习实战学习笔记__支持向量机

简介: 本文首先对SVM算法原理进行简要的介绍,然后在iris和mnist数据集上面测试算法的效果。

Step By Step

1、支持向量机算法基本原理
2、iris和mnist数据集测试
3、算法有点和缺点


一、支持向量机算法基本原理
  • 在机器学习中,支持向量机(SVM)是具有相关学习算法的监督学习模型,其分析用于分类和回归分析的数据。给定一组训练示例,每个示例标记为属于两个类别中的一个或另一个,SVM训练算法构建一个模型,将新示例分配给一个类别或另一个类别,使其成为非概率二元线性分类器。SVM模型是将示例表示为空间中的点,映射使得单独类别的示例除以尽可能宽的明确间隙。然后将新的示例映射到同一空间,并根据它们落在哪个边缘预测属于一个类别。
  • 除了执行线性分类之外,SVM还可以使用所谓的内核技巧有效地执行非线性分类,将其输入隐式映射到高维特征空间。
二、iris和mnist数据集测试
  • 2.1 mnist 数据集测试

# Import datasets, classifiers and performance metrics
from sklearn import datasets, svm, metrics
from sklearn.model_selection import train_test_split

digits = datasets.load_digits()

# 处理图片数据
n_samples = len(digits.images)
print(n_samples)
data = digits.images.reshape((n_samples, -1))

# 设置分类器和核函数
clf = svm.SVC(gamma=0.001,kernel = 'rbf')

# 拆分训练接和测试集 7:3
X_train, X_test, y_train, y_test = train_test_split(
    data, digits.target, test_size=0.3, shuffle=False
)

clf.fit(X_train, y_train)

print(clf.score(X_test, y_test))

测试结果

1797
0.9703703703703703
  • 2.2 iris数据集测试
from sklearn import svm
from sklearn import datasets
from sklearn.model_selection import train_test_split

# 获取数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 切分训练&测试数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)

# 使用不同的核函数
# kernel = 'rbf'
clf_rbf = svm.SVC(kernel='rbf')
# kernel = 'linear'
clf_linear = svm.SVC(kernel='linear')
# kernel = 'poly'
clf_poly = svm.SVC(kernel='poly')

for model in [clf_rbf,clf_linear,clf_poly]:
    model.fit(X_train,y_train)
    score = model.score(X_test, y_test)
    print("The score is : %f" % score)

测试结果

The score is : 0.920000
The score is : 0.960000
The score is : 0.946667
三、算法有点和缺点

优点

  • 可以解决高维问题,即大型特征空间;
  • 解决小样本下机器学习问题;
  • 能够处理非线性特征的相互作用;
  • 无局部极小值问题;(相对于神经网络等算法)
  • 无需依赖整个数据;
  • 泛化能力比较强;

缺点

  • 当观测样本很多时,效率并不是很高;
  • 对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;
  • 对于核函数的高维映射解释力不强,尤其是径向基函数;
  • 常规SVM只支持二分类;
  • 对缺失数据敏感;

更多参考

支持向量机 – Support Vector Machine | SVM

相关文章
|
2天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
4天前
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
|
6天前
|
数据可视化 API 开发者
R1类模型推理能力评测手把手实战
R1类模型推理能力评测手把手实战
|
15天前
|
人工智能 自然语言处理 网络安全
基于阿里云 Milvus + DeepSeek + PAI LangStudio 的低成本高精度 RAG 实战
阿里云向量检索服务Milvus版是一款全托管向量检索引擎,并确保与开源Milvus的完全兼容性,支持无缝迁移。它在开源版本的基础上增强了可扩展性,能提供大规模AI向量数据的相似性检索服务。凭借其开箱即用的特性、灵活的扩展能力和全链路监控告警,Milvus云服务成为多样化AI应用场景的理想选择,包括多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等。您还可以利用开源的Attu工具进行可视化操作,进一步促进应用的快速开发和部署。
|
17天前
|
数据可视化 API 开发者
R1类模型推理能力评测手把手实战
随着DeepSeek-R1模型的广泛应用,越来越多的开发者开始尝试复现类似的模型,以提升其推理能力。
|
21天前
|
数据可视化 API 开发者
R1类模型推理能力评测手把手实战
随着DeepSeek-R1模型的广泛应用,越来越多的开发者开始尝试复现类似的模型,以提升其推理能力。
|
4月前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
176 3
|
4月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
275 1
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
4月前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
121 5

热门文章

最新文章