Questions tagged «feature-selection»

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

2
贝叶斯估计量不受选择偏差的影响
贝叶斯估计量是否不受选择偏差的影响? 大多数讨论高维估计的论文,例如整个基因组序列数据,通常会提出选择偏见的问题。选择偏差是由于以下事实而产生的:尽管我们有成千上万的潜在预测变量,但只有很少的预测变量会被选择,并且对所选的少数变量进行推断。因此,该过程分两个步骤进行:(1)选择预测变量的子集(2)对选择集进行推断,例如估计比值比。戴维德(Dawid)在其1994年的悖论论文中重点研究了无偏估计量和贝叶斯估计量。他将问题简化为选择最大的效果,这可能是治疗效果。 然后他说,无偏估计量受选择偏差的影响。他使用了这个例子:假设 然后每个Z iZi∼N(δi,1),i=1,…,NZi∼N(δi,1),i=1,…,N Z_i\sim N(\delta_i,1),\quad i=1,\ldots,N ZiZiZ_i对于是无偏的。令 ,估计量 但是有偏见(肯定地)表示\ max \ {\ delta_1,\ delta_2,\ ldots,\ delta_N \}。用詹森的不等式可以很容易地证明这一说法。因此,如果我们知道i _ {\ max},即最大\ delta_i的索引,我们将仅使用Z_ {i _ {\ max}}作为其估计量而无偏。但是因为我们不知道这一点,所以我们使用\ gamma_1(\ mathbf {Z})来代替它(有偏)。ž = (Ž 1,Ž 2,... ,Ž Ñ )Ť γ 1(ż)= 最大{ Ž 1,Ž 2,... ,ž Ñ } 最大值{ δ 1,δ 2,... …

1
贝叶斯尖峰和平板与惩罚方法
我正在阅读Steven Scott关于BSTS R包的幻灯片(您可以在这里找到它们:slides)。 在某个时候,当谈到在结构时间序列模型中包括许多回归变量时,他介绍了回归系数的尖峰和板坯先验,并说与惩罚方法相比,它们更好。 斯科特(Scott)说,以一个具有100个预测变量的数据集为例: 惩罚方法对包含/排除哪些变量做出单一决定,这意味着它们决定了一个预测子集,即在可能变量中的一个模型。210021002^{100} “套索(和相关)先验不稀疏,它们在模式下而不是后验分布上引起稀疏” 在这一点上,他介绍了Spike和Slab先验。 我想我有直觉,但我想确定一下: 从根本上说,他们基本上使用蛮力方法测试要包括的每个回归变量子集是否更好? 这样做的缺点是计算时间吗? 当您说“套索(及相关)...但不在后验分布中”时,您认为他是什么意思?

1
当岭和套索分别表现良好但产生不同系数时如何解释结果
我正在使用Lasso和Ridge来运行回归模型(以预测介于0-5之间的离散结果变量)。在运行模型之前,我使用的SelectKBest方法scikit-learn将功能集从250减少到25。如果没有初始特征选择,套索和里奇均会降低准确性得分(这可能是由于样本量小600)所致。另外,请注意,某些功能是相关的。 运行模型后,我观察到Lasso和Ridge的预测精度几乎相同。但是,当我按系数的绝对值对它们进行排序后检查前10个特征时,我发现最多有%50重叠。 也就是说,鉴于每种方法分配的特征的重要性不同,基于所选模型,我可能会有完全不同的解释。 通常,这些功能代表网站中用户行为的某些方面。因此,我想通过突出具有较强预测能力而不是较弱特征(用户行为)的特征(用户行为)来解释发现。但是,我目前不知道如何前进。我应该如何解释模型?例如,应该结合两者并突出显示重叠部分,还是我应该选择Lasso,因为它提供了更多的可解释性?

1
为什么特征选择对于分类任务很重要?
我正在学习功能选择。我明白了为什么它对于模型构建非常重要和有用。但是,让我们专注于监督学习(分类)任务。为什么特征选择对于分类任务很重要? 我看到许多关于特征选择及其在监督学习中的使用的文献,但这使我感到困惑。功能选择与确定要丢弃的功能有关。直观地讲,丢弃某些功能似乎是自欺欺人的:它是在丢弃信息。似乎抛出信息应该无济于事。 即使删除某些功能确实有帮助,但如果我们抛弃某些功能,然后将其余功能馈入有监督的学习算法中,为什么我们需要自己做,而不是让有监督的学习算法来处理呢?如果某个功能没有帮助,难道没有任何像样的监督学习算法会隐式地发现这一点并学习不使用该功能的模型吗? 因此,从直觉上讲,我希望功能选择是毫无意义的练习,永远无济于事,有时甚至会受伤。但是,事实是如此广泛地使用和撰写,使我怀疑我的直觉是错误的。在进行监督学习时,任何人都可以提供任何直觉来说明为什么功能选择有用且重要吗?为什么它可以提高机器学习的性能?是否取决于我使用的分类器?

1
卡方测试可用于哪种特征选择?
在这里,我问其他人在监督学习中通常使用卡方检验来进行特征选择和结果选择的做法。如果我理解正确,他们是否测试每个功能和结果之间的独立性,并比较每个功能的测试之间的p值? 在http://en.wikipedia.org/wiki/Pearson%27s_chi-squared_test中, 皮尔逊卡方检验是一种统计检验,应用于分类数据集,以评估两组之间观察到的差异是偶然产生的可能性。 ... 独立性测试评估列联表中表示的关于两个变量的成对观测值是否彼此独立(例如,轮询来自不同国籍的人的答复,以查看其国籍是否与答复相关)。 那么,由测试测试其独立性的两个变量是否应该是分类的或离散的(除分类之外允许排序),而不是连续的? 从http://scikit-learn.org/stable/modules/feature_selection.html,他们 执行χ2χ2\chi^2测试到虹膜数据集到只检索最佳的两个特征。 在虹膜数据集中,所有特征都是数字值和连续值,结果是类标签(分类)。卡方独立性检验如何应用于连续要素? 要将卡方独立性检验应用于数据集,我们是否首先通过装仓(即先将要素的连续域离散化为仓,然后将其替换为仓中的要素值)来将连续要素转换为离散要素)? 几个容器中的出现形成多项式特征(每个容器中都发生或不发生),因此卡方独立性检验可以应用于它们,对吗? 顺便说一句,我们可以将卡方独立性检验应用于任何特征和结果吗? 对于结果部分,我们不仅可以通过卡方独立性检验,通过对连续结果进行分箱来选择用于分类的特征,还可以为回归选择特征,对吗? scikit学习网站还说 计算每个非负要素与类之间的卡方统计量。 此分数可用于从X中选择测试卡方统计量具有最高值的n_features特征,该特征必须仅包含非负特征,例如布尔值或频率 (例如,文档分类中的术语计数),相对于类。 为什么测试需要非阴性功能? 如果这些特征没有符号,但是是分类的或离散的,则测试仍然可以应用到它们吗?(请参阅我的第1部分) 如果特征是负的,我们总是可以对它们的域进行归类,并用它们的出现替换它们(就像我对将测试应用于虹膜数据集所猜测的那样,请参阅第2部分),对吗? 注意:我猜Scikit Learn遵循一般原则,这就是我在这里要的。如果没有,那还是可以的。

6
R或Python中在无监督学习中执行特征选择的方法
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 2年前关闭。 R / Python中有哪些可用的方法/实现来丢弃/选择数据中不重要/重要的功能?我的数据没有标签(无监督)。 数据具有约100种混合类型的要素。一些是数字的,而另一些是二进制的(0/1)。

2
分类问题中类可分离性的度量
Fisher的线性判别率是衡量线性判别学习者班级可分离性的一个很好的例子。还有其他有用的指标来确定功能集是否在目标变量之间提供了良好的类分离吗?特别是,我有兴趣寻找良好的多变量输入属性以最大程度地实现目标类别的分离,并且最好采用非线性/非参数度量来快速确定它们是否提供良好的可分离性。

1
自动选择特征以进行异常检测
自动选择特征以进行异常检测的最佳方法是什么? 我通常将异常检测视为一种算法,由专家选择特征:重要的是输出范围(如“异常输入-异常输出”),因此即使具有许多功能,您也可以通过组合来得出更小的子集特点。 但是,假定在一般情况下功能列表可能很大,则有时自动学习有时会更可取。据我所知,有一些尝试: 概括支持向量数据描述的“异常检测的自动特征选择”(pdf) 我想使用粗糙集理论的“使用粗糙集理论的基于主机的快速入侵检测系统”(没有可用的pdf?) 使用统计方法的“异常检测敌对网络流量的学习规则”(pdf,视频) 因此,现在我想知道是否有人可以告诉您-假设检测到异常并具有非常大的功能(数百个): 这些庞大的功能集是否有意义?我们不应该将功能集减少到几十个吗? 如果庞大的功能集确实有意义,那么上述哪种方法会给出更好的预测,为什么?有没有列出更好的东西? 与降维或通过聚类/排序/等进行特征构建相比,为什么它们应该提供更好的结果?

1
R / mgcv:为什么te()和ti()张量积产生不同的曲面?
的mgcv软件包R具有两个功能,用于拟合张量积相互作用:te()和ti()。我了解两者之间的基本分工(拟合非线性交互与将这种交互分解为主要效果和交互)。我不明白的是为什么te(x1, x2)而ti(x1) + ti(x2) + ti(x1, x2)可能产生(略)不同的结果。 MWE(改编自?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

2
软阈值与套索惩罚
我正在尝试总结到目前为止在使用高维数据集进行的惩罚性多元分析中所了解的内容,但我仍然在努力获得正确的软阈值与Lasso(或)惩罚的定义方面遇到困难。L1L1L_1 更准确地说,我使用稀疏PLS回归分析包括基因组数据的2块数据结构(单核苷酸多态性,其中我们将次等位基因的频率在{0,1,2}范围内,视为数值变量)和连续表型(量化人格特征或脑不对称性的得分,也视为连续变量)。这个想法是要找出最有影响力的预测因子(这里是DNA序列的遗传变异)来解释个体之间的表型变异。 我最初使用mixOmics R包(以前integrOmics),该包具有受罚的PLS回归和正则化的CCA。查看R代码,我们发现预测变量中的“稀疏性”只是通过选择第个分量(算法为)上具有最高负载(绝对值)的前变量来诱发的是迭代的并且计算组件上的变量负载,在每次迭代时缩小预测变量块,有关概述,请参见稀疏PLS:集成Omics数据时的变量选择)。相反,S。Keleş与他人合着了spls软件包(请参见i i = 1 ,... ,k k L 1kkkiiii=1,…,ki=1,…,ki=1,\dots, kkkk稀疏偏最小二乘回归的同时降维和变量选择,对于这些作者所采取的方式)实现一个更加正式的描述 -penalization变量处罚。L1L1L_1 在我看来,在基于软阈值的迭代特征选择和正则化之间是否存在严格的“双射”并不明显。所以我的问题是:两者之间是否存在数学联系?L1L1L_1 参考文献 Chun,H.和Kelȩs,S.(2010),稀疏偏最小二乘用于同时减少维数和变量选择。皇家统计学会:B系列,72,3-25。 Le Cao,K.-A.,Rossoou,D.,Robert-Granie,C.和Besse,P.(2008年),《整合Omics数据时用于变量选择的稀疏PLS》。在遗传学和分子生物学统计应用程序,7,第35条。

3
逐步回归的优点是什么?
为了解决问题,我正在尝试逐步回归。所以,我有两个问题: 逐步回归的优点是什么?它的特长是什么? 您如何看待混合方法?在混合方法中,您将使用逐步回归来选择要素,然后应用常规回归将所​​有所选要素结合在一起?


2
仅将LASSO用于特征选择
在我的机器学习课程中,我们了解了LASSO回归如何很好地执行特征选择,因为它利用了正则化。升1个升1个l_1 我的问题是:人们通常是仅使用LASSO模型进行特征选择(然后将这些特征转储到其他机器学习模型中),还是通常使用LASSO进行特征选择和实际回归? 例如,假设您想进行岭回归,但是您认为许多功能都不是很好。运行LASSO,仅提取算法未将其归零的功能,然后仅将那些功能用于将数据转储到ridge回归模型中是否明智?这样,您将获得正则化用于执行特征选择的好处,还正则化用于减少过度拟合的好处。(我知道这基本上等于弹性净回归,但是似乎您不需要在最终回归目标函数中同时拥有l_1和l_2项。)升1个升1个l_1升2升2l_2升1个升1个l_1升2升2l_2 除了回归之外,在执行分类任务(使用SVM,神经网络,随机森林等)时,这是否是明智的策略?

3
Logistic回归中的排名功能
我使用了Logistic回归。我有六个功能,我想知道此分类器中比其他功能更能影响结果的重要功能。我使用了Information Gain,但似乎并不依赖于所使用的分类器。是否有任何方法可以根据特定的分类器(例如Logistic回归)根据其重要性对特征进行排名?任何帮助将不胜感激。

2
异常检测:使用什么算法?
背景信息:我正在开发一个分析临床数据的系统,以过滤掉可能是错别字的难以置信的数据。 到目前为止,我做了什么: 为了量化真实性,到目前为止,我的尝试是对数据进行归一化,然后根据点p与集合D中已知数据点的距离(=训练集合)计算点p的真实性值: plausibility(p)=∑q∈DGauss(distance(p,q))plausibility(p)=∑q∈DGauss(distance(p,q))\text{plausibility}(p)=\sum_{q\in D}\text{Gauss}(\text{distance}(p,q)) 通过这种量化,我可以选择一个阈值,将合理的数据与不可信的数据分开。我正在使用python / numpy。 我的问题: 该算法无法检测独立的维度。理想情况下,我可以将关于记录的所有信息放入算法中,让它自己发现维度X不会影响记录的合理性。 该算法不适用于布尔值或选择输入等离散值。它们可以映射到连续值上,但是与Select 3相比,Select 1与Select 2更接近Select 2是违反直觉的。 题: 我应该为该任务寻找哪种算法?似乎有很多选择,包括基于最近邻居,基于聚类和统计方法。另外,我很难找到有关这种复杂性异常检测的论文。 任何建议都受到高度赞赏。 [编辑]示例: 假设数据由一个人的身高,一个人的体重和时间戳组成-因此它是3D数据。体重和身高是相关的,但时间戳是完全独立的。如果仅考虑欧几里德距离,则必须选择一个小的阈值以适合我的大多数交叉验证数据。理想情况下,该算法将只忽略时间戳记维度,因为确定记录是否合理是无关紧要的,因为时间戳记与任何其他维度都不相关。任何时间戳都是合理的。 另一方面,可以组成一些示例,其中时间戳确实很重要。例如,特征X的值Y在某个日期之前而不是某个日期之后测量时可能是合理的。

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.