熵权法的python实现

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

借鉴上述对熵权法的介绍和实例讲解,用python实现求解,主要利用的是numpy的矩阵计算。

# -*- coding: utf-8 -*-
"""
Created on Mon Nov  7 11:08:54 2016

@author: debin Lu
"""
import numpy as np
import pandas as pd
fp="d:/shangquan.xlsx"
data=pd.read_excel(fp,index_col=None,header=None,encoding='utf8')
#data = (data - data.min())/(data.max() - data.min())
m,n=data.shape
#第一步读取文件,如果未标准化,则标准化
data=data.as_matrix(columns=None)
#将dataframe格式转化为matrix格式
k=1/np.log(m)
yij=data.sum(axis=0)
pij=data/yij
#第二步,计算pij
test=pij*np.log(pij)
test=np.nan_to_num(test)
ej=-k*(test.sum(axis=0))
#计算每种指标的信息熵
wi=(1-ej)/np.sum(1-ej)
#计算每种指标的权重
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容