1.4 机器学习的一般步骤
机器学习专注于让机器从大量的数据中模拟人类思考和归纳总结的过程,获得计算模型并自动判断和推测相应的输出结果。机器学习的处理流程如图1-10所示。
图1-10 机器学习的一般流程
“数据决定了机器学习的上界,而模型和算法只是逼近这个上界。”这句话表明,数据在机器学习过程中的重要地位。即使你提出的模型和算法再好,如果没有高质量的数据,其效果也会非常差。在机器学习领域,为了比较不同算法的性能,通常会采用一些公开数据集去验证。通常,一些具有代表性的、大众经常会用到的公开数据集更具有代表性,这些数据集在数据过拟合、数据偏差、数值缺失等问题上也会处理得更好,数据处理的结果也更容易得到大家的认可。如果没有公开的数据集,那只好收集原始数据,再去一步一步进行加工、整理。
即使对于大众认可度比较高的代表性数据集,也会或多或少存在数据缺失、分布不均衡、存在异常数据等诸多数据不规范的问题。这就需要对收集到的数据进行预处理,包括数据的清洗、数据的转换、数据标准化、缺失值的处理、特征的提取、数据的降维等。这一系列的工程化活动,也被称为“特征工程”,这些活动都属于数据预处理。例如,如果要对邮件进行分类,即区分正常邮件还是垃圾邮件,需要先对邮件文本进行分词、去除停用词、特征权值计算、模型训练、模型测试和评估等阶段。
接下来,就可以选择合适的机器学习模型训练数据了。常见的机器学习模型有很多,每个模型都有自己的适用场景,选择什么模型进行训练呢?首先,我们根据要处理的数据有没有标签来确定选择监督学习模型还是非监督学习模型;其次,根据预测值是离散的还是连续的,确定采用分类问题算法还是回归问题算法。在选择模型时,通常会比较不同模型训练的结果,优先考虑性能最佳的。
在完成模型训练后,就需要利用该模型在测试集上进行测试,验证该模型的效果。为了评价模型的好坏,不同领域针对不同问题有相应的评估方法和指标。例如,在信息检索领域,通常采用查准率、召回率等指标来评价模型的好坏;在推荐系统领域,有推荐的准确率、多样性和覆盖率等评价指标。此外,针对小数据集,还可以采用交叉验证来保证模型结果的可靠性。针对欠拟合和过拟合问题,可通过对模型进行正则化等策略进行缓解。