机器学习数据顺序随机打乱:Python实现
1.Python TensorFlow深度学习回归代码:DNNRegressor2.Python TensorFlow深度神经网络回归:keras.Sequential3.Python实现随机森林RF并对比自变量的重要性4.Python实现类别变量的独热编码(One-hot Encoding)5.MATLAB人工神经网络ANN代码6.MATLAB实现随机森林(RF)回归与自变量影响程度分析7.Python绘制神经网络模型图8.随机森林RF模型超参数的优化:Python实现9.无需代码绘制人工神经网络ANN模型结构图的方法
10.机器学习数据顺序随机打乱:Python实现
11.神经网络常见参数解释:epoch、batch、batch size、step、iteration12.SMOGN算法Python实现:解决回归分析中的数据不平衡13.MATLAB神经网络工具箱使用介绍14.SMOTE与SMOGN算法R语言代码15.tensorflow学习率指数衰减ExponentialDecay的参数介绍与使用方法16.部署CPU与GPU通用的tensorflow:Anaconda环境本文介绍基于Python语言,实现机器学习、深度学习等模型训练时,数据集打乱的具体操作。
1 为什么要打乱数据集
在机器学习中,如果不进行数据集的打乱,则可能导致模型在训练过程中出现具有“偏见”的情况,降低其泛化能力,从而降低训练精度。例如,如果我们做深度学习的分类,其中初始数据的前80%都是第一类,后20%都是第二类,那么如果我们不打乱数据,模型按照数据顺序依次加以训练,则在前面大部分数据中训练出来的结果都是第一类(即形成了惯性,模型认为这些数据只对应着第一类);而到后20%数据进行训练时,所得结果也往往全都为第一类;所以要打乱。
2 如何打乱
首先引入random
。
import random
2.1 数据特征与标签均为一维
DataIndex=[i for i in range(len(TrainX))]
random.shuffle(DataIndex)
TrainX=TrainX[DataIndex]
TrainY=TrainY[DataIndex]
其中,TrainX
为一维的训练数据特征,TrainY
为一维的训练数据标签。
2.2 数据特征为多维而标签为一维
Datasets=tf.data.Dataset.from_tensor_slices((dict(TrainX),TrainY))
Datasets=Datasets.shuffle(1000)
其中,TrainX
需要为多维DataFrame
格式的训练数据特征,TrainY
为一维Series
格式的训练数据标签。但是经过这种方法,我们得到的Datasets
为Dataset
类的数据,若是接下来需要带入input_fn
还可以,如果想单独取出TrainX
和TrainY
的话就比较麻烦。
因此,我们还可以直接在初始数据划分训练集与测试集时直接将数据打乱:
TrainData=MyData.sample(frac=TrainFrac,random_state=RandomSeed)
TestData=MyData.drop(TrainData.index)
其中,MyData
为初始全部数据,TrainData
与TestData
分别为划分后的训练集与测试集数据。
经过.sample()
这一步骤,与原始数据的Index
相比,实际上已经实现了TrainData
与TestData
的随机排列。
至此,大功告成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇