1. 熟悉业务,确定模型的输入输出 2. 根据输入构建数据集
3. 根据数据特点,选择不同的算法来训练模型
特征与特征之间相互独立 - 机器学习 - 全连接网络 有前后依赖 - 卷积网络 - RNN 有区域/局部特征 - 卷积网络
4. 模型评估:评价与优化
- 数据方向,更好的处理,更好的数据 - 模型方向,更优的算法,更好的参数 数据确定了规律的上限,模型在数据的基础上去找规律 数据中就没有要找的规律,模型再好也没用; 好的模型可以逼近数据中规律的上限 项目模型的上限由数据集决定,换不同的模型只是逼近这个上限,不会超越
数据才是核心,才是最重要的
对于一个业务的数据,从不同的维度分析,展现为线性向量 如果能做到不重不漏, 一个简单的全连接就可以解决问题了
熟悉业务
业务场景描述, 通常由业务人员提供纯业务需求, 由开发人员业务对应的数据或库表 开发人员熟悉业务时,基本全由开发提供
了解业务需求后,确定模型的输入与输出
输入 - 业务/开发 提供的一个二维数据表,可能是csv或者数据库中的表 输出 - 一组数 - 通常是原库表一行数据对应一个数 给一组数据,期望得到一个数 给n组数据,期望得到n个数 房价预测,给一个具体房子的信息,期望得到房子的价格
原始数据:业务/开发 提供的数据 特征空间:模型计算输入的数据 输出空间:模型计算输出的数据 业务空间:业务/开发 期望模型输出的结果 构建数据集 - 完成 原始数据 -- 特征空间 的转化,即将业务数据转化为 模型需要的特征向量,批次矩阵 - 这一步也叫特征工程 模型设计 - 设计一个模型,完成 特征空间 -- 输出空间 的转化 - 分类问题,输出空间,通常是标签所在one hot编码的空间 业务空间 - 具有业务含义的数据空间 - 可能是对,错,成立,不成立,0,1,A类,B类,C类...或者一个概率值等 - 比如,疾病预测就是 异常/正常 - 也有可能直接对接开发,模型输出结果要转化为开发想要的一个值 完成 输出空间 -- 业务空间 的转换后,就大致构建了整体流程
特征分析提取
特征分析提取 - 从抽象的事物/描述/数据中,提取能够代表该事物的类别信息 - 不同的类别尽量不重复不交叉,即最好相互独立,越全越好 - 最初的时候,尽量多提一些,最后再进行筛选/过滤 比如买水果,用一组什么样的指标衡量一个水果: 色泽,口感,价格,营养,形状,距离,时间,季节,... 这些指标大致决定了你是否愿意去买一些水果, 这些指标体系构建的越全,越好,越完善,预测的就越准确
度量,量化
将业务维度转化为数字,数字化的过程 - 离散量 - 连续量 数字化 - 如果需求不是数字,那么第一步先需要数字化 - 图像,音视频,文本...不管是什么,先转化为数字 离散数据 - 类别数据通常是离散的 - 比如,男,女,正,反,就是离散量 - 通常使用 zero-index 索引编码,比如,正-0,反-1 连续数据 - 连接的数据,比如房价,距离,面积等
数据标注
每一条原始数据 都与一个数值/类别对应 比如是否愿意买水果:愿意,不愿意 愿意,还是 不愿意 是业务需求,人的需求, 业务只提供了两个类别,但你经过分析,发现一个现象: 有时,意愿不那么清晰,谈不上愿意还是不愿意, 针对这个情况,你可以一个类别:随意 再比如,疾病的判断,比如检测是否得新冠,得就是得了,没得就是没得,不存在中间结果 但实际结果是通常概率判断的,90%就算你得了,低于90%算你没得 但问题在于,80%-90%之间的情况,有不少也是得了新冠的, 那么就可以打破原来:得,不得 分类标准,再增加一类:疑似 这一类别的增加,可以让人明白,这个结果是擦边球,还是泾渭分明 说这些,是为了说明深入了解业务情况的重要性,不要把自己完全束缚于既定标准/规则之下 - 这个道理同样适用于特征分析
建立指标体系的三大模块
特征提取:业务分析,收集原始数据,量化,转化为特征向量 标签:每条数据对应一个数值/类别 这个过程也叫,特征工程:feature engineering
机器学习
一个样本用一个向量表示,设向量的维数为C,即特征个数为C 全体数据集shape为 [B,C]
深度学习
深度学习pytorch框架,卷积 文本数据shape通常为[B,C,L] 图像数据shape通常为[B,C,W,H],本质上还是将[W,H] -- [L], 然后还是走[B,C,L]的计算方式 此时,将机器学习[B,C]格式的数据输入到深度模型时,就需要转换一下shape [B,C] -- [B,C,1]
每个L都是一个维数为C的向量,明白这一点后,调用不同的模型时, 比如,RNN,将L的维度放在第二位,[B,L,C] RNN类型的模型非常看重 样本/元素 之间的顺序,就是比较看重L 此时,将机器学习[B,C]格式的数据输入到深度模型时,就需要转换一下shape [B,C] -- [B,1,C]
总结
数据shape 主要看使用的是什么模型 因为数据会作为模型的参数传入
在原始数据量大且高度重复时,抽样可降低计算量,精度受影响程度要视情况而定 若数据量少,或者重复数据不多时,不抽样