我用神经网络预测PM10浓度(一个回归问题)。由于包装方法依赖于模型,因此通过对数据集中所有特征进行优化的神经网络模型将不能正常工作(因为包装器每次减少数据集中的特征,就必须重新调整神经网络的隐层大小)。
所以我的问题是,我可以使用嵌入方法(Lasso)作为包装方法中的估计量吗?
这是我要问的特性选择部分:
from mlxtend.feature_selection import SequentialFeatureSelector
feature_selector = SequentialFeatureSelector(LassoCV(),
k_features=3,
forward=True,
verbose=0,
scoring='neg_mean_absolute_error',
cv=0)
features = feature_selector.fit(X, y)
filtered_features= cols[list(features.k_feature_idx_)]
print(filtered_features)
我是数据科学和机器学习的新手,所以我想知道这是对是错。
发布于 2019-09-03 19:20:44
这当然会起作用,但是套索的嵌入式功能选择不太可能在你的例子中真正发挥作用。前向顺序特征选择为每个要添加到所选特征集的候选特征建立模型,从没有特征开始。当你只建立三个特征时,拉索的特征选择会产生影响的唯一方法是,当它确定应该保留少于三个变量时,或者如果它以某种方式决定已经选择的特征之一的系数为零。后者将是非常令人惊讶的,前者只有在数据非常简单的情况下才有意义(只有两个变量对预测有任何重要贡献)。
因此,在这里,拉索很可能只是作为正则化,收缩系数,但很可能没有零位它们中的任何一个。
因为Lasso是一个假设特征独立的线性模型,您可能会妨碍网络查找和使用非线性关系或特征交互的能力。
我怀疑这里没有“正确”的答案(没有免费午餐之类的东西)。不过,这里有一些想法。
https://datascience.stackexchange.com/questions/58509
复制相似问题