机器学习的R和PCA解释

机器学习的R和PCA解释,r,machine-learning,pca,r-caret,R,Machine Learning,Pca,R Caret,我在Coursera上学习实用机器学习,我对其中一项作业感到困惑。我想非常清楚,我之所以发帖,不是因为我想有人给我答案——我只是想帮助我了解发生了什么。 我们正在学习PCA和预处理。我的理解是,主成分分析就是试图将多个共线变量合并为一个因子,主成分分析算法试图在使用最少变量的同时找到这些变量的最佳线性组合。例如,如果我有5个高度相关的变量,PCA可能会发现在某个组合中仅使用其中4个变量就可以解释最大的方差。然后,当你进行训练时,它应用变量和系数的组合是一个单一的预测因子,而不是单个变量(对吗)

我在Coursera上学习实用机器学习,我对其中一项作业感到困惑。我想非常清楚,我之所以发帖,不是因为我想有人给我答案——我只是想帮助我了解发生了什么。

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

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

  • 检查所有57个潜在预测因子,并找到解释最大方差的2个最佳预测因子集。创建一个对象

  • prepoc您可以在此处详细阅读有关插入符号的内容:

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

    2) 现在,您正在将上一步计算的变换应用于您的功能,trainPC现在只包含2个功能

    3) 是的,此时您正在拟合“glm”广义线性模型,该模型本身可能是分类或回归任务(不是像前一步那样变换特征,但您仍然可以像前一步一样使用预测来预测值)。

    您是否尝试过查看帮助?(
    ?预处理
    ?预测
    ?训练
    ?createDataPartition
    )R文档并不总是最容易理解的,但它可以给你一个起点。我没有,现在更多的是了解PCA的概念和它“发生了什么”关于创建的对象以及它们如何一起应用,你会发现这篇文章很有用。所以第一步是创建两个具有一定权重的变量。第2步是将这些预测值和这些权重应用于实际数据。第三步是尝试使用新的数据使用个人电脑来实际预测结果变量。这看起来对吗?
    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,]