我是靠谱客的博主 成就早晨,最近开发中收集的这篇文章主要介绍R语言-熵值法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。

可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大。比如样本数据在某指标下取值都相等,则该指标对总体评价的影响为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语言-熵值法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部