Questions tagged «feature-selection»

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

8
自动模型选择算法
我想实现一种用于自动模型选择的算法。我正在考虑进行逐步回归,但是任何事情都会做(尽管它必须基于线性回归)。 我的问题是我找不到方法论或开源实现(我正在用Java唤醒)。我想到的方法如下: 计算所有因素的相关矩阵 选择彼此之间相关性较低的因素 删除t统计量较低的因素 添加其他因素(仍基于2中找到的低相关因素)。 重复几次,直到某个条件(例如AIC)超过某个阈值或无法达到或无法找到更大的值。 我意识到有一个R实现(stepAIC),但是我发现代码很难理解。另外,我还没有找到描述逐步回归的文章。

3
示例:使用glmnet获得二进制结果的LASSO回归
我开始与使用的涉猎glmnet与LASSO回归那里我感兴趣的结果是二分。我在下面创建了一个小的模拟数据框: age <- c(4, 8, 7, 12, 6, 9, 10, 14, 7) gender <- c(1, 0, 1, 1, 1, 0, 1, 0, 0) bmi_p <- c(0.86, 0.45, 0.99, 0.84, 0.85, 0.67, 0.91, 0.29, 0.88) m_edu <- c(0, 1, 1, 2, 2, 3, 2, 0, 1) p_edu <- c(0, 2, 2, …
77 r  self-study  lasso  regression  interpretation  anova  statistical-significance  survey  conditional-probability  independence  naive-bayes  graphical-model  r  time-series  forecasting  arima  r  forecasting  exponential-smoothing  bootstrap  outliers  r  regression  poisson-distribution  zero-inflation  genetic-algorithms  machine-learning  feature-selection  cart  categorical-data  interpretation  descriptive-statistics  variance  multivariate-analysis  covariance-matrix  r  data-visualization  generalized-linear-model  binomial  proportion  pca  matlab  svd  time-series  correlation  spss  arima  chi-squared  curve-fitting  text-mining  zipf  probability  categorical-data  distance  group-differences  bhattacharyya  regression  variance  mean  data-visualization  variance  clustering  r  standard-error  association-measure  somers-d  normal-distribution  integral  numerical-integration  bayesian  clustering  python  pymc  nonparametric-bayes  machine-learning  svm  kernel-trick  hyperparameter  poisson-distribution  mean  continuous-data  univariate  missing-data  dag  python  likelihood  dirichlet-distribution  r  anova  hypothesis-testing  statistical-significance  p-value  rating  data-imputation  censoring  threshold 

3
特征选择和交叉验证
我最近在这个站点(@ Aniko,@ Dikran Marsupial,@ Erik)和其他地方阅读了很多有关交叉验证时出现过拟合问题的信息-(Smialowski等人2010 Bioinformatics,Hastie,统计学习元素)。建议是,在使用交叉验证(或其他模型估计方法,例如自举)的模型性能估计之外执行的任何监督特征选择(使用与类标签的相关性)都可能导致过度拟合。 这对我来说似乎并不直观-当然,如果选择一个功能集,然后使用交叉验证仅使用选定的功能评估模型,那么您将获得对这些功能的广义模型性能的无偏估计(假设所研究的样本具有代表性)人口)? 通过此过程,当然不能要求一个最佳功能集,但可以将未看到的数据上所选功能集的性能报告为有效吗? 我接受基于整个数据集选择功能可能会导致测试集和训练集之间的数据泄漏。但是,如果在初始选择之后功能部件集是静态的,并且没有进行其他调整,那么报告交叉验证的性能指标是否有效? 就我而言,我有56个要素和259个案例,因此#cases> #features。这些特征来自传感器数据。 抱歉,我的问题似乎是派生的,但这似乎是需要澄清的重要点。 编辑: 在上面详细描述的数据集上通过交叉验证实现特征选择(由于下面的答案),我可以确认在此数据集中交叉验证之前选择特征引入了重要意义偏压。与2类配方相比,这种偏倚/过度拟合对于3类配方而言最大。我认为我使用逐步回归进行特征选择的事实加剧了这种过度拟合的现象。为了进行比较,在另一个但相关的数据集上,我将交叉验证之前执行的顺序正向特征选择例程与我先前在CV中使用特征选择所获得的结果进行了比较。两种方法之间的结果没有显着差异。这可能意味着逐步回归比顺序FS更容易过度拟合,或者可能是此数据集的怪癖。

6
在机器学习中执行交叉验证时为“最终”模型选择特征
我对功能选择和机器学习有些困惑,我想知道您是否可以帮助我。我有一个微阵列数据集,该数据集分为两组并具有1000多个特征。我的目标是获得签名中的少量基因(我的特征)(10-20个),从理论上讲,我可以将其应用于其他数据集以对这些样本进行最佳分类。由于我没有那么多样本(<100),因此我没有使用测试和训练集,而是使用了留一法交叉验证来确定稳健性。我读过,应该对样本的每一部分进行特征选择,即 选择一个样本作为测试集 在其余样本上执行特征选择 使用所选功能将机器学习算法应用于剩余样本 测试测试集是否正确分类 转到1。 如果这样做,您每次可能会获得不同的基因,那么如何获得“最终”最优基因分类器呢?即第6步是什么。 我的意思是最理想的是任何进一步研究都应使用的基因集合。例如,假设我有一个癌症/正常数据集,我想找到将根据SVM对肿瘤类型进行分类的前10个基因。我想知道可以在进一步实验中使用的基因集和SVM参数,以查看其是否可以用作诊断测试。

3
套索为什么提供变量选择?
我一直在阅读《统计学习的元素》,我想知道为什么套索不能提供变量选择,而岭回归却不提供。 两种方法都将残差平方和最小化,并对参数的可能值具有约束。对于套索,约束是,而对于山脊,约束是,对于某些。ββ\beta| | β | | 2 ≤ 吨吨||β||1≤t||β||1≤t||\beta||_1 \le t||β||2≤t||β||2≤t||\beta||_2 \le tttt 我已经看过这本书中的菱形与椭圆形图片,对于套索为什么会碰到约束区域的角点,我有一些直觉,这意味着系数之一设置为零。但是,我的直觉很弱,我没有被说服。它应该很容易看到,但是我不知道为什么这是真的。 因此,我想我正在寻找数学上的证明,或者是对为什么残留平方和的轮廓可能会击中约束区域的角的直观解释 (而这种情况不太可能发生,约束是)。| | β | | 2||β||1||β||1||\beta||_1||β||2||β||2||\beta||_2

6
2016年确实需要进行预测模型的变量选择吗?
几年前已经在简历上提出了这个问题,鉴于1)更好的计算技术(例如并行计算,HPC等)和2)更新的技术(例如[3]),似乎值得重新提出。 首先,一些背景。让我们假设目标不是假设检验,不是效果估计,而是对未见检验集的预测。因此,没有赋予任何可解释的利益以重量。其次,假设您不能排除任何预测因素在主题考虑方面的相关性,即 它们看起来单独或与其他预测变量组合似乎都合理。第三,您要面对数以百万计的预测变量。第四,假设您可以无限制地访问AWS,因此计算能力不受限制。 变量选择的常见原因是:1)效率;更快地适合较小的模型,便宜地收集较少的预测变量,2)解释;知道“重要”变量可以深入了解基本过程[1]。 众所周知,许多变量选择方法无效,而且常常是完全危险的(例如,逐步回归)[2]。 其次,如果选择的模型不错,那么根本不需要缩减预测变量的列表。该模型应该为您完成。套索就是一个很好的例子,它为所有不相关的变量分配了零系数。 我知道有些人主张使用“大象”模型,即。将所有可能的预测变量投入拟合并运行[2]。 如果目标是预测准确性,是否有任何根本原因进行变量选择? [1] Reunanen,J.(2003)。在变量选择方法之间进行比较时过度拟合。机器学习研究杂志,3,1371-1382。 [2] Harrell,F.(2015)。回归建模策略:应用于线性模型,逻辑和序数回归以及生存分析。施普林格。 [3] Taylor,J.和Tibshirani,RJ(2015)。统计学习和选择性推理。美国国家科学院院刊,112(25),7629-7634。 [4] Zhou,J.,Foster,D.,Stine,R。和Ungar,L。(2005年8月)。使用Alpha投资进行流特征选择。在第十一届ACM SIGKDD国际会议上,进行数据挖掘中的知识发现(第384-393页)。ACM。



2
关于变量选择的更明确的讨论
背景 我正在从事医学临床研究,并参加了一些统计学课程。我从未发表过使用线性/逻辑回归的论文,而是想正确地进行变量选择。可解释性很重要,因此没有花哨的机器学习技术。我总结了我对变量选择的理解-有人介意消除任何误解吗?我发现有两(1)个与此(2 )类似的简历,但他们并未完全回答我的担忧。任何想法将不胜感激!最后我有3个主要问题。 问题与讨论 我的典型回归/分类问题有200-300个观察值,不良事件发生率为15%(如果分类),以及40个变量中的25个的信息,这些变量在文献中被认为具有“统计学上的显着”效果或具有说服力。领域知识。 我用引号表示“具有统计意义”,因为似乎每个人及其母亲都使用逐步回归,但是出于许多充分的理由,Harrell(3)和Flom(4)似乎并不喜欢它。Gelman博客文章讨论进一步支持了这一点(5)。似乎唯一可以接受的实时步骤是真正的探索性分析,或者是对预测感兴趣并且涉及交叉验证方案。尤其是由于许多医学上的合并症都存在共线性,而研究的样本量却很小,所以我的理解是,文献中会出现很多假阳性。这也使我不太可能相信文献中可能包含的变量。 另一种流行的方法是使用预测变量和自变量之间的一系列单变量回归/关联作为起点。低于特定阈值(例如,p <0.2)。由于本StackExchange帖子(6)中概述的原因,这似乎不正确或至少具有误导性。 最后,一种在机器学习中流行的自动化方法是使用惩罚,例如L1(Lasso),L2(Ridge)或L1 + L2组合(Elastic Net)。我的理解是,它们没有像OLS或逻辑回归那样简单的解释。 Gelman + Hill提出以下建议: 在统计课程中,我还记得使用F检验或“偏差分析”来比较完整模型和嵌套模型,以逐个变量地进行模型/变量选择。这似乎是合理的,但系统地拟合顺序嵌套模型以查找导致每df偏差最大下降的变量似乎很容易实现自动化(因此我有点担心),而且似乎还遇到了以下问题:您测试变量包含。我的理解是,还应该通过研究多重共线性和残差图(残差图与预测图)来补充这一点。 问题: 盖尔曼摘要是要走的路吗?您会在他的拟议策略中增加或改变什么? 除了纯粹考虑潜在的交互作用和转换(似乎很容易产生偏见/错误/遗漏)之外,还有另一种方法来发现潜在的交互作用和转变吗?向我推荐了多变量自适应回归样条(MARS),但我得知非线性/变换在标准回归模型中不会转化为相同的变量。 假设我的目标非常简单:说:“我想估计X1与Y的关联,仅考虑X2”。简单地使Y〜X1 + X2回归,报告结果,而不参考实际的预测能力是否足够(可以通过交叉验证RMSE或准确性度量来测量)是否足够?是否会根据事件发生率或样本大小或R ^ 2是否过低而改变(我知道R ^ 2不好,因为您总是可以通过过度拟合来增加它)?通常,我对推理/可解释性比优化预测能力更感兴趣。 结论示例: “控制X2,相对于X1的参考水平,X1与Y在统计上没有显着相关。” (逻辑回归系数) “ X1并不是Y的统计显着预测因子,因为在模型中相对于df的变化,偏差的下降还不够。” (偏差分析) 是否总是需要交叉验证?在这种情况下,可能还需要通过SMOTE,采样等对类进行某种平衡。

3
使用主成分分析(PCA)进行特征选择
我是功能选择的新手,我想知道您将如何使用PCA进行功能选择。PCA是否为每个输入变量计算一个相对分数,您可以使用它来过滤掉非信息性输入变量?基本上,我希望能够按差异或所包含的信息量对数据中的原始特征进行排序。


6
时间序列分类的功能
我考虑基于可变长度时间序列的(多类)分类问题,即找到函数 通过时间的全局表示,由固定大小为的一组选定特征独立于, 然后对该功能集使用标准分类方法。 我对预测不感兴趣,即预测˚F (X Ť)= ÿ ∈ [ 1 .. ķ ]TTTf(XT)=y∈[1..K]for XT=(x1,…,xT)with xt∈Rd ,f(XT)=y∈[1..K]for XT=(x1,…,xT)with xt∈Rd ,f(X_T) = y \in [1..K]\\ \text{for } X_T = (x_1, \dots, x_T)\\ \text{with } x_t \in \mathbb{R}^d ~, viviv_iDDDTTTϕ(XT)=v1,…,vD∈R ,ϕ(XT)=v1,…,vD∈R ,\phi(X_T) = v_1, \dots, v_D \in \mathbb{R}~,xT+1xT+1x_{T+1}。例如,我们可以分析人的行走方式以预测其性别。 我可能要考虑哪些标准功能? 例如,我们可以明显地使用序列的均值和方差(或更高阶矩),也可以查看频域,就像该序列的离散傅里叶变换(或离散小波变换)的某个间隔中包含的能量一样。

5
如何解释SVM功能权重?
我试图解释通过拟合线性SVM给出的可变权重。 (我正在使用scikit-learn): from sklearn import svm svm = svm.SVC(kernel='linear') svm.fit(features, labels) svm.coef_ 我在文档中找不到任何具体说明如何计算或解释这些权重的信息。 体重的迹象与上课有关系吗?

5
在R中使用Lars(或glmnet)软件包中的LASSO进行变量选择
抱歉,这个问题有点基本。 我正在寻找在R中的多元线性回归模型中使用LASSO变量选择的方法。我有15个预测变量,其中之一是分类的(会引起问题吗?)。设置好和我使用以下命令:ÿXxxÿyy model = lars(x, y) coef(model) 我的问题是我何时使用coef(model)。这将返回一个包含15行的矩阵,每次添加一个额外的预测变量。但是,没有建议选择哪种模型。我错过了什么吗?有没有办法让我的lars包返回一个“ 最佳 ”模型? 还有其他文章建议使用glmnet代替,但这似乎更复杂。尝试如下,使用相同的和。我在这里错过了什么吗?: ÿXxxÿyy cv = cv.glmnet(x, y) model = glmnet(x, y, type.gaussian="covariance", lambda=cv$lambda.min) predict(model, type="coefficients") 最后一条命令返回我的变量列表,大多数变量带有系数,尽管有些为= 0。这是LASSO 选择的“ 最佳 ”模型的正确选择吗?然后,如果我用所有具有系数的变量拟合线性模型,则not=0得到的系数估计值非常相似,但略有不同。有什么区别的原因吗?用LASSO选择的这些变量重新拟合线性模型并将其作为我的最终模型是否可以接受?否则,我将看不到任何有意义的p值。我错过了什么吗? 是否 type.gaussian="covariance" 确保glmnet使用多元线性回归? 变量的自动归一化是否会完全影响系数?有什么方法可以在LASSO程序中包括交互项? 我希望更多地使用此过程来演示如何使用LASSO,而不是将其实际用于任何重要的推断/预测(如果发生任何变化)的任何模型。 感谢您抽出时间来阅读。对于LASSO / lars / glmnet的任何一般性评论也将不胜感激。


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.