多属性决策(MCDM)
指的是利用已有的决策信息通过移动的方式对一组(有限个)备选方案进行排序或者择优。
属性:备选方案的特征、品质或性能参数 包括属性权重和属性值
对决策信息进行集结:
- 加权算术平均算子(WAA)
- 加权几何平均算子(WGA)
- 有序加权平均算子(OWA)
加权算术平均算子(WAA)
对于一组给定的数据有
W
A
A
w
(
a
1
,
a
2
,
.
.
.
,
a
n
)
=
∑
i
=
1
n
w
i
a
i
WAA_{w}(a_{1},a_{2},...,a_{n})=\sum_{i=1}^nw_{i}a_{i}
WAAw(a1,a2,...,an)=i=1∑nwiai
其中
(
w
1
,
w
2
,
.
.
.
,
w
n
)
T
(w_{1},w_{2},...,w_{n})^T
(w1,w2,...,wn)T是数据组
(
a
1
,
a
2
,
.
.
.
,
a
n
)
(a_{1},a_{2},...,a_{n})
(a1,a2,...,an)的权重向量,wi∈[0,1],i∈[1,n]
属性值类型
- 效益性:越大越好
- 成本型:越小越好
- 固定型:越接近某个固定值α越好
- 偏离型:越偏离某个固定值β越好
- 区间型:越接近某个固定区间[q1,q2]越好
- 偏离区间型:越偏离某个固定区间[q1,q2]越好
归一化处理
-
效益型:
r i j = a i j m a x i a i j = a i j − m i n i a i j m a x i a i j − m i n i a i j r_{ij}=\frac{a_{ij}}{max_{i}\ a_{ij}}=\frac{a_{ij}-min_{i}\ a_{ij}}{max_{i}\ a_{ij}-min_{i}\ a_{ij}} rij=maxi aijaij=maxi aij−mini aijaij−mini aij -
成本型:
r i j = m i n i a i j a i j = m a x i a i j − a i j m a x i a i j − m i n i a i j r_{ij}=\frac{min_{i}a_{ij}}{ a_{ij}}=\frac{max_{i}a_{ij}-a_{ij}}{max_{i}\ a_{ij}-min_{i}\ a_{ij}} rij=aijminiaij=maxi aij−mini aijmaxiaij−aij -
固定型:
r i j = 1 − a i j − α j m a x i ∣ a i j − α j ∣ r_{ij}=1-\frac{a_{ij}-α_{j}}{max_{i}|a_{ij}-α_{j}|} rij=1−maxi∣aij−αj∣aij−αj -
其他:
实例:
归一化处理属性值
计算权重(层次分析法)
运用WAA求解
mapminmax
1 默认的map范围是[-1, 1],所以如果需要[0, 1],则按这样的格式提供参数:
MappedData = mapminmax(OriginalData, 0, 1);
2 只按行归一化,如果是矩阵,则每行各自归一化,如果需要对整个矩阵归一化,用如下方法:
FlattenedData = OriginalData(:)'; % 展开矩阵为一列,然后转置为一行。
MappedFlattened = mapminmax(FlattenedData, 0, 1); % 归一化。
MappedData = reshape(MappedFlattened, size(OriginalData)); % 还原为原始矩阵形式。此处不需转置回去,因为reshape恰好是按列重新排序