缩略图

一种基于机器学习的分类算法设计

作者

柳佳佳 王禹力 汪红桥

西南电子设备研究所 四川 成都 610036

摘要:决策树模型是一种通用的机器学习算法,适用于高维离散特征的分类问题,可以执行分类和回归任务。本文通过分析鸢尾花数据集的特征分布,建立了数据分类模型,依据算法模型进行分类和评估,并给出了针对分类问题的算法设计流程。

关键词:机器学习;数据分类;决策树

一、概述

机器学习是一门通过编程让计算机从数据中进行学习的科学和艺术。它使计算机能够从训练数据中“自学习”并随着时间的推移而改进,并且无需进行显式编程【1】。这种技术的核心是构建和使用算法模型,通过分析大量输入数据自动“学习”规律,并基于这些规律做出预测、分类、聚类或决策。机器学习是人工智能的核心,是实现计算机智能化的根本途径。

二、算法流程

机器学习的主要流程包括:

a)数据集准备。数据集是构建机器学习模型流程的起点。简单来说,数据集本质上是一个M*N矩阵,其中M代表列(特征),N代表行(样本)。

b)探索性的对数据进行分析。探索性数据分析是为了获取对数据的初步了解,分析数据,搞清楚数据的分布,强调数据的可视化,使分析者能一目了然看出数据隐含的规律,从而得到启发,帮助找到适合数据的模型。

c)数据预处理。数据预处理就是对数据进行清理、数据整理或普通数据处理。指对数据进行各种检查和校正过程,以纠正缺失值、拼写错误、使数值正常化/标准化、转换数据等。数据的质量将对机器学习算法模型的好坏产生很大的影响。因此,为了达到最好的机器学习模型质量,传统的机器学习算法流程中,很大一部分工作就是在对数据进行分析和处理。

d)数据分割。为了模拟新的、未见过的数据,对可用数据进行数据分割,从而将已经处理好的数据集分割成2部分,训练集和测试集。利用训练集建立预测模型,然后将训练和的模型用于测试集上进行预测。根据模型在测试集上的表现来选择最佳模型。

e)机器学习算法建模。机器学习算法建模主要分为特征选取、模型选取、参数调优3个步骤。从最初的大量特征中选择一个特征子集,根据任务需求选择合适的算法模型进行训练,并对机器学习算法进行参数调优,最终得到最佳的模型。

f)选择机器学习任务。监督学习中,比较常见的学习任务包括分类和回归。分类模型是将一组变量作为输入,并预测输出的类标签。回归模式,就是提取特征参数X与目标变量y之间的映射函数,y=f(X),f即为训练出的模型,并根据新的输入值X计算预估值y。

三、设计与实现

以鸢尾花数据集的分类问题为例进行算法设计,任务目标是创建一个分类器,通过鸢尾花样本的特征检测鸢尾花的品种。

1.数据集准备

鸢尾花数据集包含150个样本(如表1所示),每行数据包含每个样本的四个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度),分别来自三个不同品种(山鸢尾、变色鸢尾和维吉尼亚鸢尾)。

2.数据分析

根据数据集的四个特征,对样本进行二维可视化分布,如图1所示。分析下图3种鸢尾花的统计分布(分别为统计直方图、数据分布图、花萼散点图、花瓣散点图)可知,花瓣长度、花瓣宽度两个维度下3种品种的鸢尾花分布集中,与鸢尾花品种有很高的相关度。

3.数据分割

数据集分成两部分,一部分数据用于构建机器学习模型(即训练集),其余部分用来评估模型性能(即测试集)。使用scikit-learn中的train_test_split函数,随机打乱数据集并进行拆分,将75%的数据及对应的标签作为训练集,剩下25%的数据及标签作为测试集。

4.选择和训练模型

根据数据的可视化分析可知,利用花瓣和花萼的测量数据基本可以将三个类别区分开,可以选择合适的机器学习模型区分三种类别的鸢尾花。鸢尾花分类问题是一个有监督的分类问题,需要快速根据特征进行分类,且要求模型易于理解和解释,此类问题通常使用决策树模型【2】。决策树模型是一个非常强大的模型,它能够从数据中找到非常复杂的非线性关系,适用于高维离散特征的分类任务和回归任务,是一种通用的机器学算法【3】。

决策树算法的原理是尝试使用单个特征和阈值将训练集分为两个子集,搜索计算能够产生最纯子集的特征和阈值。一旦成功将训练集分为两部分,就会使用相同的逻辑将子集进行分割,以此类推,直到达到最大深度,或者找不到可减少不纯度的分割。使用scikit-learn中的DecisionTreeClassifier进行训练,构建生成的决策树如图2所示,图中可看出决策树优先根据花瓣宽度、花瓣长度进行分类,与步骤2数据分析结论吻合。

5.评估改进模型

通过对构建模型的评估,可以指导选择模型、微调模型参数、优化数据预处理等,进一步提高模型的性能指标。

通过对测试数据中的每朵鸢尾花进行预测,并将预测结果与测试数据的标签进行对比,计算预测正确的鸢尾花所占的比例,该比例即为决策树模型的性能指标。对已构建决策树模型,测试集的准确度约为0.97。也就是说,对于测试集中的鸢尾花,决策树模型的预测有97%是正确的。

6.执行机器学习任务

评估通过的模型就可以部署于生产环境,执行机器学习任务。同时为了使得模型不断进化,还需要定期重新训练,维持模型的性能。在鸢尾花分类问题中,对数据集之外的新样本数据,使用决策树模型进行分类预测,则预测结果将有97%的可信度。

四、展望

随着机器学习算法的不断完善和算力的逐步提高,机器学习将应用在计算机视觉、智能语音、自然语言处理、交通预测、产品推荐、自动驾驶等各个方面【4】。未来,随着人工智能的不断进步和应用场景的不断拓展,机器学习将改变人类的生活。

参考文献:

[1]叶梓.人工智能视域下机器学习应用与创新探索[J].信息与电脑,2019,031(22):98-100

[2]董广,王兴起.基于决策分类熵的决策树构造算法及应用[J].计算机应用,2009,029(11):3103-3106

[3]薄乾祯,陈志杰,汪权方.基于决策树分类的水稻干旱灾损评估[J].湖北大学学报(自然科学版),2021,043(2):155-162

[4]周旭.数据挖掘中机器学习的应用[J].电子技术与软件工程,2019,000(7):P.173-173