我使用2级数据集的属性数量(10000~50000)比实例(100~1000)多,所以我认为特征选择是一个重要的问题 .

所以我试图使用随机Logistic回归,这是减少功能的好方法 .

然而,由于大量特征,正则化参数C的影响似乎非常大 . 我通常通过网格搜索使用如下所示的10倍交叉验证来计算最佳C,但是如this example中所述,它没有给出可靠的值 .

clist = np.linspace(0.01, 10, 100)
params = {'C' : clist}
logi = LogisticRegression(class_weight="balanced", penalty='l1')
grid = GridSearchCV(logi, params, cv=10, scoring='roc_auc')

大多数情况下,选定的C太大或太小,因此使用所选功能进行分类(通过SVM)也没有比使用默认C 1.0更好的结果 .

有没有更好的方法来选择正则化参数?

另一个问题是特征稳健性的计算 . 有一些流行的计算稳定性的方法,如Kuncheva的索引,但似乎没有在sklearn中实现 . 我能想象的只是一个简单的 - 制作n个重采样数据集,选择特征并计算重叠特征的数量 .

有没有推荐的测试功能稳健性的方法?