gpt4 book ai didi

机器学习的R和PCA解释

转载 作者:行者123 更新时间:2023-11-30 08:44:14 26 4
gpt4 key购买 nike

我正在 Coursera 上学习实用机器学习,但我对其中一项作业感到困惑。我想非常清楚地表明,我发帖不是因为我希望有人给我答案 - 我只是想帮助了解正在发生的事情。

我们正在学习 PCA 和预处理。我的理解是,PCA 就是试图将多个共线性变量一起折叠成一个因子,并且 PCA 算法试图在使用最少数量的变量的同时找到这些变量的最佳线性组合。例如,如果我有 5 个高度相关的变量,PCA 可能会发现仅在特定组合中使用其中的 4 个变量就可以解释最大的方差。然后,当您进行训练时,它会应用变量和系数的组合作为单个预测变量而不是单个变量(对吗)?

我无法理解幕后发生的事情。例如,在一次讲座中,数据集中有 58 个变量(第 58 个是 DV),我们尝试使用 PCA 进行预测。我试图了解代码的作用以及它正在创建什么类型的对象,这就是我可以使用一些帮助的地方。下面是代码和我的注释,我认为它们解释了正在发生的事情——有人可以纠正我吗?这些都是讲座上的,但是解释的不是很清楚。

  1. 遍历所有 57 个潜在预测变量,并找到解释最大方差的最佳 2 个预测变量集。创建一个对象??????

preProc <- preProcess(log10(training[,-58]+1),method="pca",pcaComp=2)

  • 我不知道这条线到底是做什么的
  • trainPC <- predict(preProc,log10(training[,-58]+1))

  • 尝试在训练数据上拟合 PCA 模型来预测 TYPE?
  • modelFit <- train(training$type ~ .,method="glm",data=trainPC)

    我正在尝试将这些“知识”应用于测验问题,如下所述。 我不需要答案,我只想解释代码的作用。

    实际测验问题

    使用以下命令加载阿尔茨海默病数据:

    library(caret)
    library(AppliedPredictiveModeling)
    set.seed(3433)
    data(AlzheimerDisease)
    adData = data.frame(diagnosis,predictors)
    inTrain = createDataPartition(adData$diagnosis, p = 3/4)[[1]]
    training = adData[ inTrain,]
    testing = adData[-inTrain,]

    创建一个训练数据集,仅包含变量名称以 IL 开头的预测变量和诊断。构建两个预测模型,一种使用原样的预测变量,另一种使用主成分解释预测变量 80% 方差的 PCA。在训练函数中使用 method="glm"。测试集中每种方法的准确度是多少?哪个更准确?

    最佳答案

    您可以在此处详细了解插入符:https://cran.r-project.org/web/packages/caret/caret.pdf

    1) 不完全是,您正在创建 PCA 预处理模型,该模型现在存储在 preProc 中,它将把所有 57 个不同的预测变量组合成 2 个具有一定权重的预测变量(每个新特征都是原始特征的不同线性组合),保持为尽可能多的方差。

    2)现在您正在将上一步计算出的变换应用于您的特征,trainPC 现在仅包含 2 个特征。

    3)是的,此时您正在拟合“glm”广义线性模型,它本身可能是分类或回归任务(不是像上一步一样转换特征,但您仍然可以像上一步一样使用预测来预测值)。 https://topepo.github.io/caret/Generalized_Linear_Model.html

    关于机器学习的R和PCA解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968053/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com