机器学习数据顺序随机打乱:Python实现

采编:hyt15  来源:博客园  发布时间:2023-05-22 12:26:50 


(资料图)

本文介绍基于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格式的训练数据标签。但是经过这种方法,我们得到的DatasetsDataset类的数据,若是接下来需要带入input_fn还可以,如果想单独取出TrainXTrainY的话就比较麻烦。

因此,我们还可以直接在初始数据划分训练集与测试集时直接将数据打乱:

TrainData=MyData.sample(frac=TrainFrac,random_state=RandomSeed)TestData=MyData.drop(TrainData.index)

其中,MyData为初始全部数据,TrainDataTestData分别为划分后的训练集与测试集数据。

经过.sample()这一步骤,与原始数据的Index相比,实际上已经实现了TrainDataTestData的随机排列。

至此,大功告成。

关键词:

关闭
机器学习数据顺序随机打乱:Python实现
【环球新视野】香港最长寿组合温拿乐队宣布将解散 携手走过半个世纪!
焦点热讯:细节见人品,刘昊然90度鞠躬与前辈握手,周冬雨手足无措
全球快看点丨5.20票房创纪录,爱情片不敌“家人侠”
天上天下漫画总共有画_天上天下漫画
A股异动丨香飘飘大涨近9% 1-4月营业收入8.74亿元 同比增长43.4%
周冬雨刘昊然屈楚萧主演电影《燃冬》戛纳首映 名导是枝裕和现身捧场
高叶回复网友吐槽矛盾升级,被高叶回复的网友,觉得自己很委屈 资讯
当前报道:《浪姐4》金主力捧的4人浮出水面,人设和故事线出彩,美依礼芽不在其中
焦点快播:西安东站TOD助力!浐河岸边崛起“高铁东城”,未来趋势如何?
【天天时快讯】《人生之路》女性给命运的答卷
百事通!范丞丞的“尴尬”,让《跑男》节目组彻底被打脸
每日速递:华表奖阵容官宣,张译、吴京、沈腾、刘德华等数百位影人出席
葡萄酒甜的好还是不甜的好?-每日观点
陈志朋老婆是谁?陈志朋一家三口视频
每体:巴萨认为梅西回归每年可带来2.3亿欧营收,净利达1亿欧 全球热文
王菲与李亚鹏离婚的原因是什么?李亚鹏给王菲写的情书
李易峰PC是什么意思?李易峰bug什么意思?
5.15-5.21内地一周票房9.09亿环比大涨65.87% 《速度与激情10》5.42亿强势夺冠
罗志祥结婚了吗?罗志祥复出成功了吗?
世界短讯!LPR连续9个月不变!1年期为3.65%,5年期以上为4.3%
何猷君为什么会选择奚梦瑶?何猷君妈妈评价奚梦瑶
蓝天野子女家人介绍 蓝天野几个儿子几个女儿?
领略自然之美!电影频道5.22-5.29播出3部法国电影_当前讯息
于月仙有几任丈夫?于月仙的遗产分配