首页 > 编程知识 正文

matlab的count函数,复变函数与场论简明教程

时间:2023-05-04 08:42:07 阅读:18500 作者:3935

原文:https://blog.csdn.net/ckzhb/article/details/72871140

一、基本使用方法

[y,PS]=mapminmax(x,ymin,ymax ) %如果在此处未指定ymin,ymax,则ymin的默认值为-1,ymax的默认值为1。

mapminmax(data )的默认规范化范围为[-1,1 ],规范每一行一定记住是对行进行归一化!!!

二、正规化的讨论

参考: http://www.ilovematlab.cn/thread-63766-1-1.html

[train_scale,test_scale,PS]=scaleforsvm(train_data,test_data,ymin,ymax ) ]

输入:

train_data :训练集

test_data :测试集

ymin )规范化范围下限(可以不输入,默认值为0 ) ) )。

ymax )规范化范围上限(可以不输入,默认值为1 ) ) )。

输出:

train_scale :规范化训练集

test_scale :规范化测试集

ps :正规化地图

测试代码:

train_data=[1 12; 3 ) 4; 7]

test_data=[9 10; 6(2) )。

[train_scale,test_scale,PS]=scaleforsvm(train_data,test_data,0,1 ) ]

执行结果:

train _ data=1123478 test _ data=91062 train _ scale=0. 0000.2500.2000.7500.6000 test _ scale=1. 0000.80000 xmin : [2x1 double ] xrange : [2x1 double ] y rows 33602 ymin : y range 3360 3358 www.Sina.com/http://www.Sina

)1)是按样本规范化(按行规范化)还是按维规范化?

)2)是将训练集和测试集分别规范化,还是一起排大队一起规范化?

上面我个人的理解和解决办法是:

(1)按维度规范化

原因:由于每个示例的维各不相同,因此每个示例的维都是规范化的,如果维位数相差很大,则示例中的低位属性为0,导致原始信息丢失太多。 例如:

sample=

1 2 0.5 100000

5 7 0.4 200000

如果对每个采样按行规范化[ 0,1 ],则结果为sample_scale=

0.0000 0.0000 0 1.0000

0.0000 0.0000 0 1.0000

通过位数的差异,可以看到每个样本的前三维数据被归一化为0。 这实际上不合理,原始数据的信息丢失太多了。 但是,如果按一维进行规范化,则对于同一维,维级别相同,因此在大范围内不会发生这种情况。 如果对每个一维执行[ 0,1 ]规范化(按列规范化),则结果如下:

sample_scale=

0 0 1 0

1 1 0 1

)2)训练集和测试集放在一起,一起规范化。

理由:使用测试代码示例

train_data=

1 12

3 4

7 8

test_data=

9 10

6 2

将训练集逐维归一化,记录该归一化图,如果有测试集,则使用该归一化图对测试集进行归一化,则归一化训练集时在第一维归一化图上记录的最大值为7, 虽然假设所有数据的第一维最大值都不能超过7,但是带来新的测试集时的第一维值不一定需要大于7,测试数据中测试集的第一维值被认为不大于7,即分别规范化但一旦采用了,这个步骤就十分重要,因为这是使用

问题1 :

在智能算法程序的实现中,原始数据需要每个属性(维度规范化)。 也就是说,数据集data中的行必须表示属性,列必须表示示例数据的数量。 另一方面,由于数据读取函数textread、xlsread基于数据集逐列读取,因此规范化时需要注意是否需要倒排。

问题2 :

一般格式:

[inputtrain,setting]=mapminmax(input_train ' );

inputtest=mapminmax('apply ',input_test ',setting );

这些命令意味着根据input_train的规范化规则对Input_text进行规范化。 但是,input_test中的数据必须介于inout_train数据的最小值和最大值之间

两个观点:

一是数据集和测试集合并规范化; 另一件事是你不用在意测试集的最大值。 实际上测试数据本身不确定,正好可以检测模型的诊断/预测能力。 个人倾向于后者。 具体情况还要具体应对

note:

在BP神经网络中,newff函数使用的m行数据n列中,行表示数据属性值,而列表示数据样本的数量。

在libSVM中,用于每个函数的矩阵m行n列例如为880X6,其中行指示数据样本的数量,而列指示数据的属性值。 两者正好相反。

-----------------

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。