数据 + 算法 => 模型
将数据使用某种算法进行运算的到模型,这个运算的过程被称作训练或者学习。
构建模型的步骤:
Step-1:数据准备。
Step-1.1 数据预处理:收集数据、清洗数据、标注数据。
Step-1.2 构建数据的向量空间模型(将文本、图片、音频、视频等格式的数据转换为向量)。
Step-1.3 将构建好向量空间模型的数据分为训练集、验证集和测试集
Step-2:训练——将训练集输入给训练程序,进行运算。训练程序的核心是算法,所有输入的向量化数据都会按该训练程序所依据的算法进行运算。训练程序输出的结果,就是模型
Step-2.1: 编写训练程序。
Step-2.1.1: 选择模型类型;(how?)
Step-2.1.2: 选择优化算法(how?)
Step-2.1.3: 根据模型类型和算法编写程序。
Step-2.2: 训练 -> 获得临时模型。
Step-2.3: 在训练集上运行临时模型,获得训练集预测结果
Step-2.4: 在验证集上运行临时模型,获得验证集预测结果
Step-2.5: 综合参照 Step-2.3 和 Step-2.4 的预测结果,改进模型
Step-2.6: Step-2.2 到 Step-2.5 反复迭代,直至获得让我们满意,或者已经无法继续优化的模型
Step-3:测试——将测试集数据输入给训练获得的模型,得到预测结果;再将预测结果与这些数据原本预期的结果进行比较。
训练集(Train Set)
用来做训练的数据集合
验证集(Validation Set)
在训练的过程中,每个训练轮次结束后用来验证当前模型性能,为进一步优化模型提供参考的数据的集合。
(Test Set)
用来测试的数据的集合,用于检验最终得出的模型的性能。
每个集合都应当是独立的,和另外两个没有重叠。
训练集是训练过程的基础,而验证和测试集则是在不同阶段用来评价训练结果的。验证集是中间测试,测试集是最终测试。
三者的比例可以是训练集:验证集:测试集=2:1:1,也可以是7:1:2。
改进模型
模型由数据和算法得来,所以也要从这两个方面改进
1.提高数据质量
大量的高质量训练数据,是提高模型质量的最有效手段。
怎么提高数据质量呢?
对数据进行归一化(Normalization,又译作正规化、标准化)等操作
采用 Bootstrap 等采样方法处理有限的训练/测试数据,以达到更好的运算效果。
根据业务进行特征选取:从业务角度区分输入数据包含的特征,并理解这些特征对结果的贡献
2.调参
什么是超参数?
超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。
大家已经知道,我们训练模型的目的就是为了得到模型对应公式中的若干参数。这些参数是训练过程的输出,并不需要我们来调。
我们需要调整的是超参数