1.Introduction
前段时间,突然发现,做了一年的机器学习,居然没有对特征归一化,不过从结果看好像问题不大,从原理上看嘛,我们另开一篇博客单讲。所以这篇文章就讲讲数据归一化和标准化的区别及其实现方式。
2.Materials and methods
关于 归一化 和 标准化 网上资料很多,但是没用统一的定义,那么下面展示一下主流的定义:
可以看到,数据缩放(Feature scaling)的方法,主要有上面四种。其中第一种常被称作归一化,第三种常被称作标准化,下面归一化和标准化均指方法一和方法三。
从其公式不难得知其计算方法,自己编写程序应该问题不大,但是,Matlab 会让你亲自做这种事吗?
哈哈,来看官方函数:
简单~ 来具体代码实现(只展示第一种语法实例,其他的基本用不到)
data = xlsread('dataset.xlsx'); % 读数据
[minMaxData,~] = mapminmax(data'); % 归一化
minMaxData = minMaxData'; % 行列转置
zScoreData = zscore(data); % 标准化
由于我们需要对每个特征的所有样本进行归一化与标准化,即每一列数据。但是 mapminmax 函数默认是对每一行进行操作的,所以对其操作前后要进行 转置。另外,在应用于机器学习的输入时,还要 对训练集与测试集一起归一化或标准化,以统一标准。机器学习数据集格式默认如下:
3. Results and discussion
来吧!展示~
可以看到,逐列进行归一化与标准化的结果也都符合预期,游戏结束。
4. Conclusion
好像能讲的就这么多,博客专注于实现,原理可以参考其他文章。还有一篇讲机器学习全流程的博客,近期应该也会出。当然,会带全部代码的,敬请期待~
5. Reference
标准化和归一化什么区别? - 知乎用户的回答 - 知乎
https://www.zhihu.com/question/20467170/answer/392949674
标准化和归一化什么区别? - gokenu的回答 - 知乎
https://www.zhihu.com/question/20467170/answer/633379185
猜你喜欢:👇🏻
⭐【总结】机器学习划分数据集的几种方法
⭐【总结】一文了解所有的机器学习评价指标
⭐【算法】一个简单的支持向量机(SVM)原理