Questions tagged «feature-selection»

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

1
决策树在哪些实现中需要变量(特征)缩放和变量(特征)归一化(调整)?
在很多机器学习算法,特征缩放(又名可变缩放,标准化)是一种常见的prepocessing一步维基百科-特征缩放 -这个问题是接近问题#41704 -如何以及为什么做归一化和特征缩放工作? 关于决策树,我有两个问题: 是否有任何需要特征缩放的决策树实现?我的印象是,大多数算法的分割标准对规模无动于衷。 请考虑以下变量:(1)单位,(2)小时,(3)每小时-最好是将这三个变量按原样保留在决策树中,否则我们会遇到某种类型的冲突因为“标准化”变量(3)与(1)和(2)有关?也就是说,您是通过将所有三个变量都放入混合中来攻击这种情况,还是通常选择这三个变量的某种组合,或者只是使用“标准化/标准化”功能(3)?

3
应该仅对训练数据(或所有数据)执行特征选择吗?
应该仅对训练数据(或所有数据)执行特征选择吗?我经历了一些讨论和论文,例如Guyon(2003)以及Singhi and Liu(2006),但仍然不确定正确的答案。 我的实验设置如下: 数据集:50位健康对照者和50位疾病患者(cca 200功能可能与疾病预测相关)。 任务是根据可用功能诊断疾病。 我要做的是 取整个数据集并执行特征选择(FS)。我仅保留选定的功能以进行进一步处理 拆分以测试和训练,使用火车数据和所选功能进行火车分类。然后,将分类器应用于测试数据(再次仅使用所选功能)。使用留一法验证。 获得分类精度 平均:重复1)-3)N次。(100)。N=50N=50N=50 我同意在整个数据集上进行FS会带来一些偏差,但是我认为在平均过程中它被“平均”了(步骤4)。那是对的吗?(精度方差)&lt;2%&lt;2%<2\% 1 Guyon,I.(2003),“变量和特征选择简介”,《机器学习研究杂志》,第1卷。3,第1157-1182页 2 Singhi,SK和Liu,H.(2006)“用于分类学习的特征子集选择偏差”,进行ICML '06的第23届国际机器学习会议论文集,第849-856页

1
LASSO如何在共线预测变量中选择?
我正在寻找一个直观的答案,为什么GLM LASSO模型会从一组高度相关的预测器中选择一个特定的预测器,以及为什么这样做与最佳子集特征选择不同。 根据1996年Tibshirani中图2所示的LASSO的几何形状,我认为LASSO选择方差更大的预测变量。 现在,假设我使用具有10倍CV的最佳子集选择来获得2个逻辑回归模型的预测变量,并且我具有合理的先验知识,这2个预测变量是最优的(0-1损失意义上)。 LASSO解决方案偏向于使用较少的简约(5个预测变量)解决方案,并具有较大的预测误差。凭直觉,是什么导致差异出现?是因为LASSO在相关预测变量中进行选择的方式吗?

3
在Matlab中使用互信息进行特征选择
我正在尝试将互信息的思想应用于特征选择,如这些讲义(第5页)中所述。 我的平台是Matlab。我从经验数据计算互信息时发现的一个问题是,数字总是向上偏移。我在Matlab Central上找到了大约3〜4个不同的文件来计算MI,当我输入独立的随机变量时,它们都给出了很大的数字(例如&gt; 0.4)。 我不是专家,但是问题似乎是,如果仅使用联合和边际密度来计算MI,则会在过程中引入偏差,因为MI从定义上说是积极的。是否有人对如何准确估计互信息有实用建议? 一个相关的问题是,在实践中,人们实际上如何使用MI选择功能?对我而言,如何得出一个阈值并不明显,因为理论上MI是无界的。还是人们只是按MI对要素进行排名并采用前k个要素?

1
处理非常大的时间序列数据集
我可以访问非常大的数据集。数据来自四种类型之一的人们在听音乐摘录时的MEG录音。数据如下: 6个科目 3次实验重复(时期) 每个时期120次试用 275个MEG通道在500Hz(= 4000个样本)下每次试验8秒的数据 因此,这里的每个“示例”都是一个大小为[4000x275]的矩阵,并且有2160个此类示例,并且在进行任何特征提取之前。目的是根据大脑信号(4类分类)预测类型。 显然,这里存在一些具有挑战性的问题,即: 数据集不适合内存 数据中将存在很强的时间相关性,并且受试者间的差异将很大。结果,如何分割数据并不明显 信噪比非常低 目前尚不清楚分类器的正确功能是什么 依次进行以下操作: 一个人可以做很多事情。首先,我们可以安全地将采样频率从500Hz降低到200Hz,因为即使考虑到奈奎斯特极限,大脑活动也不会真正发生在100Hz以上。我们也可以从一组渠道中进行抽样(例如,在听觉区域上方居中),但我们不愿先验,因为在其他区域(额叶等)可能会有一些有趣的活动。我们可能还可以删除一部分时间窗口。也许只有前2个对任务很重要?这不是真的。当然每个人都会大喊“ 降维!”,但这也不是一件容易的事。首先,我们必须非常小心地进行训练/测试拆分(请参阅2.),并且在生成特征之前还是之后也不很明显。其次,除了昂贵之外交叉验证或艰苦的视觉检查,没有明显的方法来选择合适的方法或合适的尺寸,我们当然可以仅使用PCA,ICA或随机投影,并希望获得最好的结果。 这很棘手。如果我们在训练集中有连续的样本,我们可能会过度拟合训练集,而如果我们将连续的样本分成训练和测试集,则我们可能会不足以适应训练集,但仍然可能会过度拟合测试集。这里似乎有多种选择: 单科目分类。各个科目各取所需,并根据时代划分。这应该是最简单的任务,因为我们没有试图跨大脑进行预测。在这个范围内,可以使用两个剩余的时期进行交叉验证。为了完整性,应该旋转所有组合。我们只报告所有主题的平均准确性。当然,我们不会期望这些模型能很好地推广。 学科内分类。将所有主题放在一起,并根据时代划分。实际上,这可能是最简单的任务,因为我们将看到所有受训的对象。但是,我们可能不会期望这些模型能很好地推广到新主题。在这个范围内,可以使用两个剩余的时期进行交叉验证。为了完整性,应该旋转所有组合。 学科间分类。也称为“留一法”,其中将单个科目作为测试数据,其余的用于训练。然后,我们将轮流浏览所有主题。然后将对主题执行交叉验证。我们希望这将是一个更加困难的任务,因为我们每次都试图在一个“新大脑”上进行预测。尽管存在重测信度(即时间相关性导致多少过度拟合)的问题,但我们希望模型能够很好地推广到更大的人群。 这是一个典型的“大海捞针”问题-与音乐体裁或任何体裁特定处理有关的实际信号与大脑活动的“汤”相比可能微不足道。还有一些伪造品,只能被部分去除(主要与移动有关)。我们从数据中得出的任何特征以及处理数据的任何方式都应避免破坏部分感兴趣的信号。 在这里可以想象做各种事情。第一种是简单地将原始数据(连接到向量中)用作特征向量。我不确定这会带来多大的收获-我认为这些向量本质上可能是统一随机的。这确实是一个信号处理问题,但是可以遵循一些一般准则。一种方法是在滑动窗口上进行标准傅里叶分析,从中可以将分量分成不同的频带(α/β/γ等),并将这些统计量(平均值,标准偏差)用作特征。或者可以使用小波,希尔伯特变换,甚至尝试寻找混沌吸引子。当然,我们可以选择内核(线性,多项式,RBF等),以乘以排列的数量。也许最好的做法是生成尽可能多的不同功能集,然后使用MKL或增强方法将它们组合在一起。 您将如何处理这种数据集(如果不是专门的话)?一路上我有什么想念的吗?如果不花费大量的研究时间和计算资源,最可能成功的策略是什么?

4
有没有一种方法可以使用交叉验证在R中进行变量/特征选择?
我有一个约70个要减少的变量的数据集。我想要做的是使用CV以下列方式查找最有用的变量。 1)随机选择说20个变量。 2)使用stepwise/ LASSO/ lars/ etc选择最重要的变量。 3)重复〜50x,查看最常选择(未消除)的变量。 这与a的randomForest做法类似,但是该rfVarSel软件包似乎仅适用于因子/分类,我需要预测一个连续的因变量。 我正在使用R,因此任何建议都可以在此处理想地实现。

4
改善糖尿病的SVM分类
我正在使用SVM来预测糖尿病。我为此使用BRFSS数据集。数据集的维度为并且存在偏斜。s在目标变量中的百分比为而s构成其余的。11 %89 %432607 × 136432607×136432607 \times 136Y11 %11%11\%N89 %89%89\% 我只使用了数据集中15的136独立变量。减少数据集的原因之一是当NA省略包含s的行时具有更多的训练样本。 15在运行统计方法(例如随机树,逻辑回归)并从结果模型中找出哪些变量很重要之后,才选择这些变量。例如,在运行逻辑回归之后,我们通常p-value对最重要的变量进行排序。 我进行变量选择的方法正确吗?任何建议都非常欢迎。 以下是我的R实现。 library(e1071) # Support Vector Machines #-------------------------------------------------------------------- # read brfss file (huge 135 MB file) #-------------------------------------------------------------------- y &lt;- read.csv("http://www.hofroe.net/stat579/brfss%2009/brfss-2009-clean.csv") indicator &lt;- c("DIABETE2", "GENHLTH", "PERSDOC2", "SEX", "FLUSHOT3", "PNEUVAC3", "X_RFHYPE5", "X_RFCHOL", "RACE2", "X_SMOKER3", "X_AGE_G", "X_BMI4CAT", "X_INCOMG", "X_RFDRHV3", "X_RFDRHV3", "X_STATE"); target …

2
非参数回归的最佳特征选择方法
这里有一个新手问题。我目前正在使用R中的np包执行非参数回归。我有7个功能,并使用蛮力方法确定了最好的3个。但是,很快我将拥有7个以上的功能! 我的问题是,当前用于非参数回归的特征选择的最佳方法是什么?以及哪些程序包实现了这些方法。谢谢。

1
如何量化功能冗余?
我具有用于解决分类问题的三个功能。最初,这些功能产生布尔值,因此我可以通过查看正向分类和负向分类重叠多少来评估其冗余度。现在,我扩展了功能以生成实际值(分数),并且我想再次分析其冗余度,但是我完全不知道该怎么做。谁能为我提供有关如何实现此目标的指示或想法? 我知道这个问题很模糊,这是因为我对统计数据没有很强的掌握。因此,如果您对我没有答案,也许您有一些问题可以帮助我更好地理解自己。 编辑:我目前正在浏览有关该主题的维基百科,我感觉我想要的是相关系数,但是我仍然不确定这是否是正确的方法,以及许多可用系数中的哪个合适。 编辑2:在布尔型情况下,我首先为每个功能创建了真实的样本集。那么,两个特征之间的相关性就是这些集合的交集大小超过这些集合的并集大小。如果此值为1,则它们是完全冗余的,因为始终相同。如果为0,则它​​们永远不会相同。

3
使用scikit Learn选择功能后识别过滤的功能
这是我的Python 功能选择方法代码: from sklearn.svm import LinearSVC from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target X.shape (150, 4) X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transform(X, y) X_new.shape (150, 3) 但是在获得新的X(因变量-X_new)之后,我如何知道在此新的更新变量中删除了哪些变量以及考虑了哪些变量?(已删除的一个或数据中存在的三个。) 获得此标识的原因是对新的测试数据应用相同的过滤。


3
如何为Logistic回归模型减少正确的预测变量
因此,我一直在阅读一些有关建模的书籍(或其中的一部分)(包括F. Harrell的“回归建模策略”),因为我目前的现状是我需要基于二进制响应数据进行逻辑模型处理。我的数据集中有连续数据,分类数据和二进制数据(预测变量)。基本上我现在大约有100个预测变量,对于一个好的模型来说,显然太多了。同样,这些预测变量中有许多是相关的,因为尽管它们有些不同,但它们通常基于相同的度量。 无论如何,我一直在阅读中,使用单变量回归和逐步技术是您可以做的一些最糟糕的事情,目的是减少预测变量的数量。我认为LASSO技术还可以(如果我正确理解的话),但是显然您不能在100个预测变量上使用它,并且认为会带来任何好处。 那么我在这里有什么选择呢?我是否真的必须坐下来,与我的所有主管和工作中的聪明人交谈,并真的考虑一下(应该是错误的)前5名最佳预测指标是什么,或者我应该选择哪种方法?考虑代替吗? 是的,我也知道这个话题已经被广泛讨论(在线和书籍中),但是当您对该建模领域的新手了解时,有时似乎有点不知所措。 编辑: 首先,我的样本量为+1000名患者(这在我的领域中是很多),并且其中有70-170个阳性反应(例如,其中170个是阳性反应,而其中一种情况约为900个没有反应) 。 基本上,该想法是预测放射治疗后的毒性。我有一些预期的二元响应数据(即毒性,或者是毒性(1),或者是毒性(0)),然后我有几种类型的指标。一些指标是患者特定的,例如年龄,使用的药物,器官和目标体积,糖尿病等,然后我基于目标的模拟治疗场获得了一些治疗特定的指标。从中我可以找到几个预测因子,这些预测因子在我的领域中通常是高度相关的,因为大多数毒性与所接收的辐射量(含糖量)高度相关。因此,例如,如果我治疗肺部肿瘤,则有一定剂量的剂量可能会击中心脏。然后,我可以计算出多少x心脏体积接收到x剂量剂量,例如“ 只需选择一个开始即可(尽管过去的实验当然尝试过,而且我也希望这样做),因为我需要“确切地”知道在何种程度上心脏毒性之间实际上存在很大的相关性和体积剂量(再次举例来说,还有其他类似的指标,其中应用了相同的策略)。是的,这几乎就是我的数据集的样子。一些不同的指标,有些有些相似。只需选择一个开始即可(尽管过去的实验当然尝试过,而且我也希望这样做),因为我需要“确切地”知道在何种程度上心脏毒性之间实际上存在很大的相关性和体积剂量(再次举例来说,还有其他类似的指标,其中应用了相同的策略)。是的,这几乎就是我的数据集的样子。一些不同的指标,有些有些相似。几乎是我的数据集的样子。一些不同的指标,有些有些相似。几乎是我的数据集的样子。一些不同的指标,有些有些相似。 然后,我要做的是建立一个预测模型,这样我就可以预测哪些患者有发生某种毒性的风险。而且由于响应数据是二进制的,所以我的主要思想当然是使用逻辑回归模型。至少这是其他人在我领域所做的。但是,在完成许多已经完成的论文时,其中有些似乎是错误的(至少在阅读这些特定类型的建模书籍(例如F. Harrel's)时)。许多人使用单变量回归分析来选择预测变量,并将其用于多元分析(如果我没记错的话,建议您这样做),并且许多人使用逐步技术来减少预测变量的数量。当然,这还不是全部。许多人使用LASSO,PCA,交叉验证,自举等,但是我所看过的 关于功能选择,这可能是我现在的位置。如何选择/找到在模型中使用的正确预测变量?我曾经尝试过这些单变量/逐步方法,但是每次我都想:“为什么这样做,如果错了?”。但是也许这是一个很好的方法,至少在最后显示了“好的模型”以正确的方式与“坏模型”以错误的方式相抵触。因此,我现在可能会以某种错误的方式进行操作,我需要帮助的是以正确的方式进行操作。 很抱歉,编辑时间太长。 编辑2: 只是我的数据看起来像一个简单的例子: 'data.frame': 1151 obs. of 100 variables: $ Toxicity : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ... $ Age : num 71.9 64 52.1 65.1 63.2 …

3
贝叶斯模型选择和可信区间
我有一个包含三个变量的数据集,其中所有变量都是定量的。让我们将其称为,和。我通过MCMC在贝叶斯角度拟合回归模型yyyx1x1x_1x2x2x_2rjags 我进行了探索性分析,的散点图建议应使用二次项。然后我装了两个模型y×x2y×x2y\times x_2 (1)y=β0+β1∗x1+β2∗x2y=β0+β1∗x1+β2∗x2y=\beta_0+\beta_1*x_1+\beta_2*x_2 (2)y=β0+β1∗x1+β2∗x2+β3∗x1x2+β4∗x21+β5∗x22y=β0+β1∗x1+β2∗x2+β3∗x1x2+β4∗x12+β5∗x22y=\beta_0+\beta_1*x1+\beta_2*x_2+\beta_3*x_1x_2+\beta_4*x_1^2+\beta_5*x_2^2 在模型1中,每个参数的效果大小都不小,并且95%可信区间的值不为。000 在模型2中,参数和的效果大小较小,并且所有参数的可信区间均包含。β3β3\beta_3β4β4\beta_4000 可信区间包含的事实足以说明该参数不重要吗?000 然后我调整了以下模型 (3)y=β0+β1∗x1+β2∗x2+β3∗x22y=β0+β1∗x1+β2∗x2+β3∗x22y=\beta_0+\beta_1*x_1+\beta_2*x_2+\beta_3*x^2_2 每个参数的效果大小都不小,但是除外,所有可信区间都包含。 0β1β1\beta_1000 在贝叶斯统计中进行变量选择的正确方法是哪种? 编辑:我可以在任何回归模型(如Beta模型)中使用套索吗?我使用的是变量分散的模型,其中 其中是向量。我也应该在使用Laplace 吗?δlog(σ)=−δδXlog(σ)=−δδXlog(\sigma)=-\pmb{\delta}Xδδδδδ\pmb{\delta}δδδδ\pmb{\delta} EDIT2:我安装了两个模型,一个模型具有针对,高斯先验模型,另一种具有Laplace(double-exponential)模型。δ Ĵβjβj\beta_jδjδj\delta_j 高斯模型的估计是 Mean SD Naive SE Time-series SE B[1] -1.17767 0.07112 0.0007497 0.0007498 B[2] -0.15624 0.03916 0.0004128 0.0004249 B[3] 0.15600 0.05500 0.0005797 0.0005889 B[4] 0.07682 0.04720 0.0004975 0.0005209 delta[1] -3.42286 0.32934 0.0034715 0.0034712 …

3
使用深度学习进行特征选择?
我想使用深度模型来计算每个输入功能的重要性。 但是我只发现了一篇有关使用深度学习进行深度选择的文章。它们在第一个隐藏层之前插入直接连接到每个要素的节点层。 我听说深度信任网络(DBN)也可以用于此类工作。但是我认为DBN仅提供PCA等功能的抽象(类),因此尽管它可以有效地减小尺寸,但我想知道是否有可能计算每个功能的重要性(权重)。 DBN是否可以计算功能的重要性?还有其他使用深度学习进行特征选择的方法吗?

2
在交叉验证之前执行无监督特征选择实际上是否还好?
在“统计学习的要素”中,我发现以下语句: 有一项条件:可以在不进行样品检测之前进行初始的无监督筛选步骤。例如,在开始交叉验证之前,我们可以在所有50个样本中选择具有最高方差的1000个预测变量。由于此过滤不涉及类标签,因此不会给预测变量带来不公平的优势。 这真的有效吗?我的意思是,通过预先过滤属性,我们不会模仿训练数据/新数据环境-那么,是否对正在执行的过滤没有监督是很重要的吗?在交叉验证过程中实际执行所有预处理步骤是否更好?如果不是这种情况,则意味着可以预先执行所有无监督的预处理,包括功能归一化/ PCA等。但是,通过对整个训练集进行这些操作,实际上是在向训练集泄漏一些数据。我可以同意,相对稳定的数据集,这些差异很可能应该很小-但这并不意味着它们不存在,对吧?思考这个问题的正确方法是什么?

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.