我正在尝试使用R中的文本数据运行逻辑回归。我已经构建了一个术语文档矩阵和相应的潜在语义空间。根据我的理解,LSA用于从“术语”中推导出“概念”,这有助于降低维数。这是我的代码:
tdm = TermDocumentMatrix(corpus, control = list(tokenize=myngramtoken,weighting=myweight))
tdm = removeSparseTerms(tdm,0.98)
tdm = as.matrix(tdm)
tdm.lsa = lsa(tdm,dimcalc_share())
tdm.lsa_tk=as.data.frame(tdm.lsa$tk)
tdm.lsa_dk=as.data.frame(tdm.lsa$dk)
tdm.lsa_sk=as.data.frame(tdm.lsa$sk)
这给出了V1,V2,V3 ...... V21的功能。在我的逻辑回归中可以使用这些作为自变量吗?如果是这样,我该怎么做?
答案 0 :(得分:0)
在上面的示例中,表tdm.lsa_dk是'概念的矩阵'作为列和它们作为行显示的文档。这可以用作新的训练和测试数据集,用于进一步分析,在这种情况下,逻辑回归。独立变量(来自原始数据集)将添加到新数据集中。 表tdm.lsa_sk可用于变量选择。它显示了'概念'变量按重要性降序排列。
# the $dk part of the lsa will behave as your new dataset
new.dataset <- tdm.lsa_dk
new.dataset$y.var <- original.dataset$y.var
# creating training and testing dataset out of the new dataset
test_index <- createDataPartition(new.dataset$y, p = .2, list = F)
Test<-new.dataset[test_index,]
Train<-new.dataset[-test_index,]
# create model
model<-glm(y.var~., data=Train, family="binomial")
prediction<-predict(model, Test, type="response")