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。在邏輯迴歸中可以使用這些作爲自變量嗎?如果是這樣,我該怎麼做?

回答

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") 
相關問題