数据标准化常见问题:对整个数据集数据标准化后再划分训练集、测试集和先对训练级标准化再将规则用于测试集有什么区别(Python实现)

       在数据分析与挖掘、算法建模的都会用到数据标准化。数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

       但是经常会遇到一个问题:

       方式一:先对整个数据集数据标准化后再划分训练集、测试集

       方式二:先对训练级标准化再将规则用于测试集

       为什么这么做?这两种方式有什么区别?

       如果是做案例类学习研究,由于数据量是固定的,其实这两种方式不会有太大的区别;但是在实际的业务应用中,第二种方式还是会比第一种方式更可靠,因为会有实时的数据集进来应用模型,而这时的数据处理规则仍然采用建模前的规则会有一定的容错率。

       可以思考一下:

       第一种方式,先对整个数据集进行标准化之后,假设标准化规则的最大值为100,最小值为1,使数据的最大值为1,最小值为0.05,再将其划分为训练集和测试集,此时训练集或者测试集是同一个规则。

       第二种方式:先对训练级标准化再将规则用于测试集,本身训练集和测试集的极值(最大值,最小值)会不同,例如训练集最大值为100,标准化之后为1,而测试集最大值为200,按训练集的标准化规则为1.5,而如果用测试集的标准化规则就会为1。但此时的模型会将1看做100,而不是200,会造成误差,并且有实时数据来应用模型,采用训练集的标准化规则,更适合于模型。

from sklearn.model_selection import train_test_split
data_tr1,data_te1,target_tr,target_te = train_test_split(media_rfm.iloc[:,3:9],media_rfm['class'],test_size=0.2,random_state=10)
from sklearn.preprocessing import StandardScaler
stdScale = StandardScaler().fit(data_tr1) ## 生成规则
data_tr = stdScale.transform(data_tr1) ## 将规则应用于训练集
data_te = stdScale.transform(data_te1) ## 将规则应用于测试集

 

文章未经博主同意,禁止转载!

 

  • 31
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: 好的,我会用中文回答你的问题。 MNIST是一个用来训练和测试手写数字识别模型的数据集。它包含了60,000个训练数据和10,000个测试数据,每个数据都是28*28像素的手写数字图片和对应的数字标签。 训练MNIST数据集的代码的基本流程如下: 1. 导入必要的库,包括TensorFlow和MNIST数据集的加载器。 2. 加载MNIST数据集。这一步会将数据集的图片和标签加载到内存中。 3. 定义模型。这一步可以使用TensorFlow中的各种函数和层来构建模型的架构。 4. 定义损失函数和优化器。在训练过程中,模型会根据损失函数来调整参数,使得模型的预测结果越来越准确。 5. 训练模型。在训练过程中,模型会对训练数据进行预测,并使用优化器来调整参数,使得损失函数的值越来越小。 6. 评估模型。使用测试数据对模型进行评估,看看模型在测试数据上的表现如何。 7. 部署模型。将训练好的模型部署到线上环境中, ### 回答2: 要成功地训练并部署MNIST数据集的代码,需要经过以下步骤: 1. 数据准备:首,需要获取MNIST数据集,该数据集包含了60000个手写数字的图像和对应的标签,可以从官方网站或者其他开源资源下载。将数据集划分用于训练训练集用于评估的测试集。 2. 构建模型:使用一个合适的深度学习框架,如TensorFlow,构建一个适当的模型。对于MNIST数据集,可以使用卷积神经网络(CNN)或者其他适当的模型结构。 3. 训练模型:使用训练集对模型进行训练。在每个训练步骤中,将一批图像输入模型进行预测,并计算预测结果与真实标签之间的损失。然后使用反向传播算法来更新模型的权重,以最小化损失函数。 4. 评估模型:使用测试集训练好的模型进行评估。将测试集的图像输入到模型中进行预测,然后与真实标签进行比较,计算模型的准确率和其他评估指标。 5. 模型部署:将训练好的模型部署到实际应用中。可以将模型保存为一个文件,然后在新的环境中加载它,并使用新的图像进行预测。 在整个过程中,可以使用各种工具和库来方便地进行数据处理、模型构建、训练和部署,如Python编程语言、TensorFlow深度学习框架等。此外,可以通过参考开源代码和文档,结合自己的理解和实践进行调试和优化,最终实现MNIST数据集代码的训练和部署成功。 ### 回答3: bhel28@163.com的MNIST数据集训练和部署成功是一个相对复杂且需要一些步骤的过程。下面是一个大致的步骤: 1. 数据准备:首,需要从MNIST数据集中获取训练集测试集数据。MNIST是一个手写数字图像数据集,包含大量的手写数字图片和对应的标签。可以使用Python库(如tensorflow)来下载和加载这些数据。 2. 数据预处理:在训练之前,需要对数据进行预处理。这可能包括将图像转换为灰度图像、调整图像大小、进行标准化等操作。这些预处理步骤有助于提高模型的准确性和性能。 3. 模型选择与训练:选择适合的模型架构是很关键的,可以选择使用卷积神经网络(CNN)等深度学习模型。在训练之前,需要将训练集数据拆分为训练集和验证集,用于评估模型性能。使用训练集训练模型,通过反向传播算法调整模型的权重和偏置,以最小化损失函数。 4. 模型评估与调优:在训练过程中,可以定期评估模型的表现并进行调优。可以使用验证集数据来评估模型的准确性和损失值,并根据需要修改模型的超参数(如学习率、批量大小等)。 5. 模型部署:在训练和调优结束后,可以使用测试集数据来评估模型的最终性能。若结果满意,可以将模型部署到实际应用中。部署可以通过将模型导出为可执行文件、使用轻量框架(如Tensorflow Lite)进行部署,或将模型集成到其他应用程序或设备中实现。 总之,bhel28@163.com要成功训练和部署MNIST数据集的代码,需要通过数据准备、数据预处理、模型选择与训练、模型评估与调优等步骤来完成。这些步骤需要使用合适的库和工具,并根据需要进行调整和修改,以达到预期的结果和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值