日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SVM 多分类分类边界可视化

發(fā)布時(shí)間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SVM 多分类分类边界可视化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.datasets import make_blobs

X, y = make_blobs(n_samples=180, centers=5, random_state=6)
#centers就是數(shù)據(jù)分布點(diǎn),我們現(xiàn)在解決的是二分類問(wèn)題,\
#那么就需要兩個(gè)center,數(shù)據(jù)點(diǎn)都分別圍繞著center進(jìn)行分布
#random_state確定一個(gè)數(shù)字后,每次運(yùn)行都會(huì)出現(xiàn)相同的隨機(jī)數(shù)。
#plt.scatter(x[:,0],x[:,1],c=y,s=30,cmap=plt.cm.Paired)
#plt.scatter中的c代表color,cmap代表colormap,可選
#s是size, c=y是標(biāo)簽分類和plt.cm.Paired聯(lián)合使用

# 使用SVM分類器
clf = svm.SVC(C=1000,gamma=0.01).fit(X, y)
# 接下來(lái)進(jìn)行可視化, 要想進(jìn)行可視化, 我們核心就是要調(diào)用plt.contour函數(shù)畫圖, 但是它要求傳入三個(gè)矩陣, 而我們的x1和x2為向量, 預(yù)測(cè)的值也為向量, 所有我們需要將x1和x2轉(zhuǎn)換為矩陣

# 獲取邊界范圍, 為了產(chǎn)生數(shù)據(jù)
x1_min, x1_max = np.min(X[:, 0]) - 1, np.max(X[:, 0]) + 1
x2_min, x2_max = np.min(X[:, 1]) - 1, np.max(X[:, 1]) + 1

# 生成新的數(shù)據(jù), 并調(diào)用meshgrid網(wǎng)格搜索函數(shù)幫助我們生成矩陣
xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, 0.02), np.arange(x2_min, x2_max, 0.02))
# 有了新的數(shù)據(jù), 我們需要將這些數(shù)據(jù)輸入到分類器獲取到結(jié)果, 但是因?yàn)檩斎氲氖蔷仃? 我們需要給你將其轉(zhuǎn)換為符合條件的數(shù)據(jù)
Z = clf.predict(np.c_[xx1.ravel(), xx2.ravel()])
# 這個(gè)時(shí)候得到的是Z還是一個(gè)向量, 將這個(gè)向量轉(zhuǎn)為矩陣即可
Z = Z.reshape(xx1.shape)
# 分解的時(shí)候有背景顏色
plt.pcolormesh(xx1, xx2, Z, cmap=plt.cm.RdYlBu)
# 為什么需要輸入矩陣, 因?yàn)榈雀呔€函數(shù)其實(shí)是3D函數(shù), 3D坐標(biāo)是三個(gè)平面, 平面對(duì)應(yīng)矩陣
plt.contour(xx1, xx2, Z, cmap=plt.cm.Paired)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.show()

總結(jié)

以上是生活随笔為你收集整理的SVM 多分类分类边界可视化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。