'sum' 在使用 diag(prop.table()) 功能时对因素没有意义
'sum' not meaningful for factors while using diag(prop.table()) functionality
我正在尝试根据生成混淆矩阵的 KNN 算法的 运行 计算错误分类的平均值。下面是我执行 "prop.table(t,1)"
时的结果
kdd_train <- dataset_normalized[1:140000,]
kdd_test <- dataset_normalized[140001:145586,]
kdd_train_target <- dataset_extracted[1:140000,12]
kdd_test_target <- dataset_extracted[140001:145586,12]
prop.table(t,1)
m1
kdd_test_target FALSE TRUE
FALSE 0.997044917 0.002955083
TRUE 0.048592189 0.951407811
但是当我执行命令"error_per_class = diag(prop.table(m1))"时,它返回了一个错误
> error_per_class = diag(prop.table(m1))
Error in Summary.factor(c(1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, :
‘sum’ not meaningful for factors
有什么办法可以解决吗?感谢任何帮助,谢谢!
原因在error
中提到,variable
是factor
。不可能直接在 factor
class 上应用 prop.table
,因为它需要一些计算。
prop.table(m1)
Error in Summary.factor(c(2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L,
: ‘sum’ not meaningful for factors
根据显示的值,它应该是一个逻辑向量,因此将其转换为逻辑向量,它应该可以工作
as.logical(m1)
prop.table(as.logical(m1))
#[1] 0.09090909 0.09090909 0.00000000 0.00000000 0.00000000 0.00000000 0.09090909 0.00000000 0.00000000 0.09090909 0.00000000 0.09090909 0.00000000 0.00000000
#[15] 0.09090909 0.00000000 0.09090909 0.09090909 0.00000000 0.09090909 0.09090909 0.00000000 0.00000000 0.09090909
数据
set.seed(24)
m1 <- factor(sample(c(TRUE, FALSE), 24, replace=TRUE))
kdd_test_target <- factor(sample(c(TRUE, FALSE), 24, replace=TRUE))
我正在尝试根据生成混淆矩阵的 KNN 算法的 运行 计算错误分类的平均值。下面是我执行 "prop.table(t,1)"
时的结果kdd_train <- dataset_normalized[1:140000,]
kdd_test <- dataset_normalized[140001:145586,]
kdd_train_target <- dataset_extracted[1:140000,12]
kdd_test_target <- dataset_extracted[140001:145586,12]
prop.table(t,1)
m1
kdd_test_target FALSE TRUE
FALSE 0.997044917 0.002955083
TRUE 0.048592189 0.951407811
但是当我执行命令"error_per_class = diag(prop.table(m1))"时,它返回了一个错误
> error_per_class = diag(prop.table(m1))
Error in Summary.factor(c(1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, :
‘sum’ not meaningful for factors
有什么办法可以解决吗?感谢任何帮助,谢谢!
原因在error
中提到,variable
是factor
。不可能直接在 factor
class 上应用 prop.table
,因为它需要一些计算。
prop.table(m1)
Error in Summary.factor(c(2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, : ‘sum’ not meaningful for factors
根据显示的值,它应该是一个逻辑向量,因此将其转换为逻辑向量,它应该可以工作
as.logical(m1)
prop.table(as.logical(m1))
#[1] 0.09090909 0.09090909 0.00000000 0.00000000 0.00000000 0.00000000 0.09090909 0.00000000 0.00000000 0.09090909 0.00000000 0.09090909 0.00000000 0.00000000
#[15] 0.09090909 0.00000000 0.09090909 0.09090909 0.00000000 0.09090909 0.09090909 0.00000000 0.00000000 0.09090909
数据
set.seed(24)
m1 <- factor(sample(c(TRUE, FALSE), 24, replace=TRUE))
kdd_test_target <- factor(sample(c(TRUE, FALSE), 24, replace=TRUE))