Questions tagged «machine-learning»

机器学习算法可建立训练数据模型。术语“机器学习”的定义模糊不清;它包括所谓的统计学习,强化学习,无监督学习等。始终添加更多特定标签。


2
这种建模方法是否过度拟合
最近有人告诉我,我遵循的过程(MS论文的组成部分)可能被认为过拟合。我希望对此有更好的了解,看看其他人是否同意。 本文这一部分的目的是 在数据集上比较梯度提升回归树与随机森林的性能。 查看所选最终模型(GBM或RF)的性能。 正在使用R中的gbm和randomForest软件包以及 caret。 遵循的过程如下: 数据的初步预处理(例如,将名义上的预测变量的缺失值插入称为“缺失”的不同类别)。没有考虑任何预处理的目标变量(这是非常小的)。 为每种算法的元参数创建值的网格(例如,GBM的迭代次数)。 创建数据集的25个随机分割(65%训练和35%测试)。 对GBM重复以下步骤25次(每次使用随机训练/测试分组之一。每次,训练和测试集都是课程更改的“当前”,这是重复的离开组交叉验证): 使用5倍交叉验证在网格搜索上找到算法的“最佳”参数设置。当前运行中没有使用先前运行中的任何东西。 确定后,将模型拟合到完整的“当前”训练集并预测“当前”测试集。保留此运行的性能指标。 一旦以这种方式获得了25个性能指标(实际上是特定于领域的指标,但将其视为准确性),请使用完全相同的过程,使用完全相同的独立训练和测试样本进行RF(相同过程,只是使用不同的方法)当然是网格搜索)。 现在,我从当时针对GBM和RF的“当前”测试集中获得了25种性能指标。我使用Wilcoxon符号秩检验和排列检验比较它们。我发现GBM更好。我还声称,GBM的这25次运行中的性能指标分布是最终GBM分类器的预期性能。 我没有做的是从一开始就抽取一个随机测试集,并将其放在一边,以便与根据所有训练数据构建的最终GBM模型进行比较。我认为我所做的实际上要好得多,因为我在保持过程中重复了拆分数据/调优模型/测试25次,而仅重复了一次。 这里有过度拟合吗?由于使用了25个运行来选择GBM与RF,这是否意味着从流程中获取的性能指标不能用作完整模型的性能估算? 编辑 为了回应韦恩的评论,这是在25次运行中的每一次运行的过程: 第i个训练集(i = 1,..,25)的采样数据分为5个大小相等的组。使用5组中的4组拟合模型,并将GBM参数(例如,迭代数)设置为等于第j个网格(j = 1,..,18)中的值。 使用此模型计算第五组的表现。 步骤1和步骤2再重复4次(常规旧k倍CV,k = 5)。该性能是从5个子运行中平均得出的,这用特定的一组参数值组成了GBM的预期性能。 对网格中的其他17个“行”重复执行步骤1-3。 一旦完成,就可以确定上述练习中的最佳参数值,并使用这些参数值和完整的第i个训练集拟合GBM。它的性能是在第i个测试集上估计的。 一旦整个过程完成25次,GBM就有25种性能指标。然后他们以完全相同的方式收集到RF。 在比较和选择GBM之后,我查看了这25个性能指标,并采用均值和标准差来确定该数据上GBM模型的置信区间。

1
高斯过程和Wishart分布的协方差矩阵
我正在阅读有关广义Wishart流程(GWP)的本文。本文使用平方指数协方差函数计算不同随机变量之间的协方差(遵循高斯过程),即。然后说该协方差矩阵遵循GWP。K(x,x′)=exp(−|(x−x′)|22l2)K(x,x′)=exp⁡(−|(x−x′)|22l2)K(x,x') = \exp\left(-\frac{|(x-x')|^2}{2l^2}\right) 我曾经认为从线性协方差函数()K(x,x′)=xTx′K(x,x′)=xTx′K(x,x') = x^Tx'计算出的协方差矩阵遵循具有适当参数的Wishart分布。 我的问题是,我们如何仍可以假设协方差服从具有平方指数协方差函数的Wishart分布?另外,一般来说,协方差函数产生Wishart分布协方差矩阵的必要条件是什么?


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

3
逻辑回归中变量的重要性
我可能正在处理一个可能已经解决了一百次的问题,但是我不确定在哪里可以找到答案。 当使用逻辑回归时,给定许多特征并尝试预测二进制分类值,我对选择可以很好地预测的特征子集感兴趣。 y yX1个,。。。,Xñx1,...,xnx_1,...,x_nÿyyÿyy 是否可以使用类似于套索的程序?(我只看到套索用于线性回归。) 查看拟合模型的系数是否表明了不同特征的重要性? 编辑-看到一些答案后的澄清: 当我指的是拟合系数的大小时,我指的是那些拟合到归一化(均值0和方差1)特征的系数。否则,正如@probabilityislogic指出的那样,1000x的重要性似乎不如x。 我对仅寻找最佳k子集(如@Davide所提供的)不感兴趣,而是权衡不同功能之间的相对重要性。例如,一个特征可能是“年龄”,而另一个特征可能是“年龄> 30”。它们的增量重要性可能很小,但两者都可能很重要。


2
出于回归的目的,减少预测变量的维数有什么优势?
与传统的回归技术(不进行任何降维处理)相比,降维回归(DRR)或监督降维(SDR)技术有哪些应用或优势?这些技术类别可为回归问题找到特征集的低维表示。此类技术的示例包括切片逆回归,主Hessian方向,切片平均方差估计,内核切片逆回归,主成分回归等。 就交叉验证的RMSE而言,如果在没有任何降维的情况下算法在回归任务上表现更好,那么降维用于回归的真正用途是什么?我不了解这些技术。 这些技术是否有机会用于减少回归所需的时间和空间?如果这是主要优点,那么使用此技术后,一些有关降低高维数据集复杂性的资源将很有帮助。我以运行DRR或SDR技术本身需要一些时间和空间这一事实来对此进行辩论。低调数据集上的此SDR / DRR +回归是否比高调数据集上的仅回归快? 是否仅出于抽象兴趣对这种设置进行了研究,并且没有很好的实际应用? 顺带一提:有时会假设特征和响应的联合分布在流形上。在这种情况下,从观察到的样本中学习流形对于解决回归问题是有意义的。ÿXXXÿYY

2
什么是AI的果蝇?
在1960年代中期,研究人员曾将国际象棋称为“ 人工智能果蝇 ”:象果蝇一样,国际象棋的游戏是可访问的,是相对较简单的实验问题,但仍产生了更复杂的重要知识。 现在,人们似乎在说“象棋只是一个搜索问题”,“象棋方法将不会给AI社区带来更多的兴趣”。 那么,什么是AI 的果蝇呢?

1
将2类模型扩展到多类问题
关于Adaboost的这篇论文提出了一些建议和代码(第17页),以将2类模型扩展到K类问题。我想对此代码进行概括,以便我可以轻松地插入不同的2类模型并比较结果。由于大多数分类模型都具有公式界面和predict方法,因此其中某些应该相对容易。不幸的是,我还没有找到从2类模型中提取类概率的标准方法,因此每个模型都需要一些自定义代码。 这是我编写的用于将K类问题分解为2类问题并返回K模型的函数: oneVsAll <- function(X,Y,FUN,...) { models <- lapply(unique(Y), function(x) { name <- as.character(x) .Target <- factor(ifelse(Y==name,name,'other'), levels=c(name, 'other')) dat <- data.frame(.Target, X) model <- FUN(.Target~., data=dat, ...) return(model) }) names(models) <- unique(Y) info <- list(X=X, Y=Y, classes=unique(Y)) out <- list(models=models, info=info) class(out) <- 'oneVsAll' return(out) } 这是我编写的一种预测方法,用于遍历每个模型并进行预测: predict.oneVsAll <- …

4
是否存在k均值中没有最优k的情况?
这在我心中至少存在了几个小时。我试图为k-means算法(具有余弦相似性度量)的输出找到最佳k,因此最终将失真作为簇数的函数进行了绘制。我的数据集是在600维空间中的800个文档的集合。 据我了解,在此曲线上找到拐点或肘点应该至少告诉我大约需要将数据放入的簇数。我把图放在下面。通过使用最大二阶导数测试获得绘制红色垂直线的点。完成所有这些操作之后,我陷入了一个简单得多的难题:这张图告诉我有关数据集的什么信息? 它是否告诉我不值得进行聚类并且我的文档缺乏结构,或者我需要设置一个很高的k?尽管有一个奇怪的事情,就是即使k很小,我也看到类似的文档被聚集在一起,所以我不确定为什么要得到这种曲线。有什么想法吗?

3
是否有适用于使用稀疏预测器和响应的类似于CART的方法的库?
我正在使用R中的gbm包处理一些大型数据集。我的预测变量矩阵和响应向量都很稀疏(即,大多数条目为零)。我希望使用一种可以利用这种稀疏性的算法来构建决策树,就像在这里所做的那样。在该论文中,就像我所遇到的情况一样,大多数项目只有许多可能的功能中的少数,因此,除非数据中另有明确说明,否则它们可以通过假设其项目缺少给定功能来避免大量的计算浪费。我的希望是,通过使用这种算法(然后将增强算法包装在其周围以提高预测精度),我可以获得类似的加速效果。 由于他们似乎没有发布代码,所以我想知道是否有针对这种情况优化的开源软件包或库(任何语言)。理想情况下,我想要一种可以直接从R的Matrix包装中获取稀疏矩阵的东西,但我将尽我所能。 我环顾四周,看来应该是这样的事情: 化学家似乎经常遇到这个问题(我上面链接的文章是关于学习寻找新的药物化合物的),但是我可以找到的实现是化学分析的专有或高度专业化的实现。不过,其中之一可能会被重新利用。 文档分类似乎也是从稀疏特征空间学习的一个有用的领域(大多数文档包含的单词不多)。例如,有一个倾斜的参考稀疏实施C4.5的(一个手推车类算法)在本文中,但不包含代码。 根据邮件列表,WEKA可以接受稀疏数据,但是与我上面链接的论文中的方法不同,WEKA在避免浪费CPU周期方面并未进行优化以实际利用它。 提前致谢!

2
隐马尔可夫模型中初始过渡概率的意义
在隐马尔可夫模型中为过渡概率指定某些初始值有什么好处?最终,系统将学习它们,那么赋予随机值以外的其他值又有什么意义呢?底层算法是否会像Baum-Welch这样有所作为? 如果我从一开始就非常准确地知道了转移概率,并且我的主要目的是预测从隐藏状态到观测值的输出概率,那么您对我有什么建议?

2
有没有办法解释来自随机森林模型的预测?
假设我有一个基于随机森林的预测分类模型(使用R中的randomForest包)。我想对其进行设置,以便最终用户可以指定要为其生成预测的项目,并且它将输出分类可能性。到目前为止,没有问题。 但是能够输出诸如可变重要性图之类的东西,但对于要预测的特定项目而不是训练集,将是有用/很酷的。就像是: 预计X项是狗(可能性为73%), 因为: 腿= 4 呼吸=不良 毛皮=短 食=讨厌 你明白了。是否存在从受过训练的随机森林中提取此信息的标准或至少合理的方法?如果是这样,是否有人有代码可以对randomForest软件包执行此操作?


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.