Почему я получаю `[LibSVM]`, когда я выполняю обнаружение выбросов с помощью OneClassSVM - PullRequest
0 голосов
/ 27 октября 2019

Я делаю обнаружение выбросов с Python s Scikit-Learn lib. Я использую OneClassSVM. У меня проблема с этим, потому что когда я запускаю свой код (я не получаю сообщение об ошибке), он печатает [LibSVM] .

Я не знаю, почему я получаю это, янигде в моем коде нет функции печати. ​​

out_cls = [['One class SVM',OneClassSVM(cache_size=80, coef0=0.5, gamma ='auto', kernel = 'poly', random_state= None, shrinking=True, tol = 0.1, verbose = True, nu = 0.2)],          
           ['Isolation Forest', IsolationForest(behaviour='new', contamination='auto',max_features=4, max_samples=2, n_estimators= 90, random_state=1)]]

r = df
for out in out_cls:

    cls = out[1]
    model = cls.fit(x)
    prediction = model.predict(x)

   # print(model.best_params_)

    result = []
    for i in prediction:
        if i == -1:
            result.append('BOT')

        else:
            result.append('good')

    r[out[0]] = result

1 Ответ

1 голос
/ 27 октября 2019

Все базовые функциональные возможности SVM в scikit-learn фактически основаны на LibSVM;из документов OneClassSVM:

Реализация основана на libsvm.

См. также многочисленные ссылки на это в исходный код .

Этот вывод консоли является просто артефактом установки verbose=True в определении модели;адаптируя простой пример из документов :

from sklearn.svm import OneClassSVM
X=[[0], [0.44], [0.45], [0.46], [1]]
clf = OneClassSVM(gamma='auto', verbose=True)
clf.fit(X)

Вывод на дисплей:

[LibSVM]

OneClassSVM(cache_size=200, coef0=0.0, degree=3, gamma='auto', kernel='rbf',
            max_iter=-1, nu=0.5, random_state=None, shrinking=True, tol=0.001,
            verbose=True)

Настройка verbose=False отклоняет индикацию [LibSVM], которая,в любом случае, это не проблема, так как это никак не влияет на ваш код.

...