Python sklearn:oneclassSVM永远不会收敛

时间:2017-04-26 09:51:57

标签: python scikit-learn

我目前正在培训svm.OneClassSVM

我将问题简化为最低限度的例子:

from sklearn import svm
import pandas as pd
X_train = pd.read_csv("occ_data.csv")
clf = svm.OneClassSVM(nu=0.1, kernel='rbf', gamma=0.01, 
                      random_state=42, tol = 0.1)
clf.fit(X_train.as_matrix())

可以获得数据集from github.com。其他内核(例如'rbf')没有帮助。

对原因和/或变通方法的任何想法都非常感谢。感谢。

我使用Anaconda 4.3.1(64位)分发Python Python 3.6.0。

1 个答案:

答案 0 :(得分:2)

必须在SVM之前缩放数据:

import pandas as pd
from sklearn.preprocessing import StandardScaler
X_train = pd.read_csv("occ_data.csv")
clf = svm.OneClassSVM(nu=0.1, kernel='rbf', gamma=0.01, 
                      random_state=42, tol = 0.1)
scl = StandardScaler()
clf.fit(scl.fit_transform(X_train.as_matrix()))