sklearn实现SVM

1.SVM原理

本文侧重于利用sklearn库实现svm,对理论知识不做讲解。

2.sklearn实现SVM

本文目的:使用svm对Iris数据集进行分类。
数据集介绍:Iris数据集是常用的分类实验数据集,也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
数据集链接:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn import svm
# 使用交叉验证的方法,将数据集分为训练集与测试集
from sklearn.model_selection import train_test_split

# 加载iris数据集
def load_data():
    iris = datasets.load_iris()
    """展示数据集的形状
       diabetes.data.shape, diabetes.target.shape
    """
 
    # 将数据集拆分为训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(
    iris.data, iris.target, test_size=0.10, random_state=0)
    return X_train, X_test, y_train, y_test
 
# 使用LinearSVC考察线性分类SVM的预测能力
def test_LinearSVC(X_train,X_test,y_train,y_test):
 
    # 选择模型
    cls = svm.LinearSVC()
 
    # 利用训练数据训练模型
    cls.fit(X_train,y_train)
    # 训练好的参数
    print('Coefficients:%s \n\nIntercept %s' % (cls.coef_,cls.intercept_))
    
    
    # 利用测试数据评判模型
    print('\n\nScore: %.2f' % cls.score(X_test, y_test))
 
if __name__=="__main__":
    X_train,X_test,y_train,y_test=load_data()      
    test_LinearSVC(X_train,X_test,y_train,y_test) 

3.分析

sklearn实现SVM主要分为两步,先利用fit()进行拟合完成训练过程,再利用score()进行评判测试准确率。
在这里插入图片描述
上述程序结果如下所示:
在这里插入图片描述
在这里插入图片描述其中,Coefficients:为三个类别特征向量,Intercept 为判别函数类别参数。

参考:https://scikit-learn.org/stable/modules/svm.html#svm

猜你喜欢

转载自blog.csdn.net/qq_33254870/article/details/86524478
今日推荐