簡體   English   中英

使用一類svm-python進行新穎性檢測

[英]Novelty detection using one class svm-python

我正在使用機器學習進行新穎性檢測。 我已經嘗試在scikit learning中使用一類svm。

from sklearn import svm

train_data = [[0, 0, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1], [0, 3, 0, 0, 0, 1, 0, 0], [0, 11, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 4]]
test_data = [[0, 0, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0]]


clf = svm.OneClassSVM(nu=0.1, kernel="rbf", gamma=0.1)
clf.fit(train_data)

pred_test = clf.predict(test_data)

我是該領域的新手,我想知道如何說測試數據中有新穎性?

離群值標記為1,離群值(即您情況下的新穎性)標記為-1(作為predict函數的結果)。

請注意, 當前文檔錯誤地指出異常值標記為1,而異常值標記為0。請查看github repo上的最新更新以獲取正確的信息。

檢查= clf.predict(test_data)

如果check = 1,則不是異常,並且

如果check = -1,則表示異常,即數據異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM