发布时间:2024-03-15 18:30:01
SVM 是一种有监督学习分类算法,输入值为样本特征值向量和其对应的类别标签,输出具有预测分类功能的模型,当给该模型喂入特征值时,该模型可以它对应的类别标签,从而实现分类。SVM算法类别 | 描述 |
---|---|
LinearSVC类 | 基于线性核函数的支持向量机分类算法 |
LinearSVR类 | 基于线性核函数的支持向量机回归算法 |
SVC类 |
可选择多种核函数的支持向量机分类算法,通过“kernel”参数可以传入 linear:选择线性函数; polynomial:选择多项式函数; rbf:选择径向基函数; sigmoid:选择 Logistics 函数作为核函数; precomputed:使用预设核值矩阵, SVC 类默认以径向基函数作为核函数。 |
SVR类 | 可选择多种核函数的支持向量机回归算法 |
NuSVC类 | 与 SVC 类非常相似,但可通过参数“nu”设置支持向量的数量。 |
NuSVR类 | 与SVR类非常相似,但可通过参数“nu”设置支持向量的数量。 |
OneClassSVM类 | 用支持向量机算法解决无监督学习的异常点检测问题 |
from sklearn.datasets import load_iris # 导入鸢尾花数据集 from sklearn.svm import SVC #使用支持向量机算法 import matplotlib.pyplot as plt # 加载鸢尾花数据集,返回特征值 X 以及标签 y X,y = load_iris(return_X_y=True) # 使用SVM.SVC分类算法搭建预测模型,并以径向基函数做为核函数的实现高维映射 clf = SVC(kernel='rbf') # 训练模型,使用fit喂入数据X,y,即特征值和标签 clf.fit(X, y) # 预测分类 result=clf.predict(X) print(result) # 对模型进行评分 score=clf.score(X,y) print(score) plt.figure() # 分割图1行1列第一个图 plt.subplot(111) # 选择X特征值中的第一列特征值和第三列特征值进行绘图 plt.scatter(X[:,0],X[:,3],c =y.reshape((-1)),edgecolor='k',s=50) plt.show()输出结果如下:
# 类别预测结果 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2] # 模型得分 0.9733333333333334对分类结果进行可视化展示: