#encoding=utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.datasets import make_blobs
“““
--------获取数据--------
随机生成40个独立的点,一共有两类
X数据格式[[6.37734541 -10.61510727][6.50072722 -3.82403586]...]
Y数据格式[1 0 1 0 1 ...1 0 1] 0和1代表类别
“““
Xy = make_blobs(n_samples=40centers=2random_state=6) #随机生成2类数据,一共含40个样本
“““
print X
print y
“““
“““
--------训练SVM模型--------
kernel=‘linear‘ 核函数选择Linear核,主要用于线性可分的情形。参数少,速度快。
C=1000 惩罚参数,C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,
趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,
将他们当成噪声点,泛化能力较强。
“““
clf = svm.SVC(kernel=‘linear‘C=1000) #SVC时SVM的一种Type是用来做分类的
clf.fit(Xy) #喂给模型数据,进行训练
print(“模型参数W:“clf.coef_ ) #模型参数W
print(“模型参数b:“clf.intercept_ ) #模型参数b
print(“支持向量为:“clf.support_vectors_ ) #输出支持向量
xpredict = [10-10]
xpredict = np.array(xpredict).reshape(1-1) #sklearn 0.17版本之后需要这条语句,之前版本直接传入xpre
评论
共有 条评论