我有一个包含TfidVectorizer和OneVsRestClassifier(SGDClassifier)的Pipeline。这是我想执行的gridSearch的参数设置:
parameters = {'tfidf-vect__ngram_range': ((1, 1), (1, 3)), 'tfidf-vect__stop_words': (None,'english'), 'tfidf-vect__min_df': (1e-3,1e-6), 'tfidf-vect__max_features': (1e7,1e4), 'tfidf-vect__norm': ('l1','l2',None), 'tfidf-vect__use_idf': (True, False), 'tfidf-vect__sublinear_tf': (True, False), 'clf__estimator__alpha': (1e-5, 1e-7), 'clf__estimator__loss':('hinge', 'log', 'modified_huber'), 'clf__estimator__penalty':(None, 'l2', 'l1','elasticnet'), 'clf__estimator__class_weight':("auto", None), 'clf__estimator__warm_start':(True,False), 'clf__estimator__average':(True,False,4,8,16)}
问题:我想知道最佳的参数组合是什么,但我无法在我的电脑上对10万个样本运行这样的gridSearch。
提问:这种gridSearch的结果(可能使用较小的参数集)在10万个样本的数据集和一个1万到2万个样本的子集上会有多相似?
正如你可能已经知道的,我正在处理文本的多标签分类问题。
谢谢你 🙂
回答:
是的,这是一个不错的策略。虽然不能保证得到最佳结果,但结果应该还是相当不错的。不过,你必须小心,不要在参数搜索中对较小的数据集过拟合。