2017-07-16 61 views
0

我正在處理text2vec程序包和caret的文本分類問題。在使用caret構建不同的模型之前,我使用text2vec來構建文檔項矩陣。目標是使用標記的訓練數據來識別兩個字符串之間的字符串相似性。Text2Vec使用插入符號SVM警告消息進行分類

然而,培養了線性SVM模型時,得到了一個數警告消息,摘錄如下:

警告消息:1:在svm.default(X = as.matrix(X)中,Y =',核心=「線性」,...:
變量'流感'和 'perindoprilindapamide'和'bisoprololhct.1'和'creon.1'和'kreon.1'和'paratramadol.1 'constant。不能縮放數據。

您能幫我理解這些警告和如何添加ss 無法縮放數據

原來的訓練數據的摘錄:建立SVM模型

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 

代碼:

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')) 

回答

0

這意味着,當這些變量重新取樣,他們只有一個獨特的價值。您可以使用preProc = "zv"來擺脫警告。

+0

Thanks @topepo! – UbuntuNewbie