转载自   https://blog.csdn.net/lkj345/article/details/50352385

背景介绍

  1. 归一化后加快了梯度下降求最优解的速度,归一化有可能提高精度。
  2. 训练集和测试集归一化方法相同。
  3. 数据集不小,81*132337,81行表示包含81维属性,132337列表示包含132337条训练数据。
  4. 数据中包含NaN数据。
  5. 使用matlab中的mapminmax函数,归一化到默认的范围[-1 +1]。

  为了方便演示,我们以一个简单的矩阵来说明归一化。


 这是3*4的矩阵,表示有4条训练数据,每条数据有3个属性。数据归一化应该针对属性,而不是针对每条数据,针对每条数据是完全没有意义的,因为只是等比例缩放,对之后的分类没有任何作用。

 针对属性进行归一化的代码

inst = [1 2 3 4; 2 3 4 5; 3 4 5 6];
inst_norm = mapminmax(inst);

 得到的归一化矩阵如下

 针对数据进行归一化的代码

inst = [1 2 3 4; 2 3 4 5; 3 4 5 6];
inst_norm = mapminmax(inst')';

 得到的归一化矩阵如下


 我们应该采用第一种归一化方法,即对属性进行归一化。
 训练集和测试集归一化的方法应该相同。
 网上有一些说法,觉得训练集和测试集应该放到一起进行归一化,我觉得这种做法有所不妥,这样会让测试集受到训练集的影响,导致训练集和测试集不相互独立。
 正确的做法是记录下训练集的归一化方法,用该方法对测试集单独进行归一化,matlab中的mapminmax函数提供了相应的机制。

 对于一条新的数据,应该先按照训练集的归一化方法进行归一化,再进行分类,比如对于如下一条新数据,


 通过如下代码

inst = [1 2 3 4; 2 3 4 5; 3 4 5 6];
[inst_norm, settings] = mapminmax(inst);
test = [1 3 5]';
test_norm = mapminmax('apply', test, settings);

其中settings记录了训练集的归一化方法,得到以下归一化结果,可以参考矩阵(2)

mapminmax会跳过NaN数据,最好的方法是归一化之后,将NaN赋值成0。

inst_norm(find(isnan(inst_norm))) = 0;

机器学习中训练集和测试集归一化(matlab版)相关推荐

  1. idea2020.2中@test是怎么测试的_Sklearn 划分训练集和测试集

    [从零开始学机器学习第 03 篇] 摘要:手写 Sklearn 的 train_test_split 函数. 之前两篇文章以酒吧的红酒故事引出了 kNN 分类算法,根据已倒好的酒(样本),预测新倒的酒 ...

  2. python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解

    文章目录 train_test_split()用法 获取数据 划分训练集和测试集 完整代码脚手架 train_test_split()用法 python机器学习中常用 train_test_split ...

  3. 训练集和测试集的标准化中的坑!!!

    问题:数据标准化,应该在训练集和测试集划分前还是后? 答:数据标准化,应该在训练集和测试集划分后,分别对训练集和测试集进行数据标准化处理.不应该是数据标准化后,再进行划分.虽然从模型测试的结果看,可能 ...

  4. [机器学习笔记] 将数据拆分成训练集和测试集的几种方法

    问题描述: 一般情况下, 我们习惯将原始数据中的80% 作为训练集, 20% 作为测试集(当数据量足够大的时候,也可以将10% 作为测试集. 数据量较小时,如果每次都是随机划分训练集,执行多次训练后, ...

  5. 5.sklearn之转换器(划分训练集和测试集、以及标准化、归一化数据会用transform,独热编码也会用到)

    文章目录 1. 什么是转换器? 2. 测试集和训练集 2.1 训练集 .测试集.验证集 2.2 拆分训练集测试集有个问题 2.3 代码 3. 标准化 3.1 上离差标准化代码(举一反三就好了,其他几个 ...

  6. 31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization

    1.26.过拟合.欠拟合及其解决方案 1.26.1.过拟合.欠拟合的概念 1.26.1.1.训练误差和泛化误差 1.26.1.2.验证数据集与K-fold验证 1.26.1.3.过拟合和欠拟合 1.2 ...

  7. iris数据集_sklearn日志(二)训练集和测试集划分

    机器学习算法需要大量的数据,这些数据一部分用于模型训练,另一部分作为测试或验证. 机器学习入坑者:sklearn日志(一)体验官方提供的标准数据集​zhuanlan.zhihu.com sklearn ...

  8. sklearn.model_selection.train_test_split随机划分训练集和测试集

    1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test ...

  9. Sklearn-train_test_split随机划分训练集和测试集

    sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/gene ...

最新文章

  1. Metrics.NET 项目
  2. capistrano部署ruby on rails应用
  3. 面试官:关于负载均衡你了解多少
  4. 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)
  5. FLV视频文件格式分析
  6. 央行降准,房价可能又要骚动了!
  7. 项目架构开发:数据访问层之Cache
  8. 一文告诉你 Event Loop 是什么?
  9. 全球知名大学课件下载地址汇总
  10. XAF-UI元素概述
  11. word文档怎么找回误删的文件_word文件数据恢复|word文件不小心删除怎么恢复?...
  12. 速成pytorch学习——5天nn.functional 和 nn.Module
  13. 正则表达式-入门资料
  14. 蚂蚁区块链第1课 蚂蚁10大区块链解决方案及应用场景
  15. 数据库迁移工具-kettle下载
  16. 通过 web 录制视频(摄像头)并上传
  17. LINUX-AWK-删除首行、删除尾行、删除首尾两行
  18. [Android]进程通信Andromeda框架
  19. Python程序写诗【训练1分钟】古诗生成
  20. 如果推动世界进步的是魔法,世界将会怎样?

热门文章

  1. 转:硬盘结构简介的好文(转)---MBR、分区表、CHS等概念
  2. 二进制 十进制 十六进制
  3. opencv保存图像自动命名
  4. Java学习笔记基础(中)
  5. BI在企业数字化转型中的价值
  6. C++算法学习(力扣:1091. 二进制矩阵中的最短路径)
  7. Python3.x+pycharm+Anaconda中缩小打包的.exe体积的方法
  8. iis服务器怎么限制运行asp文件,Win2008 r2 IIS7.5制定目录禁止执行脚本的方法
  9. spring和mybatis结合做简单的增删查改系统_搭建后台系统权限系统的经验总结
  10. AcWing 798. 差分矩阵