我必须以95%TPR实施指标FPR。 为此,我必须根据阈值寻找OCSVM的不同决策。
如果我执行以下简单代码:
# Generate train data
X = 0.3 * np.random.randn(100,2)
X_train = np.r_[X + 2,X - 2]
# Generate some regular novel observations
X = 0.3 * np.random.randn(20,2)
X_test = np.r_[X + 2,X - 2]
# fit the model
clf = svm.OneclassSVM(nu=0.1,kernel="rbf",gamma=0.1)
clf.fit(X_train)
y_pred_train = clf.predict(X_train)
y_pred_test = clf.predict(X_test)
y_pred_test_dec = clf.decision_function(X_test)
print(y_pred_test_dec)
的输出是实数值(可能表示为数据是否属于该类的概率)
[ 0.09636907 0.25550576 -0.00625508 -0.01913439 0.05838875 0.28961146
0.27546575 0.20860501 0.20301114 0.22901279 -0.49293407 0.23829279
0.1880782 0.16414993 0.28461803 0.20257997 0.15601406 0.05623468
0.2902597 0.28259147 0.14681843 0.24570013 -0.09876615 -0.07012402
-0.14296918 0.2463084 0.20785806 0.20567402 0.22239225 0.2141173
-0.75713372 0.15646395 0.14399239 0.14025052 0.22818292 0.20500693
0.20862945 0.0735027 0.24908019 0.23861988]
print(y_pred_test)
的输出取决于输入是属于类还是离群。
[ 1 1 -1 -1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1
-1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1]
我的问题是,哪些参数定义了做出这些决定所依据的阈值?