总结
本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与SVM算法部分。
本门课程的目标
完成一个特定行业的算法应用全过程:
懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合
+算法评估+持续调优+工程化接口实现
参考
图解机器学习 | 支持向量机模型详解
支持向量机通俗导论(理解SVM的三层境界)
支持向量机(SVM)
机器学习中的算法(2)-支持向量机(SVM)基础
看了这篇文章你还不懂SVM你就来打我https://tangshusen.me/2018/10/27/SVM/
斯坦福CS229 | 机器学习-吴恩达主讲(2018·完整版)
https://www.bilibili.com/video/BV1hT4y1r73X/
机器学习定义
SVM算法
SVM算法简介与分类
支持向量机学习方法,针对不同的情况,有由简至繁的不同模型:
最大间隔分类器
支持向量机详解
1)线性可分 SVM 与硬间隔最大化
SVM 总结
1)模型总结
支持向量机(Support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化,同时该方法可以形式化为一个求解图二次规划。
2)模型优缺点
(1)SVM模型优点
基于Python的 SVM 代码实践
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
iris = datasets.load_iris()
X = iris.data[:, :2] #只取前两维特征,方便可视化
y = iris.target
svc = svm.SVC(kernel='linear', C=1).fit(X, y)
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
h = (x_max / x_min) / 100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
plt.subplot(1, 1, 1)
Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.title('SVC with linear kernel')
plt.show()
输出为:
使用多项式核函数
初始化 SVM 对象的代码替换为下面这行
# svc = svm.SVC(kernel='linear', C=1).fit(X, y)
svc = svm.SVC(kernel='poly', degree=3).fit(X, y)
输出为:
使用rbf核函数(高斯核函数)
初始化 SVM 对象的代码替换为下面这行
# svc = svm.SVC(kernel='linear', C=1).fit(X, y)
# svc = svm.SVC(kernel='poly', degree=3).fit(X, y)
svc = svm.SVC(kernel='rbf', C=1).fit(X, y)**
输出为:
确定方向过程
针对完全没有基础的同学们
1.确定机器学习的应用领域有哪些
2.查找机器学习的算法应用有哪些
3.确定想要研究的领域极其对应的算法
4.通过招聘网站和论文等确定具体的技术
5.了解业务流程,查找数据
6.复现经典算法
7.持续优化,并尝试与对应企业人员沟通心得
8.企业给出反馈