2014-03-28 67 views
0

我有具有700所記錄的訓練數據集。我用這個數據用c5.0函數準備了模型。- [R預測函數在測試數據集不使用整個數據,僅使用部分數據和預測

library(C50) 
abc_model <- C5.0(abc_train[-5], abc_train$resultval) 

我有測試數據,其中有5000條記錄。 我正在使用預測功能對這5000個recs進行預測。

abc_Test <- read.csv("FullData.csv", quote="") 
abc_pred <- predict(abc_model, abc_test) 

這是給我的預測只有700區域經濟共同體,不是所有的5000

如何使這一預測所有5000?

當我有火車的數據大小比測試數據大小,那麼結果是好的,我得到的所有數據,我可以測試數據與結果輸出相結合,進入「.CSV」。但是,當列車數據量小於測試數據時,所有記錄都不會被預測。

x <- data.frame(abc_test, abc_pred) 

任何輸入如何克服這個問題?我不是R的專家。任何建議都會幫助我很多。


謝謝理查德。

下面是我的訓練數據,幾個區域經濟共同體。

Id  Value1 Value2 Country   Result 

20835 63  1 United States yes 

3911156 60  12 Romania   no 

39321 10  3 United States no 

29425 80  9  Australia  no 

以下是我的測試數據,很少再推薦一下。

Id  Value1 Value2 Country 

3942587 114  12  United States 

3968314 25  13  Sweden 

3973205 83  10  Russian Federation 

17318  159  9  Russian Federation 

我想找到的結果值,並把這段我的測試數據。但是,像我那樣,我得到的結果只會爲700分的記錄,並非所有5000

+0

歡迎SO。包含一些數據通常是一種很好的做法,通常作爲'dput(yourData)'的輸出。這使我們能夠重現您的問題以幫助診斷問題。 –

+0

在執行abc_pred < - predict(abc_model,abc_test) – user3473975

+0

校正後,我也得到了這個錯誤'預測代碼被稱爲exit 1'。我已經看到,預測函數在處理634行本身後出現錯誤'預測代碼被稱爲「值爲1的退出」。它也不處理700行。有沒有人知道這個錯誤何時會發生? – user3473975

回答

1

你應該試試這個:

str(abc_train) 
str(abc_test) 
lapply(abc_train[ names(abc_train) != "Result"] , table) 
lapply(abc_train[] , table) 

那麼你可能會發現某些級別的一些變量在abc_test都不在abc_train,所以估計不能生產。我猜你認爲數字值會像迴歸一樣被處理,但如果這些列是任何預測函數中的因素,並且可能永遠不依賴於函數的行爲,則不會發生這種情況。看看C50 :: C5.0.default,看起來可能沒有變量的迴歸選項。