Give me a python example of the entropy weight method.
The Entropy Weight Method is a technique used in multi-criteria decision-making to determine the weights of criteria based on the information entropy of each criterion. The idea is that criteria with more variability (higher entropy) provide more information and should be given more weight.
Here's a simple example of how you might implement the Entropy Weight Method in Python:
import numpy as np
def normalize_matrix(matrix):
"""Normalize the decision matrix."""
norm_matrix = matrix / matrix.sum(axis=0)
return norm_matrix
def calculate_entropy(norm_matrix):
"""Calculate the entropy of each criterion."""
# Avoid log(0) by replacing 0 with a very small number
norm_matrix = np.where(norm_matrix == 0, 1e-10, norm_matrix)
entropy = -np.sum(norm_matrix * np.log(norm_matrix), axis=0) / np.log(norm_matrix.shape[0])
return entropy
def calculate_weights(entropy):
"""Calculate the weights based on entropy."""
d = 1 - entropy
weights = d / d.sum()
return weights
def entropy_weight_method(matrix):
"""Apply the entropy weight method to the decision matrix."""
norm_matrix = normalize_matrix(matrix)
entropy = calculate_entropy(norm_matrix)
weights = calculate_weights(entropy)
return weights
# Example decision matrix (rows are alternatives, columns are criteria)
decision_matrix = np.array([
[250, 16, 12],
[200, 20, 8],
[300, 18, 10],
[275, 15, 11]
])
weights = entropy_weight_method(decision_matrix)
print("Weights:", weights)
Normalization: The decision matrix is normalized so that each column (criterion) sums to 1. This is done by dividing each element by the sum of its column.
Entropy Calculation: The entropy for each criterion is calculated. Entropy is a measure of uncertainty or disorder; higher entropy means more variability in the data.
Weight Calculation: The weights are calculated by subtracting the entropy from 1 (to get the degree of diversification) and then normalizing these values so that they sum to 1.
Example Matrix: The example matrix represents a decision problem with 4 alternatives and 3 criteria. The weights are calculated based on the variability of each criterion.
This method is useful when you want to objectively determine the importance of each criterion based on the data itself, rather than relying on subjective judgment.