sklearn中分类数据的递归特征消除?
Recursive Feature Elimination on Categorical Data in sklearn?
我有一个包含 8 个参数的数据集(4 个连续参数,4 个分类参数),我正在尝试根据 Scikit 中的 RFEC class 消除特征。
这是我使用的公式:
svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(y, 2),
scoring='accuracy')
rfecv.fit(X, y)
因为我也有分类数据,所以我使用 dmatrics (Patsy) 将其更改为虚拟变量。
我想在特征选择后对数据尝试不同的分类模型,以与 SVC 一起改进模型。
我 运行 在 运行 形成数据后 RFE,我认为我做错了。
我们 运行 RFECV 是在 t运行 形成分类数据之前还是之后?
我在任何文件中都找不到任何明确的指示。
这取决于您想要select 给定分类变量还是整个变量的值。
您目前正在 select 分类变量的单一设置(又名级别)。
要 select 整个变量,您可能需要做一些 hackery,根据 SVC 定义您自己的估算器。
你可以做 make_pipeline(OneHotEncoder(categorical_features), SVC())
但你需要将管道的 coef_
设置为反映输入形状的东西。
我有一个包含 8 个参数的数据集(4 个连续参数,4 个分类参数),我正在尝试根据 Scikit 中的 RFEC class 消除特征。
这是我使用的公式:
svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(y, 2),
scoring='accuracy')
rfecv.fit(X, y)
因为我也有分类数据,所以我使用 dmatrics (Patsy) 将其更改为虚拟变量。
我想在特征选择后对数据尝试不同的分类模型,以与 SVC 一起改进模型。
我 运行 在 运行 形成数据后 RFE,我认为我做错了。
我们 运行 RFECV 是在 t运行 形成分类数据之前还是之后?
我在任何文件中都找不到任何明确的指示。
这取决于您想要select 给定分类变量还是整个变量的值。
您目前正在 select 分类变量的单一设置(又名级别)。
要 select 整个变量,您可能需要做一些 hackery,根据 SVC 定义您自己的估算器。
你可以做 make_pipeline(OneHotEncoder(categorical_features), SVC())
但你需要将管道的 coef_
设置为反映输入形状的东西。