APP下载

机器学习案例化教学方法研究

2021-02-27陈亚睿

电脑与电信 2021年11期
关键词:机器案例预测

杨 光 陈亚睿

(防灾科技学院,河北 廊坊 065201)

1 引言

在大数据和人工智能背景下,数据正以惊人的速度产出并渗透到各行各业中,成为重要的生产要素[1]。机器学习技术作为数据分析的主要技术手段之一,作为人才市场的主要需求之一,成为当前学习和研究的热点,是计算机和信息处理相关专业本科和研究生人才培养的重要方面[2]。

机器学习课程的学习需要有统计、线性代数等数学基础,理论知识相对比较抽象,不易理解,并且知识点相对比较零散。学生在学习过程中容易陷入一个方法中,很难准确掌握整体知识脉络,导致学习到的知识难以应用于实际问题的解决,严重影响了学生的应用创新能力[3-4]。针对上述问题,本文拟在OBE-CDIO教育理念指导下,结合我校防灾特色,从实际地震灾害数据出发,设计机器学习各阶段处理的综合案例,以提问式、启发式等教学方法[5],在体系化讲解理论知识的同时,引导学生自主完成算法的编写和调优,实现理论知识和算法实验的相互验证,不断提升学生对理论知识的理解和实践动手能力。

2 教学设计

本文采用Kaggle竞赛中的Significant Earthquakes:1965-2016数据集设计教学案例[6],将机器学习的数据预处理、模型选择、策略定义、算法设计、算法实现和算法测试调优等内容融合成为一个知识体系,进行讲解与实验。该数据集包含23412条从1965至2016年发生的、大于5.5级的地震信息样本数据,包括地震发生的时间、经纬度位置、震级和深度等21个维度特征,其中有16个特征的数据类型是字符串,并且某些特征存在特征值大量为空的情况,该数据集的典型字段示例如表1所示。

表1 数据集典型字段示例

教学过程中,以启发式教学为主,首先通过字符串数据、时间数据如何参与运算,引出数据预处理的相关理论知识,并在深入介绍特征编码、标准化等方法原理的基础上,讲解算法实现步骤,并在该数据集上进行实验测试与参数调整。然后,通过地震震源深度预测和地震震级分类,引出机器学习中回归和分类的概念,典型机器学习方法如线性模型、神经网络、支持向量机和贝叶斯等的基本原理,以及算法的设计与实现。通过如何选择最优的机器学习方法实现上面的预测和分类问题,引出性能度量典型方法,并通过不断对实现的典型方法进行比较分析,讲解典型的性能度量方法和算法调优的一般步骤。最后,通过性能度量方法进一步验证各类方法的优缺点和适用的场景。

以支持向量机(SVM)方法为例,在教学过程中,通过提问“什么样的模型是最优线性模型,如何在一个学习训练过程内找到最优的线性模型?”,引出SVM的基本原理。针对该原理详细介绍SVM中间隔、支持向量以及损失函数的定义,并讲解最优SVM模型的求解过程。将模型求解算法用Python语言实现,并在“地震震源深度预测问题”上进行实验分析,发现当采用最基本的SVM方法解决该预测问题时,效果很差、准确度很低。通过提问“该方法的准确很低,是不是说明这个问题的假设空间不应该是线性空间,或者是不是当前的线性空间维度太低?”,引出SVM方法中的核函数方法,详细介绍其基本原理和典型的核函数,并通过适当的理论练习题锻炼大家对核函数的理解。再通过算法实现和实验结果分析,迭代式地扩展理论知识和算法实现以及模型优化。从而,在理论与实验分析交替过程中,使学生更加准确地掌握方法的原理与意义,并能够在解决实际问题中把握基本的模型选择和模型调整方向与方法。

3 案例设计与应用

本文中的案例是在Windows10操作系统,Python3.6环境下进行的设计与实现。本文的综合案例主要包括数据预处理、回归方法、分类方法和方法度量四个主要内容。

在课程开始阶段,为了实现各字段数据能够参与计算,首先需要对于空值字段要进行缺失值处理,对于时间数据需要转化为以某一个时间点为基准的毫秒数据,对于地震震级类别等字符串数据进行特征编码等。因此,为了保证各个特征数据能够参与运算,引出了数据预处理的概念,依据该数据集讲解数据预处理典型方法的基本原理与思路,并基于scikit-learn等第三方库实现。该部分内容尽管不是机器学习的重点内容,但是对机器模型方法的准确性有重要影响,因此在教学过程中也需要着重讲解与实验。

在数据预处理后,选取有效的20000条数据构建数据集,并按照8:2比例将数据集划分为训练集和测试集。以如何预测地震震源深度这个回归问题为引,让同学们通过观察这些数据后,人为地、简单预测震源深度的可能值。在此基础上,归纳总结学习的步骤和过程,然后由浅入深地讲解线性模型、神经网络和随机森林等理论知识,并在每一个方法讲解之后进行实验,判断预测的准确性,从而进一步引出预测问题的性能度量准则。

在第三方库的基础上,以综合案例中SVM模型代码为例,使用时间戳、经度、纬度和地震震级四个特征进行震源深度预测。通过下面的代码可以实现SVM模型的训练和预测,以及基于R2方法的性能评估。

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn import svm

data=pd.read_csv("./database.csv")#读入数据

#进行数据预处理,训练集特征为x_train,

#训练集标签为y_train,测试集特征为x_test,

#测试集标签为y_test

regr=svm.SVR(kernel=‘rbf’,C=1.0)

regr.fit(x_train,y_train)

regr.predict(x_test,y_test)

regr.score(x_train,y_train)

regr.score(x_test,y_test)

其中,模型中的核函数选择高斯核函数,惩罚参数的值为1.0。在训练集和测试集上得到的R2评估结果分别为-0.1323和-0.2451,即使用该方法进行预测的准确度没有直接用平均值直接代替预测结果来得好。

那么是什么原因导致的上述问题呢,应该如何调整模型呢?首先,引导学生利用所学的理论知识,自主思考上述结果可能产生的原因,然后针对每个原因找出相应的解决方法,并逐个进行代码调整。

通过训练集和测试集上的测试结果可以看出,当前训练得到的模型明显是欠拟合了。通过所学的理论知识指导可以从增大训练数据集、调整模型复杂度、调大惩罚参数、进行交叉验证等多个角度进行优化。因此,在明确的问题原因和大致的解决思路基础上,指导学生逐一实现模型的参数调整和模型优化。例如,当惩罚参数C设置为100后,其在训练集和测试集上的R2测试结果可以分别达到了0.8792和0.8203。通过该参数调整的结果,可以看出惩罚参数C对于SVM模型准确度的影响比较大,并且有通过调大惩罚参数C值可以在一定程度上解决欠拟合问题这个规律,从而有效地验证了所学的理论知识,能够强化学生对于SVM方法相关知识的理解和记忆。

图1(a)是使用时间戳、经度、纬度和地震震级四个特征进行震源深度预测的结果(使用R2度量),图1(b)是使用经度、纬度和地震震级三个特征实现震源深度预测的结果。从结果中可以看出,(1)对于该数据集数据,线性模型等方法的准确度明显低于随机森林的方法;(2)某些特征在一些问题中不一定适用,比如在该问题中时间戳明显不适用于该问题的预测,因此数据选择非常重要,从而引出数据选择的内容。

图1 典型机器学习方法的震源深度测试结果

在上述讲解和实验回归问题的基础上,进一步讲解分类问题的解决思路和具体实现步骤。首先,定义分类任务,并构建分类数据集。按照地震震级将地震强度标记为中震和大震两个等级(其中地震强度小于等于7级的为中震,其他情况为大震),根据其他20维特征实现对地震震级的分类。然后,讲解回归过程中学习的方法(如线性模型等)在分类问题中如何构建损失函数和性能评估,并重点讲解贝叶斯、K最近邻等方法的基本原理和实现过程。最后,对分类问题的性能度量方法进行介绍,并通过不断比较不同方法的优劣,选择当前最好的模型,并在该模型的基础上,通过调整典型的超参数如学习率等实现算法调优。该阶段的案例设计结果与回归问题案例设计结果比较相似,主要不同点在于模型的评估方法,本文中不再赘述。

在课程最后,分析总结机器学习的基本步骤、常见问题及解决方法,并有针对性地对过拟合、欠拟合问题的解决思路和处理方法进行强化,从而提高学生解决实际问题的能力。

本文方法应用过程中,通过在实际案例中查找问题及其产生的原因,能够在不断巩固基础知识的基础上,强化学生的动手能力和解决实际问题的能力,并且增强对难点知识的消化理解。同时,在教学过程中也充分发挥学生的主观能动性,除了上述设计的典型案例之外,鼓励学生依据现有或者感兴趣的内容构建数据集,进行学习和测试。在课程教学期间,部分学生自行构建了地震预测数据集,并开展了地震预测相关的实验,将所学知识进行了灵活应用,得到了较好的模型训练结果,积累了比较丰富的训练和调优经验。

4 结语

本文案例化教学方法综合诠释了机器学习的知识体系和学习过程。通过对地震数据集的分析研究,使得学生掌握了如何利用已有知识,从大量的数据中获取、学习到有价值的信息。该案例化教学方法能够有效地将理论知识进行梳理、整合,具有一定的深度和综合性。通过对案例中各个阶段算法的实现与调试优化,学生可以有效增强对所学理论知识的理解,提升在实际问题中选择合适的方法、解决实际问题的能力,为将来进一步深造和进入工作岗位奠定了良好的基础。

猜你喜欢

机器案例预测
无可预测
机器狗
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
机器狗
案例4 奔跑吧,少年!
随机变量分布及统计案例拔高卷
未来机器城
发生在你我身边的那些治超案例
不必预测未来,只需把握现在