支援向量機的超引數

2021-09-27 10:45:09 字數 1227 閱讀 7114

import numpy

import 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,並通過視覺化解釋它們的影響。所以我假設你對演算法有乙個基本的理解,並把重點放在這些超引...

支援向量機專題 線性支援向量機

原文 當資料線性不可分時,使用硬間隔支援向量機很難得到理想的結果。但是如果資料近似線性可分,可以採用軟間隔支援向量機 線性支援向量機 進行分類。這通常適用於有少量異常樣本的分類,如果使用線性支援向量機,它會盡量使得所有訓練樣本都正確,如下圖所示。顯然這並不是最好的結果,軟間隔支援向量機可以權衡 間隔...