机器学习基础操作1-数据操作
数据操作-加载和预处理
0x01加载划分数据集
- 首先下载数据集
#一种通过keras下载
dataset = tf.keras.utils.get_file(origin='url',fname='name',untar=True)
#一种通过tensorflow_datasets加载mnist数据集
dataset = tfds.load("mnist", split=tfds.Split.TRAIN, as_supervised=True)
- 然后进行数据集的划分
- 按一定比例划分为训练集和测试集(保留法)
- 一般为划分为8-2 , 7-3, 6-4
- 交叉验证法(k折交叉验证)
- 我们把数据划分为k个子集,从1-k依次拿一个子集做测试集,其余做训练集,k次的平均正确率为最终结果
- 训练集,验证集,测试集三划分
- 从训练集中再划分一个验证集,从而判断模型过拟合还是欠拟合(注意:测试集不能参与训练)
- 按一定比例划分为训练集和测试集(保留法)
0x02打乱数据集
- 我们使用shuffle方法打乱数据集
原理:需要指定一个buffer_size元素填充缓冲区(大小一般和元素个数相等),buffer_size越大,打乱程度越大
然后每次训练都随机从缓冲区抽取元素
注意:
shuffle的顺序很重要,先shuffle再batch就是打乱一个batch中的内部元素顺序
先batch再shuffle就是打乱batch的顺序(不知道有啥用)
- repeat方法
repeat的功能是将整个数据重复多次,不设置次数就可以多次重复
一般顺序
ds.shuffler().batch().repeat()
[1,2,3,4].repeat(2) -> [1,2,3,4,1,2,3,4]
另外一个数据集常见的方法: map
map接受一个函数,Dataset所有元素都会当做这个函数的输入,返回值作为新的Dataset
例如:
#给每个元素加10
Dataset = Dataset.map(lambda x:x+10)
数据标记
- 为什么要进行数据标记
机器训练的模型建立在大量的高质量训练数据的基础上,但是这些数据产生的过程
非常昂贵,复杂,和耗时。 如今创建的大多数模型都需要人工进行标记数据,
从而使机器做出正确决策,为了应对这种挑战,可以利用机器学习模型自动标记数据,让标记更高效
首先由人类标记的原始数据训练用于标记数据的机器学习模型,如果置信度比较高,
就由它来标记数据,如果置信度较低,就继续学习
简单来讲:首先标记少量数据学习,生成置信度高的模型用于自动化数据标记

浙公网安备 33010602011771号