- Python机器学习实践
- 张建伟等
- 1195字
- 2023-07-17 19:56:35
1.2 机器学习相关概念
数据集(Data Set)即数据的集合,每一条单独的数据被称为样本(Sample)。对于每个样本,它通常具有一些属性(Attribute)或者特征(Feature),特征所具体取得值被称为特征值(Feature Value)。
例如,表1-1所示的西瓜数据集中,色泽、根蒂、纹理就是西瓜的特征,乌黑、青绿、浅白为特征“色泽”的特征值。
表1-1 西瓜数据集
训练集(Training Set)和测试集(Testing Set):在建立机器学习模型过程中,通常将数据集分为训练集和测试集。其中,训练集用于对模型参数进行训练,测试集用于对训练好的模型进行测试,验证模型的性能好坏,包括准确率、泛化能力。
验证集(Validation Set):用于在训练过程中检验模型的性能,以调整参数和超参数。
提示
验证集是为了使最终模型在测试集上测试之前对模型有一个初步的评价,根据评价结果以调整参数,当模型在验证集上表现不错时,最后在测试集上验证模型的最终性能。如果没有验证集,我们只能在最终的测试集上查看测试结果,而此时我们是不能再修改模型参数的,在测试集上验证只是查看模型的最终效果。而模型在训练出来后,根据训练集去调整参数,即使得到效果再好,模型也不一定会在测试集上表现最优。这种情况下,才需要划分出验证集。
评估(Assessment):在训练出算法模型后,为了验证算法模型的好坏,需要对该算法在数据集上根据评价指标进行测试,这个测试过程就是算法的评估。在不同领域,有不一样的评估指标。例如,在信息检索和推荐系统领域,通常使用准确率、召回率作为衡量算法好坏的指标。
模型(Model):模型是一种算法的表达,模型用于在海量数据中查找模式或进行预测。从数据中使用算法得到模型的过程称为学习(Learning)或训练(Training)。
过拟合(Overfitting):过拟合和欠拟合是模型在训练过程中的两种不同状态。过拟合是指模型在训练集上表现很好,但在测试集上却表现很差。模型对训练集“死记硬背”,没有理解数据背后的规律,泛化能力差。过拟合的原因主要是数据噪声太大、特征太多、模型太复杂等造成的,可通过清洗数据、减少模型参数,降低模型复杂度、增加惩罚因子(正则化)等方法加以解决。
欠拟合(Underfitting):模型在训练集上就表现很差,不能获得足够低的误差,无法学到数据背后的规律。欠拟合的原因主要是由于训练样本数量少、模型复杂度过低、参数还未收敛就停止循环等造成的,可通过增加样本数量、增加模型参数、提高模型复杂度、增加循环次数或改变学习率等方法加以解决。
正则化(Regularization):正则化就是在原始模型中引入正则项或惩罚项,以防止过拟合和提高模型泛化性能的一类方法的统称。
交叉验证(Cross Validation):就是通过各种组合切分方式,将数据集划分为不同的训练集和测试集,用训练集对模型进行训练,用测试集测试模型的好坏,由此得到的多个不同的训练集和测试集组合以验证模型的方式称为交叉验证。一般交叉验证用于数据不是很充分的情况下,或为了说明模型效果的稳定。有时,交叉验证也可用于模型选择。
欠拟合、过拟合、拟合示意图如图1-7所示。
图1-7 欠拟合、过拟合和拟合示意图