熵输出是特定类解决方案的NaN,而不是其他

时间:2020-05-06 13:19:13

标签: r entropy

我正在R中运行LCA并使用熵函数。在输出中,它为2-5类的模型生成结果,然后为6类的模型生成NaN。

我是该软件的初学者,所以任何帮助都将有用

作为参考,代码和输出如下:

entropy<-function (p) sum(-p*log(p))

error_prior<-entropy(LCA_2class$P) 
error_post<-mean(apply(LCA_2class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.8631432

error_prior<-entropy(LCA_3class$P) 
error_post<-mean(apply(LCA_3class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.9445734

error_prior<-entropy(LCA_4class$P) 
error_post<-mean(apply(LCA_4class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.9413201

error_prior<-entropy(LCA_5class$P) 
error_post<-mean(apply(LCA_5class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.8849031

error_prior<-entropy(LCA_6class$P) 
error_post<-mean(apply(LCA_6class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] NaN

我还尝试按照建议的herena.omit添加到功能entropy

这产生了6类模型的输出,但是3-5个nclass的输出与以前的输出不同:

2 classes - 0.8631432
3 classes - 0.951281
4 classes - 0.9460597
5 classes - 0.9363084
6 classes - 0.9471508

有人可以提供帮助吗?

0 个答案:

没有答案