Questions tagged «feature-selection»

选择用于进一步建模的属性子集的方法和原理


7
选择要包含在多元线性回归模型中的变量
我目前正在使用多元线性回归建立模型。在摆弄我的模型之后,我不确定如何最好地确定要保留哪些变量以及要除去哪些变量。 我的模型从DV的10个预测变量开始。当使用所有10个预测变量时,有4个被认为是重要的。如果仅删除一些明显不正确的预测变量,那么一些最初不重要的预测变量将变得很重要。这使我想到了一个问题:如何确定要在模型中包括哪些预测变量?在我看来,您应该对所有预测变量运行一次模型,删除不重要的预测变量,然后重新运行。但是,如果只删除其中一些预测变量会使其他预测变量变得重要,那么我想知道我是否对所有这些方法都采用了错误的方法。 我认为该主题与我的问题类似,但是我不确定我是否正确解释了讨论内容。也许这更多是一个实验性设计主题,但也许有人可以分享一些经验。


5
从许多自变量中检测出重要的预测变量
在两个非重叠人群(患者和健康人群,总计n=60n=60n=60)的数据集中,我想(从300300300独立变量中)找到连续因变量的重要预测因子。存在预测变量之间的相关性。我有兴趣了解是否有任何预测变量与“现实中”的因变量相关(而不是尽可能准确地预测因变量)。当我对众多可能的方法不知所措时,我想问一问最推荐哪种方法。 根据我的理解,不建议逐步加入或排除预测变量 例如,对每个预测变量分别运行线性回归,并使用FDR校正p值以进行多次比较(可能非常保守?) 主成分回归:难以解释,因为我无法讲述单个预测变量的预测能力,而只能讲述成分。 还有其他建议吗?

3
为什么需要变量选择?
常见的基于数据的变量选择过程(例如,向前,向后,逐步,所有子集)倾向于产生具有不良特性的模型,包括: 系数偏离零。 标准误差太小,置信区间太窄。 测试不具有广告含义的统计信息和p值。 对模型拟合的估计过于乐观。 可能无意义的包含术语(例如,排除低阶术语)。 但是,变量选择过程仍然存在。考虑到变量选择的问题,为什么需要这些程序?是什么促使他们使用它? 一些提议开始讨论。 是否希望获得可解释的回归系数?(在具有多个IV的模型中被误导了吗?) 消除不相关变量引入的方差? 在自变量中消除不必要的协方差/冗余吗? 减少参数估计的数量(功效,样本量) 还有其他吗?变量选择技术所解决的问题是否比变量选择程序所引入的问题重要?什么时候应该使用它们?什么时候不应该使用它们?

6
二进制分类的变量选择过程
当变量/特征比学习集中的观察数多时,您更喜欢二进制分类的变量/特征选择是什么?这里的目的是讨论什么是可以最大程度减少分类错误的特征选择过程。 我们可以修复符号为:一致性,让从组是学习组观察的。因此是学习集的大小。我们将设置为要素数量(即要素空间的维)。令表示个坐标。{ X 我1,... ,X 我Ñ 我 } 我Ñ 0 + ñ 1 = Ñ p X [ 我] 我X ∈ [R pi∈{0,1}i∈{0,1}i \in \{0, 1\}{ x一世1个,… ,x一世ñ一世}{x1i,…,xnii}\{x_1^i,\dots, x_{n_i}^i\}一世iiñ0+ n1个= nn0+n1=nn_0 + n_1 = npppx [ i ]x[i]x[i]一世iiX ∈ řpx∈Rpx \in \mathbb{R}^p 如果您无法提供详细信息,请提供完整的参考。 编辑(不断更新):以下答案中提出的程序 贪婪的前向选择 二元分类的变量选择过程 向后消除 二进制分类的变量选择过程 Metropolis扫描/ MCMC …

3
执行变量选择时如何处理多重共线性?
我有一个包含9个连续自变量的数据集。我正在尝试从这些变量中进行选择,以使模型适合单个百分比(因变量)变量Score。不幸的是,我知道几个变量之间将存在严重的共线性。 我尝试使用stepAIC()R中的函数进行变量选择,但是奇怪的是,该方法似乎对方程中列出变量的顺序很敏感... 这是我的R代码(因为它是百分比数据,所以我对得分使用了logit转换): library(MASS) library(car) data.tst = read.table("data.txt",header=T) data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 + Var8 + Var9, data = data.tst) step = stepAIC(data.lm, direction="both") summary(step) 由于某种原因,我发现方程式开头列出的变量最终被stepAIC()函数选择,结果可以通过列出来操纵,例如,Var9首先(跟随波浪号)。 在这里拟合模型的一种更有效(且争议较小)的方法是什么?我使用线性回归并没有真正陷入僵局:我唯一想做的就是能够了解9个变量中的哪一个真正驱动了变量的Score变化。优选地,这将是考虑这9个变量的共线性的强大潜力的某种方法。

1
自由度可以是非整数吗?
当我使用GAM时,它给了我剩余的DF为(代码的最后一行)。这意味着什么?超越GAM示例,通常,自由度可以是非整数吗?26.626.626.6 > library(gam) > summary(gam(mpg~lo(wt),data=mtcars)) Call: gam(formula = mpg ~ lo(wt), data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -4.1470 -1.6217 -0.8971 1.2445 6.0516 (Dispersion Parameter for gaussian family taken to be 6.6717) Null Deviance: 1126.047 on 31 degrees of freedom Residual Deviance: 177.4662 on 26.6 degrees of …
27 r  degrees-of-freedom  gam  machine-learning  pca  lasso  probability  self-study  bootstrap  expected-value  regression  machine-learning  linear-model  probability  simulation  random-generation  machine-learning  distributions  svm  libsvm  classification  pca  multivariate-analysis  feature-selection  archaeology  r  regression  dataset  simulation  r  regression  time-series  forecasting  predictive-models  r  mean  sem  lavaan  machine-learning  regularization  regression  conv-neural-network  convolution  classification  deep-learning  conv-neural-network  regression  categorical-data  econometrics  r  confirmatory-factor  scale-invariance  self-study  unbiased-estimator  mse  regression  residuals  sampling  random-variable  sample  probability  random-variable  convergence  r  survival  weibull  references  autocorrelation  hypothesis-testing  distributions  correlation  regression  statistical-significance  regression-coefficients  univariate  categorical-data  chi-squared  regression  machine-learning  multiple-regression  categorical-data  linear-model  pca  factor-analysis  factor-rotation  classification  scikit-learn  logistic  p-value  regression  panel-data  multilevel-analysis  variance  bootstrap  bias  probability  r  distributions  interquartile  time-series  hypothesis-testing  normal-distribution  normality-assumption  kurtosis  arima  panel-data  stata  clustered-standard-errors  machine-learning  optimization  lasso  multivariate-analysis  ancova  machine-learning  cross-validation 

5
什么会导致PCA恶化分类器的结果?
我有一个要进行交叉验证的分类器,还有一百个要进行正向选择以查找特征的最佳组合的特征。我还将这与PCA进行的相同实验进行了比较,在该实验中,我采用了潜在特征,应用了SVD,将原始信号转换到新的坐标空间,并在前向选择过程中使用了前特征。ķķk 我的直觉是PCA会改善结果,因为信号比原始功能更具“信息性”。我对PCA的幼稚理解是否会使我陷入麻烦?有人能提出PCA在某些情况下可以改善结果,而在另一些情况下却会恶化结果的一些常见原因吗?

3
为什么对套索识别的变量子集使用套索估计而不是OLS估计?
对于套索回归假设最佳解决方案(例如最小测试误差)选择了k个特征,这样\ hat {\ beta} ^ {lasso} = \ left(\ hat {\ beta} _1 ^ {lasso},\ hat {\ beta} _2 ^ {lasso},...,\ hat {\ beta} _k ^ {lasso},0,... 0 \ right)。L(β)=(Xβ−y)′(Xβ−y)+λ∥β∥1,L(β)=(Xβ−y)′(Xβ−y)+λ‖β‖1,L(\beta)=(X\beta-y)'(X\beta-y)+\lambda\|\beta\|_1,kkkβ^lasso=(β^lasso1,β^lasso2,...,β^lassok,0,...0)β^lasso=(β^1lasso,β^2lasso,...,β^klasso,0,...0)\hat{\beta}^{lasso}=\left(\hat{\beta}_1^{lasso},\hat{\beta}_2^{lasso},...,\hat{\beta}_k^{lasso},0,...0\right) 我们知道(β^lasso1,β^lasso2,...,β^lassok)(β^1lasso,β^2lasso,...,β^klasso)\left(\hat{\beta}_1^{lasso},\hat{\beta}_2^{lasso},...,\hat{\beta}_k^{lasso}\right)是一个\ left(\ beta_1,\ beta_2,...,\ beta_k \ right)的估计值有偏差(β1,β2,...,βk)(β1,β2,...,βk)\left(\beta_1,\beta_2,...,\beta_k\right),所以为什么我们仍将β^lassoβ^lasso\hat{\beta}^{lasso}作为最终解决方案,而不是更“合理的” β^new=(β^new1:k,0,...,0)β^new=(β^1:knew,0,...,0)\hat{\beta}^{new}=\left(\hat{\beta}_{1:k}^{new},0,...,0\right),其中β^new1:kβ^1:knew\hat{\beta}_{1:k}^{new}是部分模型Lnew(β1:k)=(X1:kβ−y)′(X1:kβ−y)Lnew(β1:k)=(X1:kβ−y)′(X1:kβ−y)L^{new}(\beta_{1:k})=(X_{1:k}\beta-y)'(X_{1:k}\beta-y)。(X1:kX1:kX_{1:k}表示与k个所选要素相对应的X列)。XXXkkk 简而言之,为什么我们同时将Lasso用于特征选择和参数估计,而不是仅用于变量选择(并将选定特征的估计留给OLS)? (此外,“套索最多可以选择nnn特征” 是什么意思?nnn是样本大小。)

6
测试精度高于训练水平。怎么解释?
我的数据集最多包含150个示例(分为训练和测试),并且具有许多功能(高于1000个)。我需要比较在数据上表现良好的分类器和特征选择方法。因此,我使用三种分类方法(J48,NB,SVM)和2种特征选择方法(CFS,WrapperSubset)以及不同的搜索方法(Greedy,BestFirst)。 比较时,我正在研究训练准确性(5折交叉折叠)和测试准确性。 这是J48和CFS-BestFirst的结果之一: {“ accuracyTraining”:95.83,“ accuracyTest”:98.21} 许多结果是这样的,并且在SVM上有许多结果表明测试准确性远高于训练(训练:60%,测试:98%) 我如何有意义地解释这些结果?如果更低,我会说这太过合适了。通过查看所有结果,在这种情况下是否有关于偏差和方差的说法?我该怎么做才能使这种分类有意义,例如重新选择训练和测试集,或者仅对所有数据使用交叉验证? 我有73个培训和58个测试实例。一些答案在发布时没有此信息。

3
处理大,小问题时的模型稳定性
介绍: 我有一个经典的“大p,小n问题”数据集。可用样本数n = 150,而可能的预测变量数p = 400。结果是一个连续变量。 我想找到最“重要”的描述符,即那些最能解释结果并帮助建立理论的描述符。 经过对该主题的研究,我发现LASSO和Elastic Net通常用于大p小n的情况。我的一些预测变量具有高度相关性,因此我想在重要性评估中保留它们的分组,因此,我选择使用Elastic Net。我想我可以使用回归系数的绝对值来衡量重要性(如果我错了,请纠正我;我的数据集是标准化的)。 问题: 由于样本数量少,如何获得稳定的模型? 我目前的方法是在90%的数据集上以10倍的交叉验证平均MSE分数在网格搜索中找到最佳调整参数(λ和alpha)。然后,我在整个数据集的90%上使用最佳调整参数训练模型。我可以在数据集的10%保留率(仅占15个样本)上使用R平方来评估我的模型。 反复运行此过程,我发现R平方评估存在很大差异。同样,非零预测变量的数量及其系数也会变化。 如何获得对预测变量重要性的更稳定评估以及对最终模型性能的更稳定评估? 我可以重复运行我的程序来创建多个模型,然后平均回归系数吗?还是应该使用模型中预测变量的出现次数作为其重要性得分? 目前,我得到40-50个非零预测变量。为了更好的稳定性,我应该更严厉地惩罚一些预测变量吗?

2
选择贝叶斯模型或交叉验证的最佳方法?
当尝试在各种模型或要包括的特征数量中进行选择时,比如说预测,我可以想到两种方法。 将数据分为训练集和测试集。更好的是,使用自举或k折交叉验证。每次都在训练集中进行训练,并计算测试集中的误差。绘制测试误差与参数数量的关系图。通常,您会得到以下内容: 通过对参数值进行积分来计算模型的可能性。即,计算,并将其与参数数量相对应。然后,我们得到如下内容:∫θP(D | θ )P(θ )dθ∫θP(d|θ)P(θ)dθ\int_\theta P(D|\theta)P(\theta)d \theta 所以我的问题是: 这些方法是否适合解决此问题(确定模型中要包含多少参数,或在多个模型中进行选择)? 它们相等吗?可能不会。他们会在某些假设下还是在实践中给出相同的最佳模型? 除了在贝叶斯模型等中指定先验知识的通常的哲学差异之外,每种方法的优缺点是什么?您会选择哪一个? 更新: 我还发现了有关比较AIC和BIC 的相关问题。看来我的方法1与AIC渐近等效,而方法2与BIC渐近相关。但我在那里也读到,BIC等同于“留一法”简历。这意味着在LOO CV等于K倍CV的情况下,训练误差最小值和贝叶斯似然最大值相等。邵军的一篇也许非常有趣的论文“ 线性模型选择的渐近理论 ”与这些问题有关。


1
为什么LASSO在高维度上找不到我的理想预测变量对?
我正在R中进行LASSO回归的小型实验,以测试它是否能够找到理想的预测变量对。该对的定义如下:f1 + f2 =结果 这里的结果是称为“年龄”的预定向量。通过取年龄向量的一半并将其余值设置为0,可以创建F1和f2,例如:age = [1,2,3,4,5,6],f1 = [1,2,3, 0,0,0]和f2 = [0,0,0,4,5,6]。通过从正态分布N(1,1)进行采样,我将此预测变量对与数量增加的随机创建变量结合在一起。 我看到的是当我命中2 ^ 16个变量时,LASSO再也找不到了。请参阅下面的结果。 为什么会这样呢?您可以使用以下脚本重现结果。我注意到,当我选择其他年龄向量时,例如:[1:193],LASSO确实找到了高维(> 2 ^ 16)对。 剧本: ## Setup ## library(glmnet) library(doParallel) library(caret) mae <- function(errors){MAE <- mean(abs(errors));return(MAE)} seed = 1 n_start <- 2 #start at 2^n features n_end <- 16 #finish with 2^n features cl <- …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.