Questions tagged «many-categories»

具有大量级别的分类变量,以及用于处理此类变量的统计方法(例如:融合套索)。

6
分解类别变量具有多个级别的原则方法?
有哪些技术可用于将多个类别折叠(或合并)成几个类别,以便在统计模型中将它们用作输入(预测变量)? 考虑像大学生专业这样的变量(由本科生选择的学科)。它是无序的和绝对的,但它可能具有许多不同的层次。假设我想在回归模型中使用major作为预测变量。 按原样使用这些级别进行建模会导致各种问题,因为存在的问题太多了。使用它们会丢弃很多统计精度,并且结果难以解释。我们很少对特定专业感兴趣-我们更可能对广泛的专业类别(子组)感兴趣。但是,并不总是很清楚如何将这些级别划分为这些更高级别的类别,或者甚至要使用多少个更高级别的类别。 对于典型数据,我很乐意使用因子分析,矩阵分解或离散的潜在建模技术。但是专业是互斥的类别,因此我不愿意在任何事情上利用它们的协方差。 此外,我自己并不关心主要类别。我关心产生与我的回归结果相关的更高层次的类别。在二元结果的情况下,对我而言,这建议使用诸如线性判别分析(LDA)之类的方法来生成可最大化判别性能的高级类别。但是LDA是一种受限制的技术,感觉像是肮脏的数据正在挖给我。而且,任何连续的解决方案都将难以解释。 同时,在这种情况下,基于协方差的东西(如多重对应分析(MCA))在我看来是令人怀疑的,因为互斥的虚拟变量之间存在内在的依赖关系-它们更适合用于研究多个类别变量,而不是研究多个类别变量相同的变量。 编辑:要清楚,这是关于折叠类别(不选择它们),并且类别是预测变量或自变量。事后看来,这个问题似乎是“正规化所有事物并让上帝整理出它们的合适时机”。很高兴看到这个问题对很多人都感兴趣!

6
使用许多分类变量改善分类
我正在使用一个包含200,000多个样本和每个样本约50个特征的数据集:10个连续变量,另外约40个是类别变量(国家,语言,科学领域等)。对于这些分类变量,您有150个不同的国家/地区,50种语言,50个科学领域等。 到目前为止,我的方法是: 对于具有许多可能值的每个类别变量,仅采用具有超过10000个样本的值作为该变量。这将减少到5-10个类别,而不是150个类别。 为每个类别建立虚拟变量(如果有10个国家,则为每个样本添加大小为10的二元向量)。 用此数据输入随机森林分类器(交叉验证参数等)。 目前,使用这种方法,我只能获得65%的准确度,并且我认为可以做得更多。尤其是我对1)感到不满意,因为我觉得我不应该根据他们拥有的样本数量随意删除“最不相关的值”,因为这些表示较少的值可能更具区分性。另一方面,我的RAM无法通过保留所有可能的值向数据添加500列* 200000行。 您有什么建议要应对这么多的分类变量吗?

6
饼图问题
关于饼图的讨论似乎越来越多。 反对它的主要论据似乎是: 感知区域的力量小于长度。 饼图的数据点对像素比率非常低 但是,我认为在描绘比例时它们可能会有所帮助。我同意在大多数情况下使用表格,但是当您编写业务报告并且刚刚包含数百个表格时,为什么不使用饼图呢? 我对社区对此主题的想法感到好奇。欢迎进一步参考。 我包括几个链接: http://www.juiceanalytics.com/writing/the-problem-with-pie-charts/ http://www.usf.uni-osnabrueck.de/~breiter/tools/piechart/warning.en.html 为了总结这个问题,我决定建立一个饼图与华夫饼图的示例。

7
如何在机器学习模型或推荐系统中表示地理或邮政编码?
我正在建立模型,我认为地理位置可能非常擅长预测目标变量。我有每个用户的邮政编码。不过,我并不完全确定将邮政编码作为模型中的预测器功能的最佳方式。尽管邮政编码是一个数字,但是无论数字升或降,它都没有任何意义。我可以对所有30,000个邮政编码进行二值化处理,然后将其包含为功能或新列(例如{user_1:{61822:1,62118:0,62444:0等}}}。但是,这似乎会增加很多模型的功能 对解决这种情况的最佳方法有何想法?

5
R的randomForest不能处理超过32个级别。解决方法是什么?
R的randomForest包不能处理超过32个级别的因子。当给它超过32个级别时,它将发出错误消息: 无法处理超过32个类别的类别预测变量。 但是我拥有的数据有几个因素。其中一些具有1000+的级别,而某些具有100+。它甚至具有52个美国的“州”。 所以,这是我的问题。 为什么会有这样的限制?即使对于简单的情况,randomForest也拒绝运行。 > d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories. 如果仅仅是由于内存限制,scikit如何学习使用32个以上级别运行的randomForeestRegressor? 解决此问题的最佳方法是什么?假设我有X1,X2,...,X50自变量,Y是因变量。并假设X1,X2和X3具有32个以上的级别。我该怎么办? 我正在考虑为X1,X2和X3中的每一个运行聚类算法,其中距离定义为Y的差值。我将运行三个聚类,因为存在三个有问题的变量。并且希望在每个群集中都可以找到相似的级别。我将合并它们。 听起来如何?

4
梯度提升机的精度随着迭代次数的增加而降低
我正在通过caretR中的程序包尝试使用梯度增强机算法。 使用一个小的大学录取数据集,我运行了以下代码: library(caret) ### Load admissions dataset. ### mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") ### Create yes/no levels for admission. ### mydata$admit_factor[mydata$admit==0] <- "no" mydata$admit_factor[mydata$admit==1] <- "yes" ### Gradient boosting machine algorithm. ### set.seed(123) fitControl <- trainControl(method = 'cv', number = 5, summaryFunction=defaultSummary) grid <- expand.grid(n.trees = seq(5000,1000000,5000), interaction.depth = 2, shrinkage = …
15 machine-learning  caret  boosting  gbm  hypothesis-testing  t-test  panel-data  psychometrics  intraclass-correlation  generalized-linear-model  categorical-data  binomial  model  intercept  causality  cross-correlation  distributions  ranks  p-value  z-test  sign-test  time-series  references  terminology  cross-correlation  definition  probability  distributions  beta-distribution  inverse-gamma  missing-data  paired-comparisons  paired-data  clustered-standard-errors  cluster-sample  time-series  arima  logistic  binary-data  odds-ratio  medicine  hypothesis-testing  wilcoxon-mann-whitney  unsupervised-learning  hierarchical-clustering  neural-networks  train  clustering  k-means  regression  ordinal-data  change-scores  machine-learning  experiment-design  roc  precision-recall  auc  stata  multilevel-analysis  regression  fitting  nonlinear  jmp  r  data-visualization  gam  gamm4  r  lme4-nlme  many-categories  regression  causality  instrumental-variables  endogeneity  controlling-for-a-variable 

4
当所有可能性都包含在混合效应模型中时,固定效应与随机效应
在混合效应模型中,建议包括所有可能的水平(例如,男性和女性)时,使用固定效应来估计参数。如果所包含的水平只是人群中的随机样本(可能的患者中已入组的患者),并且您想估算人群的均值和方差而不是均值,则建议使用随机效应来解释变量各个因素水平。 我想知道您是否在逻辑上总是以这种方式使用固定效果。考虑一项关于脚/鞋的尺寸如何随着发育而变化并与身高,体重和年龄相关的研究。 Side小号一世dË{\rm Side}很显然,必须以某种方式将模型包括在模型中,以说明以下事实:多年来的测量值嵌套在给定的脚内并且不是独立的。此外,左右都是可能存在的所有可能性。另外,对于给定的参与者,他们的右脚大于(或小于)他们的左脚可能是非常正确的。但是,尽管所有人的脚之间的脚大小确实有所不同,但没有理由相信右脚平均会比左脚大。如果他们在您的样本中,那可能是由于您样本中的人的遗传因素所致,而不是右脚固有的原因。最后,sides一世dË{\rm side}似乎是多余参数,不是你真正关心的。 让我注意,我编造了这个示例。可能没有什么好处。只是为了传达想法。就我所知,要在古石器中生存,必须有一个大右脚和一个小左脚。 在这样的情况下,它将使(更多/更少/任何)感纳入sides一世dË{\rm side}模型作为随机效应?在这里使用固定效果与随机效果的利弊是什么?

2
将分类特征编码为数字以进行机器学习
许多机器学习算法,例如神经网络,都希望处理数字。因此,当您拥有分类数据时,需要对其进行转换。绝对的意思是,例如: 汽车品牌:奥迪,宝马,雪佛兰...用户ID:1、25、26、28 ... 即使用户ID是数字,它们也只是标签,并不意味着在连续性方面(例如年龄或总金额)。 因此,基本方法似乎使用二进制向量来编码类别: 奥迪:1,0,0 ...宝马:0,1,0 ...雪佛兰:0,0,1 ... 类别很少时还可以,但除此之外,它看起来效率低下。例如,当您有10,000个用户ID进行编码时,它就是10,000个功能。 问题是,有没有更好的方法?也许涉及概率之一?

2
合并/减少序数或名义数据类别的方法?
我正在努力寻找一种方法来减少名义或有序数据中的类别数量。 例如,假设我要在具有多个名义和有序因素的数据集上构建回归模型。尽管此步骤没有问题,但我经常遇到这样的情况:名义特征在训练集中没有观测值,但随后存在于验证数据集中。当模型出现(到目前为止)看不见的情况时,这自然会导致错误。我想要合并类别的另一种情况是,当类别过多而观察不到时。 所以我的问题是: 虽然我认识到最好根据它们代表的先前真实世界的背景信息来组合许多名义(和次序)类别,但是否有系统的方法(R最好是软件包)可用? 您将针对阈值等提出什么指导和建议? 文学中最受欢迎的解决方案是什么? 除了将较小的名义类别合并为新的“ OTHERS”类别之外,还有其他策略吗? 如果您还有其他建议,请随时输入。

1
PROC Mixed和LME / LMER在R自由度上的区别
注意:这个问题是一个转贴,因为我的上一个问题出于法律原因不得不删除。 在比较SAS的PROC MIXED与R中lme的nlme软件包的功能时,我偶然发现了一些相当混乱的差异。更具体地说,不同测试的自由度在PROC MIXED和之间有所不同lme,我想知道为什么。 从以下数据集(以下给出的R代码)开始: ind:指示进行测量的个人的因子 fac:进行测量的器官 trt:表示治疗的因素 y:一些连续响应变量 这个想法是建立以下简单模型: y ~ trt + (ind):ind作为随机因子 y ~ trt + (fac(ind)):fac嵌套在ind作为随机因子 需要注意的是最后一个模型应引起奇异性,因为只有1的值y对每一个组合ind和fac。 第一模型 在SAS中,我建立以下模型: PROC MIXED data=Data; CLASS ind fac trt; MODEL y = trt /s; RANDOM ind /s; run; 根据教程,R中使用的相同模型nlme应为: > require(nlme) > options(contrasts=c(factor="contr.SAS",ordered="contr.poly")) > m2<-lme(y~trt,random=~1|ind,data=Data) 两种模型对系数及其SE均给出相同的估计,但是在对F的影响进行F检验时trt,它们使用的自由度不同: SAS : Type …
12 r  mixed-model  sas  degrees-of-freedom  pdf  unbiased-estimator  distance-functions  functional-data-analysis  hellinger  time-series  outliers  c++  relative-risk  absolute-risk  rare-events  regression  t-test  multiple-regression  survival  teaching  multiple-regression  regression  self-study  t-distribution  machine-learning  recommender-system  self-study  binomial  standard-deviation  data-visualization  r  predictive-models  pearson-r  spearman-rho  r  regression  modeling  r  categorical-data  data-visualization  ggplot2  many-categories  machine-learning  cross-validation  weka  microarray  variance  sampling  monte-carlo  regression  cross-validation  model-selection  feature-selection  elastic-net  distance-functions  information-theory  r  regression  mixed-model  random-effects-model  fixed-effects-model  dataset  data-mining 


3
一键编码与伪编码的问题
我知道以下事实:具有k个级别的分类变量应使用虚拟编码中的k-1个变量进行编码(与多值分类变量类似)。我想知道针对不同的回归方法,主要是线性回归,惩罚线性回归(Lasso,Ridge,ElasticNet),基于树的(随机森林),单次热编码(即使用k个变量代替)比虚拟编码有多少问题? ,梯度增强机)。 我知道在线性回归中会出现多重共线性问题(即使实际上我使用OHE拟合线性回归也没有任何问题)。 但是,是否需要在所有编码中都使用伪编码?如果使用一热编码,结果将有多大错误? 我的重点是在具有多个(高基数)分类变量的回归模型中进行预测,因此我对置信区间不感兴趣。

3
用于组合因子级别以进行数据挖掘的R包?
想知道是否有人在R中的某个包/函数上运行过,它将组合某个因子的水平,而该水平在一个因子中的所有水平的比例小于某个阈值?具体来说,我进行数据准备的第一步之一就是将稀疏的因子水平合在一起(称为“其他”因子),这些因子至少不构成总数的2%。这是在无监督的情况下完成的,并且当目标是为营销中的某些活动建模时(而不是欺诈检测,因为那些很小的事件可能非常重要),可以执行此操作。我正在寻找一个可以折叠水平直到达到某个阈值比例的函数。 更新: 由于这些出色的建议,我很容易地编写了一个函数。我确实意识到,虽然有可能使比例<最小值的水平崩溃,而仍然使重新编码的水平<最小值,但需要添加比例>最小值的最低水平。可能会更有效,但它似乎可以工作。下一个增强功能是弄清楚如何捕获将折叠逻辑应用于新数据(验证集或将来的数据)的“规则”。 collapseFactors<- function(tableName,minPercent=5,fillIn ="RECODED" ) { for (i in 1:ncol(tableName)) { if(is.factor(tableName[,i]) == TRUE) #process just factors { sortedTable<-sort(prop.table(table(tableName[,i]))) numberToCollapse<-length(sortedTable[sortedTable<(minPercent/100)]) if (sum(sortedTable[1:numberToCollapse])<(minPercent/100)) { numberToCollapse=numberToCollapse+1 #add next level if < minPercent } if(numberToCollapse>1) #if not >1 then nothing to collapse { lf <- names(sortedTable[1:numberToCollapse]) levels(tableName[,i])[levels(tableName[,i]) %in% lf] <- fillIn …

1
分类数据的惩罚方法:将级别合并为一个因子
惩罚模型可用于估计参数数量等于或大于样本大小的模型。在大型稀疏分类或计数数据表的对数线性模型中可能会出现这种情况。在这些情况下,通常还希望通过组合某个因子的级别来折叠表格,而这些因子的级别在它们与其他因子的交互方式方面是无法区分的。两个问题: 有没有办法使用诸如LASSO或弹性网之类的惩罚模型来测试每个因素中各个级别的可折叠性? 如果第一个问题的答案是肯定的,那么是否可以而且应该以这样的方式进行设置:水平崩溃和模型系数的估计可以一步完成?
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.