Spark机器学习进阶实战
上QQ阅读APP看书,第一时间看更新

3.1 分类模型概述

分类通常是指将事物分成不同的类别,在分类模型中,我们期望根据一组特征来判断事物类别,这些特征代表了物体、事件或上下文相关的属性。

根据类别标签的个数,可以将分类问题划分成二分类问题和多分类问题。例如在论坛中,给定用户和帖子信息,可以判断用户是否会对帖子点赞,点赞的情况对应于类别1(其他情况对应于类别0)。如果仅判断用户是否会对帖子点赞,该问题为二分类问题;如果需要具体判断用户对帖子点赞、点踩、有无互动操作,那么该问题属于多分类问题。

二分类是最简单的分类形式,如图3-1所示,其中样本的特征有两个维度,分别用横坐标X和纵坐标Y表示每一维度的值。通过训练分类模型,使用“x”代表正类,使用“●”代表负类,从而可以将二维空间的样本点正确分开。

图3-1 简单二分类示例

多分类相对二分类而言,分类不止两类。如图3-2所示是一个三分类的例子,符号“x”“●”“■”分别代表不同分类。

图3-2 三分类示例

分类是监督学习的一种形式,可以使用有标签的训练样本训练模型,通过输出结果监督被训练的模型。分类输出离散值,这是和回归问题的区别所在,生活中很多问题都可以转化为分类问题进行求解,如检测信用卡欺诈,对文字、图片、声音、视频等进行分类,对新闻、网页的内容标记类别,互联网业务中判断用户是否为活跃用户等。

在MLlib实现中,支持二分类的模型有SVM模型、逻辑回归、决策树、随机森林、梯度提升树和朴素贝叶斯,而支持多分类的模型有逻辑回归、决策树、随机森林和朴素贝叶斯等。