使用python和scikit-learn,我想做一个网格搜索。但是我的一些模型最终变得空虚。如何让网格搜索功能忽略这些模型?使sklearn中的网格搜索功能忽略空模型
我想我可以有一个评分函数,如果模型是空的,返回0,但我不知道如何。在某种程度上
predictor = sklearn.svm.LinearSVC(penalty='l1', dual=False, class_weight='auto')
param_dist = {'C': pow(2.0, np.arange(-10, 11))}
learner = sklearn.grid_search.GridSearchCV(estimator=predictor,
param_grid=param_dist,
n_jobs=self.n_jobs, cv=5,
verbose=0)
learner.fit(X, y)
我的数据的,这learner
对象会选择一个C
对应一个空模型。任何想法如何确保模型不是空的?
编辑:由“空模型”我的意思是一个模型,选择了0个要素使用。特别是用l1
正则化模型,这很容易发生。因此,在这种情况下,如果SVM中的C
足够小,则优化问题将找到0向量作为系数的最优解。因此predictor.coef_
将是0
s的向量。
什么是正空的模式? – cel
好问题。在编辑中解释。 – adrin
你为什么要明确地忽略这些模型?如果具有全零系数的模型最好,那么你就知道有什么不对。 –