Latex期末报告——朴素贝叶斯法

在这里插入图片描述

\documentclass[11pt,a4paper]{article}
\usepackage{CJK,CJKnumb}
\usepackage{color}      % 支持彩色
\usepackage{indentfirst}        %首行缩进宏包
\usepackage{latexsym,bm}        % 处理数学公式中和黑斜体的宏包
\usepackage{amsmath,amssymb}    % AMSLaTeX宏包 用来排出更加漂亮的公式
\usepackage{graphicx,graphics,xcolor}
\usepackage{titlesec}
\usepackage{float}
%===================== 重定义字体、字号命令 =============================%
\newcommand{\song}{\CJKfamily{song}}    % 宋体   (Windows自带simsun.ttf)
\newcommand{\fs}{\CJKfamily{fs}}        % 仿宋体 (Windows自带simfs.ttf)
\newcommand{\kai}{\CJKfamily{kai}}      % 楷体   (Windows自带simkai.ttf)
\newcommand{\hei}{\CJKfamily{hei}}      % 黑体   (Windows自带simhei.ttf)
\newcommand{\li}{\CJKfamily{li}}        % 隶书   (Windows自带simli.ttf)
\newcommand{\chuhao}{\fontsize{42pt}{\baselineskip}\selectfont}     % 字号设置
\newcommand{\xiaochuhao}{\fontsize{36pt}{\baselineskip}\selectfont} % 字号设置
\newcommand{\yihao}{\fontsize{28pt}{\baselineskip}\selectfont}      % 字号设置
\newcommand{\erhao}{\fontsize{21pt}{\baselineskip}\selectfont}      % 字号设置
\newcommand{\xiaoerhao}{\fontsize{18pt}{\baselineskip}\selectfont}  % 字号设置
\newcommand{\sanhao}{\fontsize{15.75pt}{\baselineskip}\selectfont}  % 字号设置
\newcommand{\sihao}{\fontsize{14pt}{\baselineskip}\selectfont}      % 字号设置
\newcommand{\xiaosihao}{\fontsize{12pt}{14pt}\selectfont}  % 字号设置
\newcommand{\wuhao}{\fontsize{10.5pt}{12.6pt}\selectfont}    % 字号设置

%===================================================================%
%                         各种距离与缩进
%===================================================================%
%-------------------- 用于中文段落缩进 和正文版式 ------------------%
\setlength{\textwidth}{14.5cm}
\setlength{\textheight}{21cm}
\setlength{\hoffset}{0cm}
\setlength{\voffset}{0cm}
\setlength{\parindent}{2em}                 % 首行两个汉字的缩进量
\setlength{\parskip}{3pt plus1pt minus1pt}  % 段落之间的竖直距离
\renewcommand{\baselinestretch}{1.2}        % 定义行距

%---------------------------- 数学公式设置 ------------------------------%
\setlength{\abovedisplayskip}{2pt plus1pt minus1pt}     %公式前的距离
\setlength{\belowdisplayskip}{6pt plus1pt minus1pt}     %公式后面的距离
\setlength{\arraycolsep}{2pt}   %在一个array中列之间的空白长度, 因为原来的太宽了

\allowdisplaybreaks[4]  % \eqnarray如果很长,影响分栏、换行和分页
                        %(整块挪动,造成页面空白),可以设置成为自动调整模式

%---------------------- 定义章节的编号格式 --------------------------%
\CJKtilde   %用于解决英文字母和汉字的间距问题。例如:变量~$x$~ 的值。
\renewcommand{\CJKglue}{\hskip 0pt plus 0.08\baselineskip}
            %它于必要时在汉字之间插入一个附加的空隙,以解决行的超长问题。


\begin{document}
\begin{CJK*}{GBK}{song}
\CJKtilde\CJKindent

%======================= 标题名称中文化 ============================%
\renewcommand\abstractname{\hei 摘\ 要}
\renewcommand\refname{\hei 参考文献}
\renewcommand\figurename{\hei 图}
\renewcommand\tablename{\hei 表}
\newtheorem{suanfa}{\hei 算法~}[section]
\newtheorem{lizi}{\hei 例~}[section]
\xiaosihao
\begin{titlepage}
\title{朴素贝叶斯法}
\author{}
\date{}
\maketitle % 生成题头
\end{titlepage}

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练集数据,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y,朴素贝叶斯法实现简单,学习和预测效率都很高,是一种常用的方法。

\begin{figure}[H]
\begin{center}
  \includegraphics[width=0.8\textwidth]{qimo.png}
\end{center}
\end{figure}

\section{朴素贝叶斯的学习与分类}
\subsection{基本方法}
设输入空间$\chi\subseteq R^{n}$为$n$维向量的集合,输出空间为类标记集合$\Upsilon=\{c_1,c_2,\cdots,c_K\}$。输入为特征向量$x\in\chi$,输出为类标记$y\in\Upsilon$。$X$是定义在输入空间$\chi$上的随机向量,$Y$是定义在输出空间$\Upsilon$上的随机变量。$P(X,Y)$是$X$和$Y$的联合概率分布。训练数据集$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}$由$P(X,Y)$独立同分布产生。

朴素贝叶斯通过训练数据集学习联合概率分布$P(X,Y)$。具体地,学习一下先验概率分布及条件概率分布。先验概率分布
\begin{equation}
P(Y=c_k),k=1,2,\cdots,K
\end{equation}
条件概率分布
\begin{equation}
P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)
\end{equation}
于是学习到联合概率分布$P(X,Y)$。


条件概率分布$P(X=x|Y=c_k)$有指数级数量的参数,其估计实际是不可行的。事实上,假设$x^{\{j\}}$可取值有$S_j$个,$j=1,2,\cdots,n$,$Y$可取值有$K$ 个,那么参数个数为$K\prod\limits_{j=1}^{n}{S_j}$。

朴素贝叶斯法对条件概率分布作了条件独立性假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体的,条件独立性假设是

$P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=X^{(n)}|Y=c_k)$
\begin{equation}
=\prod{P(X^{(j)}=x^{(j)}|Y=c_k)}
\label{tiaojianduli}
\end{equation}

朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

朴素贝叶斯法分类时,对给定的输入$x$,通过学习到的模型计算后验概率分布$P{Y=c_k|X=x}$,将后验概率最大的类作为$x$的类输出。后验概率计算根据贝叶斯定理进行:
\begin{equation}
P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum\limits_{k}{P(X=x|Y=c_k)P(Y=c_k)}}
\label{beiyesidingli}
\end{equation}

将式(\ref{tiaojianduli})代入式(\ref{beiyesidingli}),有
\begin{equation}
P(Y=c_k|X=x)=\frac{\prod{P(X^{(j)}=x^{(j)}|Y=c_k)}}{\sum\limits_{k}{P(X=x|Y=c_k)P(Y=c_k)}}
\end{equation}
这是朴素贝叶斯法分类的基本公式。于是朴素贝叶斯分类器可表示为
\begin{equation}
y=f(x)=\mathop{\arg\max}_{c_k}\frac{\prod{P(X^{(j)}=x^{(j)}|Y=c_k)}}{\sum\limits_{k}{P(X=x|Y=c_k)P(Y=c_k)}}
\label{fenlei}
\end{equation}

注意到,在式(\ref{fenlei})中分母对于所有$c_k$都是相同的,所以
\begin{equation}
y=f(x)=\mathop{\arg\max}_{c_k}\prod{P(X^{(j)}=x^{(j)}|Y=c_k)}
\end{equation}

\subsection{后验概率最大化的含义}
朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。假设选择0-1损失函数:$L(Y,f(X))$,式中$f(X)$分类决策函数。这时,期望风险函数为

期望是对联合分布$P(X,Y)$取的。由此取条件期望
\begin{displaymath}
R_{exp}(f)=E_X\sum\limits_{k=1}^K[L(c_k,f(X))]P(c_k|X)
\end{displaymath}
为了使期望风险最小化,只需对$X=x$逐个极小化,由此得到
\begin{displaymath}
f(x)=\mathop{\arg\min}_{y\in\Upsilon}\sum\limits_{k=1}^{K}{L(c_k,y)P(c_k|X=x)}
=\mathop{\arg\max}_{y\in\Upsilon}P(y=c_k|X=x)
\end{displaymath}

这样一来,根据期望最小化准则就得到了后验概率最大化准则
\begin{displaymath}
f(x)=\mathop{\arg\max}_{c_k}P(c_k|X=x)
\end{displaymath}
即朴素贝叶斯法所采用的原理。

\section{朴素贝叶斯法的参数估计}
\subsection{极大似然估计}
在朴素贝叶斯法中,学习意味着估计$P=(Y=c_k)$和$P(X^{(j)}=x^{(j)}|Y=c_k)$。可以应用极大似然估计法估计相应的概率。先验概率的极大似然估计是
\begin{equation}
P(Y=c_k)=\frac{\sum\limits_{i=1}^NI(y_i=c_k)}{N},k=1,2,\cdots,K
\end{equation}
设第$j$个特征$x^{(j)}$可能取值的集合为$\{a_{j1},a_{j2},\cdots,a_jS_j\}$,条件概率的极大似然估计是
\begin{displaymath}
P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum\limits_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum\limits_{i=1}^NI(y_i=c_k)}
\end{displaymath}
\begin{equation}
j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K
\end{equation}

\subsection{学习与分类算法}
下面给出朴素贝叶斯的学习与分类算法。
\begin{suanfa}
朴素贝叶斯算法:

输入:训练数据$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}$,其中$x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T$\\
$x_i^{(j)}$是第$i$个样本的第$j$ 个特征,$x_i^{(j)}\in\{a_{j1},a_{j2},\cdots,a_{jS_j}\}$,$a_{jl}$是第$j$个特征可能取得第$l$个值,$j=1,2,\cdots,n;l=1,2,\cdots,S_j,y_i\in\{c_1,c_2,\cdots,c_K\}$;实例$x$;

输出:实例$x$的分类

$(1)$计算先验概率及条件概率
\begin{displaymath}
P(Y=c_k)=\frac{\sum\limits_{i=1}^NI(y_i=c_k)}{N},k=1,2,\cdots,K
\end{displaymath}
\begin{displaymath}
P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum\limits_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum\limits_{i=1}^NI(y_i=c_k)}
\end{displaymath}
\begin{displaymath}
j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K
\end{displaymath}


$(2)$对于给定的实例$x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T$,计算
\begin{displaymath}
P(Y=c_k)\prod{P(X^{(j)}=x^{(j)}|Y=c_k)},k=1,2,\cdots,K
\end{displaymath}

$(3)$确定实例$x$的分类
\begin{displaymath}
y=f(x)=\mathop{\arg\max}_{c_k}P(Y=c_k)\prod{P(X^{(j)}=x^{(j)}|Y=c_k)}
\end{displaymath}
\end{suanfa}

\begin{lizi}
试由表中$4.1$的训练数据学习一个朴素贝叶斯分类器并确定$x=(2,S)^T$的类标记$y$。式中$X^{(1)},X^{(2)}$为特征,取值的集合分别为$A_1=\{1,2,3\}$,$A_2={S,M,L}$,$Y$为类标记,$Y\in C=\{1,-1\}$。


\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
&$1$ &$2$ &$3$ &$4$ &$5$ &$6$ &$7$ &$8$ &$9$ &$10$ &$11$ &$12$ &$13$ &$14$ &$15$\\\hline
$X^{(1)}$ & $1$ & $1$ & $1$ & $1$ & $1$ & $2$ & $2$ & $2$ & $2$ & $2$  & $3$  & $3$  & $3$  & $3$  & $3$\\\hline
$X^{(2)}$ &$S$ &$M$ &$M$ &$S$ &$S$ &$S$ &$M$ &$M$ &$L$ &$L$  &$L$  &$M$  &$M$  &$L$  &$L$\\\hline
$Y$      &$-1$ &$-1$ &$1$&$1$&$-1$&$-1$&$-1$&$1$&$1$&$1$&$1$&$1$&$1$&$1$&$-1$\\\hline
\end{tabular}
解: 根据算法$4.1$,由表$4.1$,容易计算下列概率:

$P(Y=1)=\frac{9}{15},P(Y=-1)=\frac{6}{15}$

$P(X^{(1)}=1|Y=1)=\frac{2}{9},P(X^{(1)}=2|Y=1)=\frac{3}{9},P(X^{(1)}=3|Y=1)=\frac{4}{9}$

$P(X^{(2)}=S|Y=1)=\frac{1}{9},P(X^{(2)}=M|Y=1)=\frac{4}{9},P(X^{(2)}=L|Y=1)=\frac{4}{9}$

$P(X^{(1)}=1|Y=-1)=\frac{3}{6},P(X^{(1)}=2|Y=-1)=\frac{2}{6}$

$P(X^{(1)}=3|Y=-1)=\frac{1}{6}$

$P(X^{(2)}=S|Y=-1)=\frac{3}{6},P(X^{(2)}=M|Y=-1)=\frac{2}{6}$

$P(X^{(2)}=L|Y=-1)=\frac{1}{6}$

对于给定的$x=(2,S)^T$计算:

$P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{9}{15}*\frac{3}{9}*\frac{1}{9}=\frac{1}{45}$

$P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{6}{15}*\frac{2}{6}*\frac{3}{6}=\frac{1}{15}$

因为后者比前者大,所以$y=-1$。
\end{lizi}

\subsection{贝叶斯估计}
用极大似然估计可能会出现要估计的概率值为0的情况。这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。具体地,条件概率的贝叶斯估计是
\begin{equation}
P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum\limits_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum\limits_{i=1}^NI(y_i=c_k)+S_j\lambda}
\end{equation}
式中$\lambda>=0$。等价于在随机变量各个取值的频数上赋予一个正数$\lambda>0$。当$\lambda=0$时是极大似然估计,常取$\lambda=1$,这时称为拉普拉斯平滑。
同样,先验概率的贝叶斯估计是
\begin{equation}
P(Y=c_k)=\frac{\sum\limits_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda}
\end{equation}
\begin{lizi}
问题同例$4.1$,按照拉普拉斯平滑估计概率,即取$\lambda=1$。

解:计算概率如下
$P(Y=1)=\frac{10}{17},P(Y=-1)=\frac{7}{17}$

$P(X^{(1)}=1|Y=1)=\frac{3}{12},P(X^{(1)}=2|Y=1)=\frac{4}{12},P(X^{(1)}=3|Y=1)=\frac{5}{12}$

$P(X^{(2)}=S|Y=1)=\frac{2}{12},P(X^{(2)}=M|Y=1)=\frac{5}{12},P(X^{(2)}=L|Y=1)=\frac{5}{12}$

$P(X^{(1)}=1|Y=-1)=\frac{4}{9},P(X^{(1)}=2|Y=-1)=\frac{3}{9}$

$P(X^{(1)}=3|Y=-1)=\frac{2}{9}$

$P(X^{(2)}=S|Y=-1)=\frac{4}{9},P(X^{(2)}=M|Y=-1)=\frac{3}{9}$

$P(X^{(2)}=L|Y=-1)=\frac{2}{9}$

对于给定的$x=(2,S)^T$计算:

$P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{10}{17}*\frac{4}{12}*\frac{2}{12}=0.0327$

$P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{7}{17}*\frac{3}{9}*\frac{4}{9}=0.0610$

因为后者比前者大,所以$y=-1$。
\end{lizi}
\section{深入阅读}
朴素贝叶斯法的介绍可见文献~\cite{Mitchell,Hasite}~。朴素贝叶斯法中假设输入变量都是条件独立的。如果假设它们之间存在概率依存关系,模型就变成了贝叶斯网络,参见文献~\cite{Bishop}~。



% 参考文献
\begin{thebibliography}{99}

\bibitem{Mitchell}
Mitchell T M. Chapter 3: Generative and discriminative classifiers:Naive Bayes and logistic regression. In:Machine Learning.Draft,2005.http://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf

\bibitem{Hasite}
Hastie T,Tibshirani R,Friedman J. The elements of statistical learning:data mining,inference,and prediction.Springer-Verlag,2001

\bibitem{Bishop}
Bishop C.pattern recognition and machine learning,Springer,2006

\end{thebibliography}
\end{CJK*}
\end{document}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值