《机器学习高频面试题详解》1.6:朴素贝叶斯

点击最下面卡片链接就可以进入专栏,右上角有订阅选项,欢迎大家订阅~

前言

大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第1.6节:朴素贝叶斯算法。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~

目前这篇是试读,后续的文章需要订阅才能查看哦(每周一更/两更),专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

一、原理

1. 背景知识

在机器学习分类算法中,有判别方法和生成方法两大类。

大部分的分类算法都是判别方法,包括逻辑回归、KNN、决策树等,它们都是给定输入特征X,应该预测什么样的分类结果Y,即直接学习决策函数或者条件概率分布作为预测的模型,即判别模型。

而朴素贝叶斯则属于生成方法,学习输入特征X和输出结果的联合概率分布,然后求出后验概率分布作为预测的模型:,学习的是生成数据的机制,所以认为是生成模型。朴素贝叶斯算法认为后验概率可以由先验概率和样本数据得到,先验概率指的是所在领域的历史经验,但现实情况中难以获得先验概率,所以朴素贝叶斯算法干脆提前假设先验部分满足正态分布或beta分布等常见的分布模型。

假设输入样本为X=(x_1,x_2,...,x_m)Y_k表示分类结果为第K个类别,则贝叶斯公式如下:

在计算出所有类别的预测概率后,选择最大概率对应的类别作为预测结果。又因为对于所有的类别,上式的分母都是一致的,所以我们只需要计算分子即可:

y=arg max_{K}P(Y_K|X)=arg max_{K}P(X|Y_K)P(Y_K)

可以看出,朴素贝叶斯算法关键在于如何估计P(X|Y_K)P(Y_K)

这里应用极大似然估计法,P(Y_K)可以从训练集中估算出来:类别K在训练集中出现的频率;而条件概率分布则比较难求:P(X|Y_K)=P((x_1, x_2,...,x_m)|Y_K),其参数为指数级数量,为此,朴素贝叶斯对该分布作了条件独立性的假设,认为不同维度的特征对分类结果的影响是相互独立的,因此条件概率分布可以简化为如下形式:

P(X|Y_K)=\prod_{i=1}^{m}P(x_i|Y_K)

即只需对训练集类别为K的样本,统计第i维特征x_i出现的频率即可,这种形式大大简化了模型的计算量。

2. 算法流程

输入:假设训练集有N个样本,特征维度为m,则训练集可以表示为T=\{(X_1,Y_1),(X_2,Y_2),...,(X_N,Y_N)\},其中X_i=(x_1, x_2,...,x_m),x_i表示第i维的特征值,其取值范围为x_i\in \{ x_i^1,x_i^2,...,x_i^s \}。给定一个特定实例X

输出:实例X的预测类别。

1)对于每一种类别Y,计算其先验概率P(Y_K)=\frac{\sum_{j=1}^{N}{I(Y_j=Y_K)}}{N},其中I为指示函数;

2)对于每一种类别Y中的每一维特征x,依次计算其可能取值的条件概率P(x_i^s|Y_K)=\frac{\sum_{j=1}^{N}{I(x_j=x_i^s,Y_j=Y_K)}}{\sum_{j=1}^{N}{I(Y_j=Y_K)}}

3)对于给定的实例X,计算不同类别对应的预测概率,取概率最大的类别作为最终预测结果:y=arg max_{K}P(Y_K)\prod_{i=1}^{m}P(x_i|Y_K)

二、面试真题

1. 机器学习分类算法中,判别方法和生成方法有什么区别?

1)判别方法

判别方法直接学习决策函数或者条件概率分布作为预测的模型,简单来说就是给定样本特征,判别方法会直接计算出不同类别对应的预测概率。

比如猫狗识别任务,判别方法会从训练样本

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机器学习高频面试题详解 文章被收录于专栏

专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。

全部评论

相关推荐

今天 10:35
已编辑
西安科技大学 后端
点赞 评论 收藏
分享
评论
5
8
分享

创作者周榜

更多
牛客网
牛客企业服务