当我撞墙时,我正在寻求一点帮助。 我已经训练了一个带有火车数据集的模型(CART),并希望在测试集上使用RMLSE验证模型的准确性。 我有以下内容:
data.frame': 5463 obs. of 15 variables:
$ Start_date: chr "2011-01-20 02:00:00" "2011-01-20 05:00:00" "2011-01-20 06:00:00"
$ Season : Factor w/ 4 levels "spring","summer",..: 1 1 1 1 1 1 1 1 1 1
$ Holiday : Factor w/ 2 levels "Not","Holiday": 1 1 1 1 1 1 1 1 1 1 ...
$ Workingday: int 1 1 1 1 1 1 1 1 1 1 ...
$ Weather : Factor w/ 4 levels "Clear","Cloudy",..: 1 1 1 1 1 2 1 2 2 2..
$ Temp : num 10.66 9.84 9.02 9.02 9.02 ...
$ Humidity : int 56 60 60 55 55 52 48 45 42 45 ...
$ Windspeed : num 0 15 15 15 19 ...
$ Count : num 1 1 1 8 18 6 3 4 5 3 ...
$ Date : chr "2011-01-20" "2011-01-20" "2011-01-20" "2011-01-20" ...
$ Hour : Factor w/ 24 levels "00","01","02",..: 3 6 7 8 9 10 11 12 .
$ Year : chr "2011" "2011" "2011" "2011" ...
$ Month : chr "01" "01" "01" "01" ...
$ Weekday : Factor w/ 7 levels "Friday","Monday",..: 5 5 5 5 5 5 5 5 5 5
$ Hour_Bin : num 0 0 0 0 0 0 0 0 0 0 ...
$ temp_Bin : num 1 1 1 2 2 2 2 2 2 2 ...
$ year_Bin : num 1 1 1 1 1 1 1 1 1 1 ...
预测值是矢量:
Named num [1:5463] 9 9 9 9 9 9 9 9 9 9 ...
- attr(*, "names")= chr [1:5463] "9266" "9267" "9268" "9269" ...
我使用过该功能:
Evaluate_Model <- function (test, pred) {
return(sqrt(1/nrow(test)*sum((log(pred+1)-log(test$Count+1))^2)))
}
并尝试了矩阵包
library('Metrics')
rmsle(test$Count, pred)
当我尝试获得均方根平方对数误差时,我返回[0]或[Na]。 我经历了将count变量转换为不同数据类型的过程,并尝试将预测放入数据帧并从其中进行评估。 我还训练了一个具有一个属性的模型,并尝试评估这些模型,但我仍然会得到相同的结果。 我的目标变量(count)和其他属性的值为零,但这些是实数值,而不是na。 它是算法的训练,数据类型??? 任何帮助将不胜感激。
模型代码示例:
model3 <- rpart(Count~Month+Temp, data = train)
# round prediction
pred <- round(predict(model3, newdata = test))
Evaluate_Model(test, pred)
提前致谢。