我正在测试SVM的超参数,但是,当我求助于Gridsearch或RandomizedSearchCV时,我无法得到一个解决方案,因为处理时间超过了几个小时。
我的数据集相对较小:4303行和67个属性,四个类(分类问题)
以下是测试参数:
params =[{'C': [0.1,1, 10, 100],
'kernel': ['poly','sigmoid','linear','rbf'],
'gamma': [1,0.1,0.01,0.001]}
]
sv = SVC()
clf = RandomizedSearchCV(estimator=sv,
cv = 3,
param_distributions=params,
scoring='accuracy',
n_jobs = -1,
verbose=1)
clf.fit(X, y)
print("Best parameters:", clf.best_params_)
print("better accuracy: ", (clf.best_score_)**(1/2.0))
我已经减少了参数的数量和cvs的数量,但是我仍然不能得到一个不需要几个小时处理的结果。
有可能优化这个过程吗?我在网格搜索或SVM方面犯了错误吗?
2条答案
按热度按时间carvr3hs1#
一些SVM核可以很长时间地适应大量的特征。2我想你可以试着去掉一些核或者减少特征的数量
mpbci0fu2#
您可以使用一些其他的超级优化方法,如gridsearchCV或减少设置的参数数量