概述
熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。
可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大。比如样本数据在某指标下取值都相等,则该指标对总体评价的影响为0,权值为0.
熵值法步骤
第一步:指标的归一化处理(异质指标同质化):
min.max.norm <- function(x){ (x-min(x))/(max(x)-min(x)) } #正向指标
max.min.norm <- function(x){ (max(x)-x)/(max(x)-min(x)) } #负向指标
nub<-apply(ub,2,min.max.norm)
第二步:计算第j项指标下第i个样本值占该指标的比重。
first1 <- function(data) {
x <- c(data)
for(i in 1:length(data))
x[i] = data[i]/sum(data[])
return(x) }
dataframe<-apply(nub,2,first1)
第三步:计算第j项指标的熵值。
first2 <- function(data) {
x <- c(data)
for(i in 1:length(data)){
if(data[i] == 0){ x[i] = 0
}else{
x[i] = data[i] * log(data[i]) } }
return(x) }
dataframe1<-apply(dataframe,2,first2)
k <- 1/ log( length(dataframe1[,1]))
d <- -k * colSums( dataframe1)
第四步:计算信息熵冗余度(差异)。
d <- 1-d
第五步:计算各项指标的权重。
w <- d/sum(d)
第六步:计算各样本的综合得分。
https://blog.csdn.net/yawei_liu1688/article/details/78745612 (作者:bigdata老司机)
https://blog.csdn.net/weixin_42683052/article/details/108048358
最后
以上就是成就早晨为你收集整理的R语言-熵值法的全部内容,希望文章能够帮你解决R语言-熵值法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复