matplotlib可以繪制極坐標(biāo)嗎 如何用Python實(shí)現(xiàn)支持向量機(jī)?
如何用Python實(shí)現(xiàn)支持向量機(jī)?1、實(shí)現(xiàn)線性分類將numpy作為np導(dǎo)入作為工廠導(dǎo)入從生成器導(dǎo)入make _ blobs從導(dǎo)入服務(wù)中心#隨機(jī)生成的點(diǎn),n_samples:樣本點(diǎn)數(shù);中心:樣本點(diǎn)分為幾
如何用Python實(shí)現(xiàn)支持向量機(jī)?
1、實(shí)現(xiàn)線性分類
將numpy作為np導(dǎo)入
作為工廠導(dǎo)入
從生成器導(dǎo)入make _ blobs
從導(dǎo)入服務(wù)中心
#隨機(jī)生成的點(diǎn),n_samples:樣本點(diǎn)數(shù);中心:樣本點(diǎn)分為幾類;Random_state:隨機(jī)生成每次都是一致的;Cluster_std:每類樣本點(diǎn)之間的分散度。值越大,分散度越大。
x,y make _ blob(n _ samples 50,centers2,random_state0,clust:,0],X[:,1],cy,cmapsummer)
#使用線性分類SVC擬合
#svc函數(shù)還可以包括以下參數(shù)(具體例子見):文章末尾
# 1,c(c越大,分類越嚴(yán)格,不能有錯(cuò);當(dāng)c趨于小時(shí),意味著可以有更大的誤差容限)
#2,內(nèi)核(內(nèi)核必須是[ ;線性和線性。;, 保利 , rbf , 乙狀結(jié)腸 , 預(yù)計(jì)算 ],默認(rèn)為 RBF ).
# 3,gamma(gamma越大,模型越復(fù)雜,會(huì)導(dǎo)致過擬合,對(duì)線性核函數(shù)沒有影響)。
SVC型(內(nèi)核線性)
(X,y)
繪圖_ svc _決策_(dá)函數(shù)(模型)
這里我們用函數(shù)plot_svc_decision_function()畫邊界線,圈出支持向量。
def plot_svc_decision_function(型號(hào),axNon:
#繪制2D SVC的決策函數(shù)
如果ax是Non:
ax plt.gca()
#找到圖片的X軸和Y軸的邊界
xlim _xlim()
ylim _ylim()
#創(chuàng)建網(wǎng)格以評(píng)估模型
x (xlim[0],xlim[1],30)
y (ylim[0],ylim[1],30)
y,X (y,X)
#在圖上形成所有坐標(biāo)點(diǎn)(900,2)和900個(gè)二維點(diǎn)。
xy np.vstack([X.ravel(),Y.ravel()])。T
#計(jì)算每個(gè)點(diǎn)到邊界的距離(30,30)
P _function(xy)。重塑()
#繪制等高線(距離邊界線為0的實(shí)線和距離為1的過度支持向量的虛線)。
(X,Y,P,colorsk,色階[-1,0,1],alpha0.5,線型[-,-,- ])
#圈出支持向量
如果plot_support:
#_vectors_ function可以打印出所有支持向量的坐標(biāo)。
(_vectors_[:,0],_vectors_[:,1],s200,c,edgecolorsk)
_xlim(xlim)
_ylim(ylim)
繪制效果圖如下:
Python如何繪制長(zhǎng)方形?
導(dǎo)入為plt #定義plt繪圖組件。
d,e [-1,-1,1,1,-1],[-1,1,1,-1] #定義五個(gè)點(diǎn)。最后一點(diǎn)與第一點(diǎn)不謀而合。
(D,E) #依次在五個(gè)點(diǎn)前畫四條線。形成一個(gè)長(zhǎng)方形(這里是一個(gè)正方形)
()#顯示圖片