关于归一化算法的简单实践

该文章介绍了一个Java程序,用于对矩阵数据进行归一化到[0,1]范围,然后执行一致性校验,计算数据权重。程序中包含了数据转换、校验、归一化算法以及权重和一致性的计算公式。通过RI_MAP存储不同阶数的平均随机一致性指标RI,计算一致性比例(CR),判断数据是否具有一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求来源

前段时间有个需求要对矩阵数据做归一化处理,之后在对数据做一致性校验,并获取数据对应的权重。

需求分析

1、了解归一化算法
2、通过数据构建矩阵信息
3、数据处理
4、获取权重

实现方案

1、简单说一下概念:
归一化是一种数据处理方式,能将数据经过处理后限制在某个固定范围内。当前的需求是将数据处理为[0,1]之间的小数。

2、计算方法
2.1、归一化算法公式:
在这里插入图片描述
2.2、权重算法公式:
在这里插入图片描述
2.3、一致性校验公式:
在这里插入图片描述
2.4、一致性比例计算:
在这里插入图片描述
注:当CR<0.1时,具有一致性;否则不具有一致性。

代码实现

代码如下,做个记录:

package com.***.***.**;

import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;

import java.text.DecimalFormat;
import java.util.HashMap;

public class MatrixSet {
   

    /**
     * 矩阵横向编码
     */
    private static final String MATRIX_X = "X";

    /**
     * 矩阵纵向编码
     */
    private static final String MATRIX_Y = "Y";

    /**
     * 对应的平均随机一致性指标 RI,目前存放15阶
     */
    private static final HashMap<Integer, Double> RI_MAP = new HashMap<>();

    private static final DecimalFormat DF = new DecimalFormat("######0.00");

    static {
   
        RI_MAP.put(1, 0d);
        RI_MAP.put(2, 0d);
        RI_MAP.put(3, 0.52d);
        RI_MAP.put(4, 0.89d);
        RI_MAP.put(5, 1.12d);
        RI_MAP.put(6, 1.26d);
        RI_MAP.put(7, 1.36d);
        RI_MAP.put(8, 1.41d);
        RI_MAP.put(9, 1.46d);
        RI_MAP.put(10, 1.49d);
        RI_MAP.put(11, 1.52d);
        RI_MAP.put(12, 1.54d);
        RI_MAP.put(13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值