使用GridSearchCV和OneClassSVM时出现"NU"值错误



Im使用GridSearchCV为我的模型OneClassSVM找到最佳参数。我在文档中读到nu的值应该在0和1之间。在我的代码中,我总是收到错误:

ValueError: nu <= 0 or nu > 1

我做错了什么?

import pandas as pd
from sklearn.svm import OneClassSVM
from sklearn.model_selection import GridSearchCV
import numpy as np
df = pd.read_csv('pitanja.csv')
#print(df)
x = df.iloc[:,:-1]
tuned_svm = {'cache_size':[70,80,90], 'coef0':[0.25,0.5,0.75], 'gamma':['auto'],
'kernel':['poly','rbf','linear','sigmoid', 'precomputed'], 'random_state':[None],
'shrinking':[True,False], 'tol':[0.05,0.1,0.2], 'verbose':[True],
'nu':[0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24,0,25,0.26,0.27]}
def scorer_f(estimator, X):   #your own scorer
return np.mean(estimator.score_samples(X))
out_cls = GridSearchCV(OneClassSVM(), tuned_svm, scorer_f)          
r = df
model = out_cls .fit(x)
prediction = model.predict(x)
print(model.best_params_)

发现错误:

'nu':[0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.23,0.24,0,25,0.26,0.27]

如果您厌倦了手动输入这些值,我建议您使用'nu':[0.1, np.linspace(0.11,0.27,17)]

相关内容

最新更新