精华内容
下载资源
问答
  • 对于列全为0的数据,maxmin标准化和列归一化结果会NAN->该矩阵所有数+0.0000000001,再进行处理 列归一代码↓ eps=0.0000000001; U=U+eps*ones(M,M); %ones[m,n] 生成m行n列的全1矩阵 vd=sum(U); t2=diag(vd); .....

    load数据↓

               U=load('outpath.txt');
    

    对于列全为0的数据,maxmin标准化和列归一化结果会NAN->该矩阵所有数+0.0000000001,再进行处理
    列归一代码↓

    eps=0.0000000001;
    U=U+eps*ones(M,M);      %ones[m,n] 生成m行n列的全1矩阵
    vd=sum(U);
    t2=diag(vd); 
    U=U*(t2^-1);
    

    z-score标准化↓

             U=zscore(U);
    

    max-min标准化 (eps用来处理列全为0的数据)

    eps=0.0000000001;
    U=U+eps*ones(m,n);
    [m, n]  = size(U);      %m,n为输入文本矩阵的行列
    for i = 1:n
        ma = max(U(:, i) ); 
        mi = min( U(:, i) );
        U_mami(:, i) = ( U(:, i)-mi ) / ( ma-mi );
    end
    
    展开全文
  • matlab归一化和标准化

    2020-03-27 22:32:43
    归一化一般采用的是最大最小规范化对原始数据进行线性变换 标准化一般采用的是Z-score规范化:就是均值是0,方差是1的正太分布。 在matlab里面归一化的方法有:premnmx、postmnmx、tramnmx、mapminmax...

        归一化是将数据限制在[0,1]之间,标准化是将数据限制在一定范围内,一般是指正态化,即均值是0,方差是1,即使数据不满足正态分布,亦可以使用这个方法。

    归一化一般采用的是最大最小规范化对原始数据进行线性变换x=(X-Xmin)/(Xmax-Xmin)

    标准化一般采用的是Z-score规范化:就是均值是0,方差是1的正太分布。

    在matlab里面归一化的方法有:premnmx、postmnmx、tramnmx、mapminmax。premnmx指的是归一到[-1 1],tramnmx是变化测试集输入结果,postmnmx是转化测试集输出结果。

    mapminmax这个函数可以把矩阵的每一行归一到[a b].默认为[-1 1]. 

        [p_train,PS] = mapminmax(P_train,a,b). 其中P_train是需要归一的矩阵,train是结果

     当需要对另外一组数据归一时,比如SVM中的training data用以上方法归一,而test data就可以用下面的方法做相同的归一:t_train = mapminmax('apply',T_train,PS)

    当需要把归一的数据还原时,可以用以下命令: T_sim = mapminmax('reverse',t_sim,PS)

     %数据归一化
    [p_train,ps_input]=mapminmax(P_train,0,1);
    [t_train,ps_output]=mapminmax(T_train,0,1);
    p_test=mapminmax('apply',P_test,ps_input);
    %数据反归一化
    T_sim=mapminmax('reverse',t_sim,ps_output);
    
    

     

    展开全文
  • 为了消除指标之间由于取值范围带来的差异,需要进行标准化处理。将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。 (1)最小-最大规范化 假定min和max分别为属性A的最小值和最大值,则通过下面...

    本文代码均已在 MATLAB R2019b 测试通过,如有错误,欢迎指正。

    一、数据规范化的原理

    数据规范化处理是数据挖掘的一项基础工作。不同的属性变量往往具有不同的取值范围,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果。为了消除指标之间由于取值范围带来的差异,需要进行标准化处理。将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。

    (1)最小-最大规范化
    假定min和max分别为属性A的最小值和最大值,则通过下面公式将属性A上的值v映射到区间[new_min, new_max]中的v’:
    v=vminmaxmin(new_maxnew_min)+new_min v'=\frac {v-min} {max-min}(new\_max-new\_min)+new\_min

    (2)零-均值规范化
    将属性A的值根据其平均值mean和标准差std进行规范化:
    v=vmeanstd v'=\frac {v-mean} {std}

    (3)小数定标规范化
    通过移动属性A的小数点位置进行规范化,小数点的移动依赖于A的最大绝对值:
    v=v10j v'=\frac {v} {10^j}

    其中,j是使 Max(| v’ |)<1的最小整数。

    二、Matlab代码实现

    1.最小-最大规范化

    Matlab的代码可以写简单一点,不用像C++那样写两个for循环。

    • mi=min(A)默认求矩阵A每列的最小值,返回一个行向量mi。
    • repmat(mi,n,1)重复mi,重复行n次,重复列1次,从而形成与A相同大小的矩阵。
    • ./可直接将两个矩阵所有相同位置的元素相除(不用写两个for循环)。
    clear;clc;
    
    %% 数据存入A
    A=[78 521 602 2863	
    144 -600 -521 2245	
    95 -457 468 -1283
    69 596 695 1054
    190 527 691 2051
    101 403 470 2487
    146 413 435 2571];
    
    fprintf("原数据:"); A
    
    new=input("请输入需要映射到的新区间。输入格式示例:[0,1]\n");
    new_mi=new(1);
    new_mx=new(2);
    
    [n,m]=size(A);
    mi=min(A); % 求出A每列的最小值,形成行向量mi(不用for循环)
    mx=max(A); % 求出A每列的最大值,形成行向量mx
    mi=repmat(mi,n,1); % 将矩阵mi重复,行n次,列1次,调整到与A相同大小(之后就不用for循环了)
    mx=repmat(mx,n,1); % 将矩阵mx重复,行n次,列1次,调整到与A相同大小
    B=(A-mi)./(mx-mi)*(new_mx-new_mi)+new_mi; % ./的含义是将两个矩阵所有相同位置的元素相除
    
    fprintf("\n经过最小最大规范化后:"); B
    

    Matlab也有现成的mapminmax()函数直接实现最小-最大规范化:

    B1=mapminmax(A')'; % 每列规范化到[-1,1]
    B2=mapminmax(A',0,1)'; % 每列规范化到[0,1]
    

    解释一下:

    • mapminmax()函数,默认按行最小最大规范化到[-1,1]。
    • 由于默认是按行,如果要按列规范化,传参时需将A进行转置,将mapminmax()函数返回的结果再转置一下即可。
    • B2=mapminmax(A',0,1)',后面加上两个参数表示新区间的左右端点。

    代码运行结果

    输入的新区间范围为[0,1]:

    原数据:
    A =
    
              78         521         602        2863
             144        -600        -521        2245
              95        -457         468       -1283
              69         596         695        1054
             190         527         691        2051
             101         403         470        2487
             146         413         435        2571
    
    请输入需要映射到的新区间。输入格式示例:[0,1]
    [0,1]
    
    经过最小最大规范化后:
    B =
    
        0.0744    0.9373    0.9235    1.0000
        0.6198         0         0    0.8509
        0.2149    0.1196    0.8133         0
             0    1.0000    1.0000    0.5637
        1.0000    0.9423    0.9967    0.8041
        0.2645    0.8386    0.8150    0.9093
        0.6364    0.8470    0.7862    0.9296
    

    2.零-均值规范化

    clear;clc;
    
    %% 数据存入A
    A=[78 521 602 2863	
    144 -600 -521 2245	
    95 -457 468 -1283
    69 596 695 1054
    190 527 691 2051
    101 403 470 2487
    146 413 435 2571];
    
    A_mean=mean(A); % mean求的是每列的均值
    A_std=std(A); % std求的是每列的标准差
    [n,m]=size(A);
    B=(A-repmat(A_mean,n,1))./repmat(A_std,n,1);
    
    fprintf("原数据:"); A
    fprintf("经过零均值规范化后:"); B
    

    Matlab也有现成的zscore()函数直接实现零-均值规范化:

    [B,A_mean,A_std]=zscore(A); % 返回按列进行零均值规范化后的矩阵、每列均值、每列标准差
    B=zscore(A); % 只返回按列进行零均值规范化后的矩阵
    

    代码运行结果

    原数据:
    A =
    
              78         521         602        2863
             144        -600        -521        2245
              95        -457         468       -1283
              69         596         695        1054
             190         527         691        2051
             101         403         470        2487
             146         413         435        2571
    
    经过零均值规范化后:
    B =
    
       -0.9054    0.6359    0.4645    0.7981
        0.6047   -1.5877   -2.1932    0.3694
       -0.5164   -1.3040    0.1474   -2.0783
       -1.1113    0.7846    0.6846   -0.4569
        1.6571    0.6478    0.6752    0.2348
       -0.3791    0.4018    0.1521    0.5373
        0.6504    0.4216    0.0693    0.5956
    

    3.小数定标规范化

    clear;clc;
    
    %% 数据存入A
    A=[78 521 602 2863	
    144 -600 -521 2245	
    95 -457 468 -1283
    69 596 695 1054
    190 527 691 2051
    101 403 470 2487
    146 413 435 2571];
    
    mx=max(abs(A)); % 求每列绝对值最大的数mx
    len=floor(log10(mx))+1; % 求绝对值最大的数的位数len
    B=A./(10.^len); % 按列将A中每个元素除以相同的10^len
    
    fprintf("原数据:"); A
    fprintf("经过小数定标规范化后:"); B
    

    代码运行结果

    原数据:
    A =
    
              78         521         602        2863
             144        -600        -521        2245
              95        -457         468       -1283
              69         596         695        1054
             190         527         691        2051
             101         403         470        2487
             146         413         435        2571
    
    经过小数定标规范化后:
    B =
    
        0.0780    0.5210    0.6020    0.2863
        0.1440   -0.6000   -0.5210    0.2245
        0.0950   -0.4570    0.4680   -0.1283
        0.0690    0.5960    0.6950    0.1054
        0.1900    0.5270    0.6910    0.2051
        0.1010    0.4030    0.4700    0.2487
        0.1460    0.4130    0.4350    0.2571
    
    展开全文
  • 归一化与标准化处理

    千次阅读 2015-10-29 10:56:24
    一般采用最大-最小规范对原始数据进行线性变换公式:X=(X−Xmin)/(Xmax−Xmin)X =(X-Xmin)/(Xmax-Xmin) matlab归一函数: [y,ps] = mapminmax(x,ymin,ymax) x输入矩阵,ymin,ymax归一

    1, 归一化

    把数据经过处理后限制在想要的范围内,比如[0,1],有量纲表达式变为无量纲表达式,成为纯量。
    一般采用最大-最小规范化对原始数据进行线性变换公式:X=XXmin/(XmaxXmin)
    matlab归一化函数:
    [y,ps] = mapminmax(x,ymin,ymax)
    x输入矩阵,ymin,ymax归一化区间,默认是[-1,1]
    数据还原:x = mapminmax('reverse',y,PS)

    2,标准化

    对原始数据进行缩放处理,限制在一定的范围内。无量纲化处理,要解决数据的可比性.一般指正态化,即期望为0,方差为1。
    matlab函数:zscore

    附matlab 常用统计命令
    1. mean:计算向量均值,mean(x,1)列向量均值,mean(x,2)行向量均值,mean2(x)矩阵均值;
    2. std:计算向量均方差,std(x,0,1)列向量均方差,std(x,0,2)行向量均方差,std2(x)矩阵均方差;
    3. var:计算向量方差,var(x);
    4. sse:误差平方和,sse(x),越接近于0,说明拟合的越好,数据预测越成功;
    5. mse:均方差平方和,mse(x)=sse(x)/N,意义同sse;
    6. R-square:确定系数。确定系数是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。

    展开全文
  • Matlab数学建模(五):优化模型之标准模型

    千次阅读 多人点赞 2018-11-18 18:43:41
    一、学习目标 (1)了解最优化模型。 (2)掌握线性规划的优化求解。...一般说来,凡是寻求最大最小、最远、最近、最经济、最丰富、最高效、最耗时的目标,都可以划入优化问题的范畴。MATLAB 优化工...
  • Matlab学习笔记#01

    2021-01-06 21:02:40
    在一直以来的学习当中,与matlab这款软件多有接触,但一直没有系统地研究学习一下这款软件,趁着闲暇之余,整理一下自己有关matlab知识。 matlab技术支持搜索网站 一些基本的符号 ans→answer inf→∞ eps→2.2204...
  • % max,min - 最大,最小值 % sum - 求和 % mean - 均值 % std - 标准差 % sort - 排序(升序) % sortrows - 按某一列排序(升序) % rand - [0,1]区间均匀分布随机数 % randn - 标准正态分布随机数 % randperm - 1.....
  • MATLAB数学建模工具箱

    热门讨论 2013-05-20 15:06:10
    % max,min - 最大,最小值 % sum - 求和 % mean - 均值 % std - 标准差 % sort - 排序(升序) % sortrows - 按某一列排序(升序) % rand - [0,1]区间均匀分布随机数 % randn - 标准正态分布随机数 % randperm - 1.....
  • 如何利用matlab编程构造时间序列指标?(N=40)(数据为05到18年的上证综指日交易量) 构造方法: 1. 取当日以及前N 个交易日的每日成交量数据...3. 通过 2 * (n-N-1) / N 将当日成交量排名标准化为[-1, 1]内的数值。
  • Matlab数学建模工具箱

    热门讨论 2010-03-15 12:14:21
    % max,min - 最大,最小值 % sum - 求和 % mean - 均值 % std - 标准差 % sort - 排序(升序) % sortrows - 按某一列排序(升序) % rand - [0,1]区间均匀分布随机数 % randn - 标准正态分布随机数 % randperm - 1.....
  • MatLab凸优化工具箱CVX-Introduction

    千次阅读 2018-05-03 09:04:04
    What is CVX? CVX是MatLab的一个工具箱,是用于构建和解决约束凸规划(DCP)的建模系统。CVX支持许多标准问题类型,...可以使用CVX方便地建立并求解约束范数最小化,熵最大化,行列式最大化以及许多其他凸规划问...
  • 多目标线性规划及matlab应用

    千次阅读 2020-03-27 15:55:22
    (3)最大最小法 在实际问题中,衡量一个设计方案的好坏往往不止一个标准,常常要考虑多个目标。例如研究生产过程时,人们既要提高生产效率,同时还要考虑产品质量,又要考虑成本以降低生产费用,可能还希望生产过程...
  • 11.4最大最小法 11.5目标规划法 本章小结 第三部分MATLAB智能优化算法 第12章免疫优化算法及其实现 12.1基本概念 12.2人工免疫系统 12.3免疫遗传算法 12.4免疫算法MATLAB应用实例 12.4.1最短路径...
  • MATLAB-k均值分类

    千次阅读 2019-09-03 00:00:40
    算法的目的是使各个样本与所在类均值的误差平方和达到最小(这也是评价K-means算法最后聚类效果的评价标准) K-means聚类算法的一般步骤:  初始。输入基因表达矩阵作为对象集X,输入指定聚类类数N,并在X中...
  • 对有多个指标的需要提取出效应型指标和成本型指标并将其标准化。 2、提取参考队列和比较队列 3、比较队列与参考队列相减 4、求最大差和最小差 rho=0.5;%分辨系数取值范围在为分辨系数取值范围...
  • 最小-最大规范化也称为离散标准化,是对原始数据的线性变换,将数据值映射到[0, 1]之间。 转换公式如右: 此种标准化保留了原来数据中存在的关系,是消除量纲和数据取值范围影响的最简单方法。这种处理方法的缺点是...
  • 其目标是向最大化类间差异,最小化类内差异的方向投影3.LDA算法实现大致有六步:标准化数据集,均值化每个类别向量,计算类内散度矩阵和类间散度矩阵,构造S矩阵求解特征根与特征向量,组合W矩阵,计算降维数据集...
  • 语音识别的MATLAB实现

    热门讨论 2009-03-03 21:39:18
    语音识别的MATLAB实现 声控小车结题报告 小组成员:关世勇 吴庆林 一、 项目要求: 声控小车是科大华为科技制作竞赛命题组的项目,其要求是编写一个语言识别程序并适当改装一个小型机动车,使之在一个预先不知道...
  • 3.2.16 var/std 求方差与标准差/66 3.2.17 diag 生成对角矩阵/68 3.2.18 repmat 矩阵复制和平铺/69 3.2.19 reshape 矩阵变维/70 3.2.20 inv/pinv 矩阵求逆/求伪逆/71 3.2.21 rank/det 求矩阵的秩/行列式/73 3.2.22 ...
  • 识别过程中,首先建立标准字库,再将分割所得到的字符进行归一,将归一处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。并且进行语音播报。 (5)入库、出库分别计算时间,记录...
  • 10.7.1 最大最小化函数fminimax 10.7.2 最大最小化应用 10.8 本章小结 第11 章图像处理工具箱 11.1 MATLAB 图像处理基础知识 11.1.1 MATLAB 图像表达方式 11.1.2 MATLAB 支持的图像文件格式 11.1.3 ...
  • 10.7.1 最大最小化函数fminimax 10.7.2 最大最小化应用 10.8 本章小结 第11 章图像处理工具箱 11.1 MATLAB 图像处理基础知识 11.1.1 MATLAB 图像表达方式 11.1.2 MATLAB 支持的图像文件格式 11.1.3 ...
  • MATLAB车牌识别部分: ①图像预处理:在整个车牌识别...识别过程中,首先建立标准字库,再将分割所得到的字符进行归一,将归一处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。
  • 库外识别,GUI,计时计费,模板匹配/神经网络,语音播报...识别过程中,首先建立标准字库,再将分割所得到的字符进行归一,将归一处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。
  • Matlab7.x图像处理 ch2_1_1:查看直方图(§2.1.3) ch2_2_1:显示图像(§2.2.2) ch2_3_1:添加颜色条(§2.3.1) ch2_3_2:图像的单帧显示(§2.3.2) ch2_3_3:图像的多帧显示(§2.3.2) ch2_3_4:图像的动画...
  • 一、课题介绍 随着汽车数量的增加,城市交通状况日益受...识别过程中,首先建立标准字库,再将分割所得到的字符进行归一,将归一处理后的字符与标准字库里的字符逐一比较,最后把误差最小的字符作为结果显示出来。
  • %排放标准 discharge = xlsread('E:\毕业论文\Data\瓜子二手车数据处理.xlsx','D1:D3000'); %变速箱类型 transmission_case = xlsread('E:\毕业论文\Data\瓜子二手车数据处理.xlsx','E1:E3000'); %排量 ...
  • Warthog.rar

    2020-01-05 21:12:43
    这是一个MATLAB模块,它通过最小化/最大化相似度函数将模板对齐到参考图像。该模块速度快,支持许多选项,包括: 6个相似函数(平方差和、标准化相关、标准MI、后Parzen MI、in-Parzen MI和部分体积估计MI) 4翘曲...
  • 2,将多个目标函数全部转为最大最小问题 3,对目标函数中的决策变量进行标准化和权重化处理 4,设置约束条件,建立模型利用matlab求解 (注意:在分配好目标函数的权重后,还需要在建模时转化为决策变量的系数) %%...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
热门标签
关键字:

matlab最大最小标准化

matlab 订阅