如何将潜在语义分析中的特征作为预测模型中的独立变量

时间:2017-07-05 10:49:30

标签: r text-mining logistic-regression latent-semantic-indexing

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

1 个答案:

答案 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")