带有插入符号SVM警告消息的Text2Vec分类

时间:2017-07-16 11:30:07

标签: r svm r-caret text2vec

我正在处理text2vec包和caret的文本分类问题。在使用text2vec构建不同模型之前,我正在使用caret构建文档字词矩阵。目标是使用标记的训练数据识别两个字符串之间的字符串相似性。

但是,在训练线性SVM模型时,我会收到一些警告信息,摘录如下:

  

警告信息:1:在svm.default中(x = as.matrix(x),y​​ = y,内核="线性",...:
  变量'流感'和   'perindoprilindapamide'和'bisoprololhct.1'和'creon.1'和'kreon.1'和'paratramadol.1'常数。无法扩展数据。

是否可以帮助我了解这些警告以及如何解决无法扩展数据

原始培训数据的摘录:

ID          MAKTX_Keyword       PH_Level_04_Keyword   Result 
266325638   AMLODIPINE          AMLODIPINE              0 
724712821   IRBESARTANHCTZ      IRBESARTANHCTZ          0 
567428641   RABEPRAZOLE         RABEPRAZOLE             0 
137472217   MIRTAZAPINE         MIRTAZAPINE             0 
175827784   FONDAPARINUX        ARIXTRA                 1 
456372747   VANCOMYCIN          VANCOMYCIN              0 
653832438   BRUFEN              IBUPROFEN               1 
917575539   POTASSIUM           POTASSIUM               0     
222949123   DIOSMINHESPERIDIN   DIOSMINHESPERIDIN       0 
892725684   IBUPROFEN           IBUPROFEN               0

构建SVM模型的代码:

control <- trainControl(method="repeatedcv", number=10, repeats=3, savePredictions=TRUE, classProbs=TRUE)

Train_PRDHA_String.df$Result <- ifelse(Train_PRDHA_String.df$Result == 1, "X", "Y")

(warn=1)
(warnings=2)

t1 = Sys.time()
svm_Linear <- train(x = as.matrix(dtm_train), y = as.factor(Train_PRDHA_String.df$Result),
                    method = "svmLinear2",
                    trControl=control,
                    tuneLength = 5,
                    metric ="Accuracy")
print(difftime(Sys.time(), t1, units = 'sec'))

1 个答案:

答案 0 :(得分:0)

这意味着,当重新采样这些变量时,它们只有一个唯一值。您可以使用preProc = "zv"来消除警告。