0

我正在尝试使用 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 等功能。是否可以在我的逻辑回归中使用这些作为自变量?如果是这样,我该怎么做?

4

1 回答 1

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")
于 2017-07-06T11:34:59.797 回答