使用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
你爲什麼要明確地忽略這些模型?如果具有全零係數的模型最好,那麼你就知道有什麼不對。 –