一文看懂机器学习,带你上手开发(值得收藏)
作者头像
  • ImaginationTech
  • 2020-03-11 10:14:47 4

导读

本文首先介绍什么是机器学习及其相关的基本概念,这是学习和理解机器学习的基础。根据学习方式的不同,机器学习可以分为监督学习、无监督学习、强化学习等多种类型,本文将详细探讨它们各自的特点和应用场景。接下来,本文将详细介绍机器学习应用开发的具体步骤,帮助读者清晰了解开发流程。最后,我们会回顾一篇关于集成学习的文章,探讨机器学习领域中最热门的研究方向之一——集成学习,以及XGBoost的应用情况。

什么是机器学习

近年来,机器学习成为业界炙手可热的话题之一。AlphaGo击败李世石的事件使人工智能和机器学习迅速风靡全球。机器学习实际上已经渗透到我们生活的各个角落。例如,电商平台根据用户的喜好推荐商品;Siri可以查询天气和播放音乐;打车软件帮助我们规划行程;外卖APP将订单分配给附近的骑手等。这些功能背后都离不开机器学习的支持。

机器学习领域的知名学者Tom M.Mitchell曾这样定义机器学习:“如果一个计算机程序在某个任务T上的性能P可以通过经验E来提升,那么这个程序已经对E进行了学习。”简单来说,机器学习是计算机通过经验学习并不断提高自身性能的过程。通常,这种经验是以数据的形式存在的,计算机程序从这些数据中学习。学习的关键在于模型算法,它可以学习已有数据并预测未来数据。

在许多情况下,人们很难从大量信息中提取有效信息。例如,想知道一个人是否会购买电影票,最直接的方法就是询问这个人,因为他的回答是最接近结果的特征。然而,如果无法直接与这个人沟通,可以向他的朋友询问,他们可能对此人更为了解。但是,对于一些场景,如电影院想知道顾客是否会购买电影票,他们拥有的数据可能只有顾客的性别、年龄、观影记录和消费记录等基本信息。在这种情况下,机器学习可以帮助将无序的数据转换成有用的信息,从而解决问题。

机器学习涵盖了计算机科学、统计学等多个学科,需要扎实的计算机和数学知识,以及对应用场景的深入了解。虽然许多人认为机器学习难度较高,但实际上它的入门门槛相对较低,学习曲线却较为陡峭。因此,学习机器学习需要耐心和毅力。

机器学习基本概念

假设我们有一批房屋数据,其中包括卧室数量、房屋面积等信息。每条记录称为样本,所有样本构成的数据集称为数据集。除了房价之外,其他信息如卧室数量、房屋面积等被称为特征。房价是需要预测的目标列,称为标签。并非所有数据集都包含标签,这决定了采用哪种类型的机器学习方法。

数据集通常分为训练集、验证集和测试集,三者互不重叠。训练集用于训练模型参数,验证集用于模型选择,测试集用于评估模型的泛化能力。

如果机器学习任务的预测目标是离散值,则称为分类任务。例如,垃圾邮件分类系统就是一个典型的二分类任务。如果类别有多种,则称为多分类任务,如预测电影类型。如果预测值是连续值,则称为回归任务,如预测房价。此外,还可以通过聚类发现数据的内在结构和隐藏模式。

机器学习类型

根据学习方式的不同,机器学习可分为监督学习、无监督学习、半监督学习和强化学习。

监督学习

监督学习是指有明确标签的学习方式。输入的数据样本包含一个明确的标签或结果。例如,购票预测系统中的“购票”和“未购票”。监督学习如同有一个指导员,指导员知道每个输入值对应的结果,并在模型学习过程中提供正确指导。监督学习的目的是寻找输入值与标签之间的规律。

无监督学习

与监督学习相反,无监督学习输入的数据样本不包含标签,只能在输入数据中找到其内在结构,发现数据中的隐藏模式。无监督学习最典型的应用是聚类。

半监督学习

半监督学习介于监督学习和无监督学习之间。训练数据中的一部分样本有标签,其他样本没有标签。半监督学习可以用于预测,模型需要先学习数据的内在结构,以获得更好的预测效果。

强化学习

强化学习是智能体采取不同的动作,通过与环境的交互不断获得奖励,从而最大化总奖励。监督学习中,数据标记的标签用于检验模型的对错,而强化学习直接利用交互数据反馈到模型,模型可以立即调整。

机器学习应用开发步骤

开发机器学习应用时,可以尝试不同的模型算法,灵活处理数据。以下是开发机器学习应用的经典步骤:

定义问题

在开发机器学习应用之前,首先要明确需要解决的问题。例如,处理员工收到大量垃圾邮件的问题,可以通过机器学习算法识别并过滤垃圾邮件。

数据采集

数据对于机器学习至关重要,数据采集是开发的基础。数据采集方法包括人工搜集、网络爬虫、传感器数据、API获取等。对于某些领域,可以直接采用公开数据集。

数据清洗

数据采集后,原始数据可能不规范,需要清洗。例如,去除重复数据、噪声数据,修正错误数据,将数据转换为所需的格式。

特征选择与处理

特征选择是从原始特征中挑选有用的特征,去除无关特征。可以通过人工选择或算法选择。此外,还需对特征进行处理,如标准化数值型特征,one-hot编码类别型特征。

训练模型

特征数据准备好后,选择合适的模型进行训练。监督学习通常将数据分为训练集和测试集,训练集用于训练模型参数,测试集用于测试模型精度。无监督学习则只需发现数据的内在结构。

模型评价与调优

无论监督学习还是无监督学习,训练结束后都需要对模型进行评价。监督学习可以通过测试集数据评价模型精度。无监督学习也需要相应的方法检验模型准确性。如果模型不满足要求,则需要调整、训练、再评价,直至模型达到标准。

模型应用

调优后的模型通常会以文件形式保存,以便应用时直接加载使用。加载模型文件,输入新样本特征数据,模型进行预测,输出最终结果。

关于作者

何龙,现就职于滴滴出行,XGBoost开源社区贡献者,专注于人工智能和机器学习领域,从底层算法原理到高层应用理论均有广泛研究。较早接触XGBoost,熟悉其应用开发,深入阅读源码,拥有丰富的项目开发经验。

本文节选自《深入理解XGBoost:高效机器学习算法与进阶》,经出版方授权发布。

    本文来源:图灵汇
责任编辑: : ImaginationTech
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文上手机器值得收藏开发学习
    下一篇