Advertisement

数据挖掘十大算法——Naive Bayes

阅读量:

简介

Naive和Bayes

Naive:假定向量中的所有特征是相互独立的
Bayes:

Bayes

面向的问题

NB作为一种经典的二项式概率分布模型,在解决有监督分类问题方面表现突出。相较于其他方法而言,该算法具有以下显著优势:首先,在设计上更为简洁(无需复杂的迭代优化过程),这使得其在处理大规模数据时更加高效;其次,在可解释性方面具有显著优势(作为生成模型),这为深入分析决策机制提供了便利;最后,在实际应用中展现出卓越的效果(分类性能优越)。

目标

在二分类问题中,在线性模型中通过训练集数据确定一个判别阈值α用于区分两类数据点;当输入特征值超过该阈值时被归类为正类样本;当输入特征值低于该阈值时被归类为负类样本。在有监督学习中存在两种主要的方法论:诊断范式与抽样范式;其中一种方法侧重于识别不同类别之间的显著差异;另一种则关注各类别内部的分布特征;Naïve Bayes方法同时融合了这两种方法的优势。

算法描述

基于抽样范式的视角下

由Bayes公式,

作为类别先验概率这一重要指标,在实际应用中通常能够很好地进行估计,并且在整个样本集上保持一致性这一特性使得其计算结果具有较高的可靠性;因此,在实际操作中我们可以直接将其视为已知值而无需过多关注其计算过程。那我们的核心任务便转化为如何求解这一未知量的问题。基于独立性假设下有f(x|i)=\prod{_{j=1}^p}f(x_j|i)成立的情况下,则多元统计分析问题就可以被简化为对各个单一变量的概率密度函数进行建模这一单一任务;此时我们既可以采用直方图形式来估算概率密度函数也可以选择基于正态分布的参数化方法来进行建模等

一个优雅的特点

按照该算法的描述可知,在施加任意一种严格单调变换时,并相应地调整阈值α的情况下,则分类结果将不发生变化。

那么我们可以对目标函数进行例如比例变换,log变换等操作。

讨论

该方法的核心理论基础是基于独立性假设的,在这种假设计算得出的结果却表现出良好的效果。然而,在实际应用中这种情况通常是不成立的尽管如此 NB 方法仍然表现出色。即便基于‘不合理’的假设计算得出的结果却表现出良好的效果这种现象似乎违背了直觉。我们下面将详细探讨其背后的原因

复杂度

单一变量模型的复杂程度明显低于多元变量模型,在估计过程中仅需少量数据即可获得较好的精度。

模型变种

Laplacian correction

先验概率 n_j/N 修正为 (n_j+{c{_j}{^-1}})/(N+1) ,这样可以对具备新特征的样本进行处理

相关关系引入

引入特征的两两相关

引入马尔科夫模型

Logistic Regression

类似于NB的方法,在参数估计过程中无法仅依赖于直接计算简单概率。而是需要采用迭代计算的方式进行处理。这使得整个方法在计算复杂度上显著增加。

应用实例

Time with Emp(T) Size of Loan(S) Homeowner(H) Default(D)
5 10000 1 N
20 10000 1 N
1 25000 1 N
1 15000 3 N
15 2000 2 N
6 12000 1 N
1 5000 2 Y
12 8000 2 Y
3 10000 1 Y
1 5000 3 Y

预期通过左边三列的数据来预估该用户进行信用欺诈的可能性。

各特征的估计

连续数据离散化

值得注意的是,在本研究中所涉及的数据集中包含两个变量T与S,在本研究中所涉及的数据均为由于分散的连续型数据,在本研究中通过设置适当的数值门槛将其转化为分段数值序列以达到离散化的目的与效果。其中对于变量T而言,在本研究中采用数值范围[...]作为其数值分隔点;而对于变量S而言,则采用了更为宽泛的范围[...]作为其数值分隔点。

f(T<10|D=N)=4/6
f(T≥10|D=N)=2/6
f(T<10|D=Y)=3/4
f(T≥10|D=Y)=1/4

f(S<10000|D=N)=5/6
f(S≥10000|D=N)=1/6
f(S<10000|D=Y)=3/4
f(S≥10000|D=Y)=1/4

f(H=1|D=N)=4/6
f(H=2|D=N)=1/6
f(H=3|D=N)=1/6
f(H=1|D=Y)=1/6
f(H=2|D=Y)=2/6
f(H=3|D=Y)=1/6

现在,有一个新用户申请信用卡,他的 T=5, S=7000,H=1

则,\dfrac{P(Y|x)}{P(N|x)}=\dfrac{P(1)f(T|1)f(S|1)f(H|1)}{P(0)f(T|0)f(S|0)f(H|1)}=0.422

又根据 P(1|x) = 1-P(0|x), 可得 P(0|x)=0.703, P(1|x)=0.296

如果我们设定阈值为0.5,则该用户是可以被授信的

(完)

全部评论 (0)

还没有任何评论哟~