机器学习:数据的获取
1.2数据的获取(发现或整合一个外部数据丶生成数据)
获取数据的三种途径:
1. 识别现有数据集Identify existing datasets:看公司内部或公开渠道已经有哪些数据可以用
2. 找基准数据集Find benchmark datasets :用标准数据集来“验证新想法/新算法”的效果 测试新的超参数调优算法→用一组小到中等规模的多样化数据集
测试大型深度神经网络→用大规模数据集
3. 收集新数据Collect new data:当现有数据不够时,主动去采集
三种不同的数据集:
类型 | 优点(Pros) | 缺点(Cons) |
学术数据集 | 干净、难度适中 | 选择有限、过于简化、通常规模小 |
竞赛数据集 | 更接近真实的ML应用 | 仍然经过简化,且只覆盖热门话题 |
原始数据 | 灵活性极高 | 需要大量精力来处理 |
学术界用的"干净数据集"和工业界的"原始数据"是两回事。 在学校做实验可以用现成的benchmark,但进了公司,大部分时间都在"洗数据",而且这不仅是技术活,还涉及法律、隐私、跨部门协作。
数据整合:
数据整合 = 把多个数据源的数据合并成一个连贯的数据集
怎么关联:通过"键"(Keys)
用实体ID作为"连接键"把不同表Join在一起
Inner Join只保留两个表都有的记录(交集)
Left Join保留左表全部记录,右表没有就填NULL
可能出现的问题:
识别ID:不同系统对同一个实体的ID可能不一样
缺失行:某些记录在部分表中不存在
冗余列:多个表有重复信息,需要去重
值冲突:同一个字段在不同表中数值不一致
生成数据的两种方法:
1. 生成合成数据(Generate synthetic data)
2. 数据增强(Data augmentations):在现有数据上做变换,"变出"更多训练样本