針對testSetRBF2.txt中資料,使用高斯核函式,進行SVM分類,畫圖。
阿新 • • 發佈:2019-02-11
# 2. 針對testSetRBF2.txt中資料,使用高斯核函式,進行SVM分類,畫圖並標記出支援向量。 from numpy import * import matplotlib.pyplot as plt from sklearn import svm # 載入資料集 def loadDataSet(filename): dataMat = []; labelMat = [] fr=open(filename) for line in fr.readlines(): lineArr = line.strip().split('\t') dataMat.append([float(lineArr[0]), float(lineArr[1])]) labelMat.append(float(lineArr[2])) return array(dataMat), array(labelMat) data, target = loadDataSet("testSetRBF2.txt") index1 = where(target == 1) X1 = data[index1] index2 = where(target == -1) X2 = data[index2] # 二維空間畫圖 plt.plot(X1[:,0],X1[:,1],'ro') plt.plot(X2[:,0],X2[:,1],'bx') plt.show() # # 高斯核函式 sigma = 0.01 clf = svm.SVC(C=1, kernel='rbf', gamma=1 / sigma) clf.fit(data, target) plt.scatter(data[:, 0], data[:, 1], c=target, cmap=plt.cm.Paired) # [:,0]列切片,第0列 plt.axis('tight') plt.show()