2017-04-10 14 views
0

我想要預測(使用決策樹)是或不是每個/數據點,並且如果預測爲否,則更改該值直到它變爲yes,但我有以下錯誤:因子在r中有新的0級錯誤

pd = predict(rparttrain,no_no3[i,],type="class", na.action = na.omit) 

Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = attr(object, : factor Purpose has new level 0*

測試和列車列數相同。

+0

錯誤表示您的某個列中有一個新的級別不在您的培訓集的相應列(我認爲是「目的」列)。所以你應該在訓練樹之前做這樣的事情:'levels(training_set $ Purpose)< - levels(testing_set $ Purpose)' – Smich7

+0

> levels(traincreditData $ Purpose)< - levels(no_no3 $ Purpose): Error in 'level < - 。factor'('* tmp *',value = c(「0」,「1」,「2」,「3」,「5」,: 層數不同 –

+0

'totalData < - rbind (trainData,testData);' '爲(f in 1:length(names(totalData))){ levels(trainData [,f])< - levels(totalData [,f]) } – Smich7

回答

0

我能夠解決我的問題,首先將屬性轉換爲因子然後分裂他們。 通常,這個問題不會出現任何方式,但是當你的數據集太小而稀疏時,你應該將你的屬性轉換爲因子,然後進行分層抽樣 如果有人有simillar錯誤,請在下面評論。