我试图首先将PCA应用于原始数据,然后使用决策树进行分类。
对于PCA,我只想修复n_components,而对于决策树,我使用GridSearchCV来找到最佳的超参数设置。
如何确保n_components不变?当我在pipline中定义PCA,并且在GridSearchCV的param_grid中没有提到PCA的任何设置时,我可以修复它吗?
或者我应该像"PCA_n_components"一样在GridSearchCV的param_grid中修复它:[5]?
有两种方法可以执行此操作。
-
使用超参数初始化转换器/估计器:
pipe = Pipeline( steps=[('pca', PCA(n_components=2)), ('clf', DecisionTreeClassifier())])
-
修复param_grid:中的超参数
param_grid = { 'pca__n_components': [2] } grid = GridSearchCV(pipe, param_grid)
注意事项:PCA的维度是微调模型的一个重要参数。一个最佳的n_components
肯定会在降低模型复杂性的同时提高模型的性能。