机器学习基础操作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)

数据标记

  • 为什么要进行数据标记

机器训练的模型建立在大量的高质量训练数据的基础上,但是这些数据产生的过程
非常昂贵,复杂,和耗时。 如今创建的大多数模型都需要人工进行标记数据,
从而使机器做出正确决策,为了应对这种挑战,可以利用机器学习模型自动标记数据,让标记更高效

首先由人类标记的原始数据训练用于标记数据的机器学习模型,如果置信度比较高,
就由它来标记数据,如果置信度较低,就继续学习


简单来讲:首先标记少量数据学习,生成置信度高的模型用于自动化数据标记


posted @ 2021-11-08 11:07  泽小六不吃糖  阅读(88)  评论(0)    收藏  举报