刚刚看懂了如何用python实现SVM,下面是代码
# -*- coding: utf-8 -*-
"""
Created on Thu Jun 14 12:50:45 2018
@author: cc
"""
import numpy as np
from numpy import linalg
import cvxopt
import pylab as pl
# 首先实现生成数据的类
class GenData(object):
def liner_data(self):
mean1 = np.array([0, 2])
mean2 = np.array([2, 0])
cov = [[0.8,0.6],[0.6,0.8]]
X1 = np.random.multivariate_normal(mean1,cov,100)
y1 = np.ones(100)
X2 = np.random.multivariate_normal(mean2,cov,100)
y2 = np.ones(100)*(-1)
return X1,y1,X2,y2
def gen_non_lin_separable_data(self):
mean1 = [-1, 2]
mean2 = [1, -1]
mean3 = [4, -4]
mean4 = [-4, 4]
cov = [[1.0,0.8], [0.8, 1.0]]
X1 = np.random.multivariate_normal(mean1, cov, 50)
X1 = np.vstack((X1, np.random.multivariate_normal(mean3, cov, 50)))
y1 = np.ones(len(X1))
X2 = np.random.multivariate_normal(mean2, cov, 50)
X2 = np.vstack((X2, np.random.multivariate_normal(mean4, cov, 50)))
y2 = np.ones(len(X2)) * -1
return X1, y1, X2, y2