• Matlab函数——mapminmax


    介绍

    mapminmax 是一种数据预处理方法,用于将数据映射到指定的范围内,通常是将数据映射到 [0, 1] 或 [-1, 1] 的范围。

    该函数对数据进行归一化处理,将原始数据缩放到指定的范围内。它的作用包括:

    1. 数据标准化:对于不同尺度的特征,mapminmax 可以将它们转化为相同的尺度,以便更好地应用于数据建模或算法中。

    2. 提高算法性能:某些数据建模或机器学习算法在处理数据时,对数据的范围敏感。使用 mapminmax 可以避免某些算法对数据取值范围的偏好,从而提高算法的性能和稳定性。

    3. 防止数值溢出:某些算法在进行计算时,需要输入数据具有特定的取值范围。如果数据超出了算法能够处理的范围,可能会导致数值溢出或不稳定的结果。mapminmax 可以将数据限制在一个安全的范围内,避免这些问题的发生。

    举例

    下面是一个例子,假设有一个长度为 n 的数据集,其中每个数据点包含 m 个特征值:

        X1 = [x11, x12, ..., x1m]
        X2 = [X21, x22, ..., x2m]
        ...
        Xn = [xn1, xn2, ..., xnm]

    我们可以使用 mapminmax 对数据集进行预处理,将其映射到 [0, 1] 的范围内。具体操作如下:

    1. 对于每个特征值,计算其最大值和最小值:

        max_val = max([x11, x21, ..., xn1])
        min_val = min([x11, x21, ..., xn1])
        
        max_val = max([x12, x22, ..., xn2])
        min_val = min([x12, x22, ..., xn2])
        ...
        max_val = max([x1m, x2m, ..., xnm])
        min_val = min([x1m, x2m, ..., xnm])

    2. 对于每个数据点 Xi,使用下面的公式将其映射到 [0, 1] 的范围内:

        Xi_new = (Xi - min_val) / (max_val - min_val)

    3. 最终得到的数据集 X_new 如下所示:

        X1_new = [x11_new, x12_new, ..., x1m_new]
        X2_new = [X21_new, x22_new, ..., x2m_new]
        ...
        Xn_new = [xn1_new, xn2_new, ..., xnm_new]

    其中每个元素都满足 0 <= Xij_new <= 1。

    例如,我们可以使用 mapminmax 将一个含有不同尺度特征的数据集进行标准化处理,使其映射到 [0, 1] 的范围内,例如:

    1.     X = [1, 2, 3, 4;
    2.          1000, 2000, 3000, 4000;
    3.          0.1, 0.2, 0.3, 0.4;
    4.          0.01, 0.02, 0.03, 0.04];
    5.     
    6.     [X_new] = mapminmax(X);

    经过处理后,输出的 X_new 为:

    1.     X_new = [0, 0, 0, 0;
    2.              1, 1, 1, 1;
    3.              0.0909, 0.1818, 0.2727, 0.3636;
    4.              0.0091, 0.0182, 0.0273, 0.0364];

    可以看到,所有特征都被映射到了 [0, 1] 的范围内,算法处理时更加高效和准确。

    若是要映射到-1到1,只需要[X_new] = mapminmax(X, -1, 1);就可以了

  • 相关阅读:
    Docker入门
    java装修设计管理系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    计算机毕业设计Java二手物品置换平台(源码+系统+mysql数据库+lw文档)
    苹果首破例,允许在韩使用替代支付系统
    MySQL数据库的七种约束语法格式和使用详解&约束的总结
    c++ 类的特殊成员函数:移动构造函数(五)
    Revit MEP 平面视图中(立管)怎么设置二维表达?
    嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
    Atcoder abc131
    显示控件——图标类之滑动刻度指示
  • 原文地址:https://blog.csdn.net/m0_63024355/article/details/134229440