我参加了课程中的实用机器学习,我对其中一项任务感到困惑。我想要非常清楚的是,我不是在发帖,因为我希望有人给我答案--我只想让帮助理解正在发生的事情。
我们正在学习PCA和预处理。我的理解是,PCA全部是试图将多个共线性变量合并成一个因子,而PCA算法试图在使用最少的变量数的情况下找到这些变量的最佳线性组合。例如,如果我有5个高度相关的变量,PCA可能会发现,仅仅在一个组合中使用其中的4个就可以解释最大的方差。然后,当你进行训练时,它会应用任何变量和系数的组合是一个单一的预测器,而不是单个变量(对吗)?
我很难理解幕后所发生的事情。例如,在一个讲座中,数据集中有58个变量(第58是DV),我们试图使用PCA进行预测。我试图了解代码的作用和它正在创建的对象类型,这就是我需要一些帮助的地方。下面是我想要解释的代码和注释--有人能纠正我吗?这都在讲演中,但解释不太清楚。
preProc <- preProcess(log10(training[,-58]+1),method="pca",pcaComp=2)
trainPC <- predict(preProc,log10(training[,-58]+1))
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%的方差。在列车功能中使用method="glm“。测试集中每种方法的准确性是多少?哪个更准确?
发布于 2015-08-12 15:33:21
您可以在这里详细阅读有关插入符号的内容:https://cran.r-project.org/web/packages/caret/caret.pdf
1)不完全是建立PCA预处理模型,现在存储在preProc中,它将所有57个不同的预测器组合成两个具有一定权值的预测器(每个新特征都是原始特征的不同线性组合),尽可能保持方差。
2)现在,您要将根据前面步骤计算的转换应用到您的功能中,trainPC现在只包含两个特性。
3)是的,此时您正在拟合"glm“广义线性模型,它本身可能是分类或回归任务(不像前一步那样转换特征,但仍然可以使用前一步的预测值)。Model.html
https://stackoverflow.com/questions/31968053
复制相似问题