import numpyimport sklearn.svm as ss
import matplotlib.pyplot as plt
x = numpy.array([[1, 2], [2, 4], [3, 1], [4, 5], [7, 10], [15, 11], [6, 8], [7, 12]])
y = numpy.array([[1], [1], [1], [1], [0], [0], [0], [0]])
# 不使用核函式公升維 kernel="linear" 使用核函式公升維 kernel="poly" 使用徑向基(高斯曲面)函式公升維kernel="rbf"
# gamma 代表標準差值, c代表懲罰係數 防止過擬合 c=600, gamma=0.01
## gamma()和c使用不同值時的模型。
# 增加gamma值會使鐘形曲線變 得更窄(圖5-8的左圖),
# 因此每個例項的影響範圍隨之變小:決策 邊界變得更不規則,
# 開始圍著單個例項繞彎。反過來,減小gamma值 使鍾形曲線變得更寬,
# 因而每個例項的影響範圍增大,決策邊界變得 更平坦。所以就像是乙個正則化的超引數:
# 模型過度擬合,就降低它 的值,如果擬合不足則提公升它的值(類似超引數c)。##
# class_weight="balanced"調整權重比例,防止樣本少的資料被忽略
# probability=true 可以檢視分類置信概率 degree=3 是設定多項式次冪
model = ss.svc(kernel="linear", class_weight="balanced",probability=true)
model.fit(x, y)
# 將訓練資料的第乙個數和第二個數分別作為x,y來顯示
plt.scatter(x[:,0], x[:,1],c="red")
test_pre = numpy.array([[8, 4], [7, 9], [2, 2], [5, 4]])
pre = model.predict(test_pre)
# 將測試資料的第乙個數和第二個數分別作為x,y來顯示
plt.scatter(test_pre[:,0], test_pre[:,1], c= "green")
plt.show()
print(pre)
# 檢視分類置信概率
print(model.predict_proba(x))
支援向量機超引數的視覺化解釋
作者 soner y ld r m 編譯 vk towards datas science 支援向量機 svm 是一種應用廣泛的有監督機器學習演算法。它主要用於分類任務,但也適用於回歸任務。在這篇文章中,我們將深入 支援向量機的兩個重要超引數c和gamma,並通過視覺化解釋它們的影響。所以我假設你對...
支援向量機超引數的視覺化解釋
作者 soner y ld r m 編譯 vk 支援向量機 svm 是一種應用廣泛的有監督機器學習演算法。它主要用於分類任務,但也適用於回歸任務。在這篇文章中,我們將深入 支援向量機的兩個重要超引數c和gamma,並通過視覺化解釋它們的影響。所以我假設你對演算法有乙個基本的理解,並把重點放在這些超引...
支援向量機專題 線性支援向量機
原文 當資料線性不可分時,使用硬間隔支援向量機很難得到理想的結果。但是如果資料近似線性可分,可以採用軟間隔支援向量機 線性支援向量機 進行分類。這通常適用於有少量異常樣本的分類,如果使用線性支援向量機,它會盡量使得所有訓練樣本都正確,如下圖所示。顯然這並不是最好的結果,軟間隔支援向量機可以權衡 間隔...