机器学习的常用模型
支持向量机SVM
SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
SVM的主要思想可以概括为两点:
1.它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
2.它基于结构风险最小化理论之上在特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。
SVM算法优、缺点
优点:可用于线性/非线性分类,也可以用于回归;低泛化误差;容易解释;计算复杂度较低。
缺点:对参数和核函数的选择比较敏感;原始的SVM只比较擅长处理二分类问题。
原文链接:https://www.cnblogs.com/huaweiyun/p/13229220.html
一个线性不可分的例子:
import numpy as np
import scipy.io as sio
import matplotlib.pyplot as plt
from sklearn import svm
data = sio.loadmat('ex6data2.mat')
X = data['X']
y = data['y'].flatten()
def plot_data(X, y):
positive = X[y == 1]
negative = X[y == 0]
plt.scatter(positive[:, 0], positive[:, 1], c='k', marker='+', label='y=1')
plt.scatter(negative[:, 0], negative[:, 1], c='y', marker='o', label='y=0')
plt.legend()
plt.show()
plot_data(X, y)
C = 1
clf = svm.SVC(C, kernel='rbf', gamma=1000)
clf.fit(X, y)
print(clf.score(X, y))
def visualize_boundary(model):
x_min, x_max = 0, 1
y_min, y_max = 0.4, 1
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 500),
np.linspace(y_min, y_max, 500))
z = model.predict(np.c_[xx.flatten(), yy.flatten()])
zz = z.reshape(xx.shape)
plt.contour(xx, yy, zz)
visualize_boundary(clf)
plot_data(X, y)
支持向量机SVM是一种有监督的机器学习模型,适用于模式识别、分类和回归分析。它通过非线性映射处理线性不可分问题,在高维特征空间中找到最优超平面,确保低泛化误差和计算复杂度。SVM对参数和核函数选择敏感,且主要聚焦于二分类问题。

被折叠的 条评论
为什么被折叠?



