朴素贝叶斯分类 - 数据挖掘算法(6)

(2017-05-06 银河统计)

朴素贝叶斯分类算法(Naive Bayes classifier)以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法简单高效,在处理分类问题上,是应该首先考虑的方法之一。

贝叶斯定理解决了现实生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。

一、准备知识

1、条件概率

设有事件A、B,条件概率记为\(P(B|A)\),表示事件A发生前提下,事件B发生的概率。条件概率\(P(B|A)\)和事件原概率有如下关系:

\[P(B|A)=\frac{P(AB)}{P(A)} \]

例 I、五个乒乓球(3个新的、2个旧的),每次取一个,无放回地取两次,求第1次取到新球的条件下第2次取到新球的概率。

解、

记,A="第1次取到新球"; B="第2次取到新球"。第1次取到新球的条件下第2次取到新球的概率为,

\[P(B|A)=\frac{P(AB)}{P(A)}=\frac{\frac{3}{5}\times\frac{2}{4}}{\frac{3}{5}}=\frac{2}{4}=0.5 \]

2、事件的独立性

如果事件A、B中一个事件的发生并不影响另一个事件发生的概率,称两个事件是相互独立的。即,

\[P(AB)=P(A)\times P(B) \]

当两个事件相互独立时,

\[P(B|A)=\frac{P(AB)}{P(A)}=\frac{P(A)\times P(B)}{P(A)}=P(B) \]

例 II、五个乒乓球(3个新的、2个旧的),每次取一个,有放回地取两次,求第1次取到新球的条件下第2次取到新球的概率。

解、由于有放回抽样,第1次抽到新球或旧球都对第2次抽到新球或旧球的概率没有影响。

记,A="第1次取到新球"; B="第2次取到新球"。第1次取到新球的条件下第2次取到新球的概率为,

\[P(B|A)=\frac{P(AB)}{P(A)}=\frac{P(A)\times P(B)}{P(A)}=P(B)=\frac{3}{5} \]

3、全概公式

如果事件组\(A_1,A_2,\dots,A_n\)满足:

  a. \(A_1,A_2,\dots,A_n\)互不相容(不能同时发生),且\(P(A_i)>0 (i=1,2,\dots,n)\)
  b. \(A_1+A_2+\dots+A_n=U\)(完备性)。

则对任一事件B皆有,

\[P(B)=\sum^n_{i=1}P(A_i)\times P(B|A_i) \]

例III、五个乒乓球(3个新的、2个旧的),每次取一个,无放回地取两次,求第2次取到新球的概率。

解、由于无放回抽样对第2次抽到新球或旧球的概率有影响,需要考虑不知第1次抽到是新球还是旧球。

记,A="第1次取到新球"; \(\overline{A}\)="第1次取到旧球";B="第2次取到新球"。由于事件,

\[B=BA+B\overline{A} \]

\(BA,B\overline{A}\)互不相容。则有,

\[P(B)=P(BA)+P(B\overline{A}) \]

所以,第2次取到新球的概率为,

\[P(B)=P(BA)+P(B\overline{A})=\frac{3}{5}\times\frac{2}{4}+\frac{2}{5}\times\frac{3}{4}=\frac{3}{5} \]

例IV、甲、乙、丙三人向同一飞机射击,每人射中的概率分别为0.4、0.5、0.7。又若一人射中,飞机坠毁的概率为0.2;若两人射中,飞机坠毁的概率为0.6;若三人射中,飞机坠毁的必坠毁。求飞机坠毁的概率。

解、记B="飞机坠毁";\(A_0\)="三人皆射不中";\(A_1\)="一人射中";\(A_2\)="两人射中";\(A_3\)="三人皆射中"。显然,\(A_0,A_1,A_2,A_3\)是完备事件组(包括了所以可能发生的事件)。按加法和乘法概率公式有:

  \(P(A_0)=(1-0.4)\times (1-0.5)\times (1-0.7)=0.6\times 0.5\times 0.3=0.09\)
  \(P(A_1)=0.4\times 0.5\times 0.3+0.6\times 0.5\times 0.3+0.6\times 0.5\times 0.7=0.36\)
  \(P(A_2)=0.6\times 0.5\times 0.7+0.4\times 0.5\times 0.7+0.4\times 0.5\times 0.3=0.41\)
  \(P(A_3)=0.4\times 0.5\times 0.7=0.14\)

再由题意可知,

\[P(B|A_0)=0,\hspace{1cm}P(B|A_1)=0.2,\hspace{1cm}P(B|A_2)=0.6,\hspace{1cm}P(B|A_3)=1 \]

利用全概公式得,

\[P(B)=\sum^3_{i=0}P(A_i)\times P(B|A_i)=0.09\times 0+0.36\times 0.2+0.41\times 0.6+0.14\times 1=0.458 \]

4、贝叶斯公式(逆概公式)

\(A_1,A_2,\dots,A_n\)为一完备事件组,则对任一事件B有,

\[P(A_j|B)=\frac{P(A_jB)}{P(B)}=\frac{P(A_i)\times P(B|A_i)}{\sum^n_{i=1}P(A_i)\times P(B|A_i)} \]

例V、甲、乙、丙三人向同一飞机射击,每人射中的概率分别为0.4、0.5、0.7。又若一人射中,飞机坠毁的概率为0.2;若两人射中,飞机坠毁的概率为0.6;若飞机被射中坠毁,求甲射中的的概率。

解、记B="飞机坠毁";S="甲击中",若飞机坠毁甲射中的的概率为,

\[P(S|B)=\frac{P(SB)}{P(B)}=\frac{P(SB)}{\sum^3_{i=0}P(A_i)\times P(B|A_i)}=\frac{0.4\times 0.5\times 0.3\times 0.2}{0.458}=\frac{0.012}{0.458}=0.0262 \]

5、朴素贝叶斯分类器公式

假设某样本集有n项特征(Feature),分别为\(F_1、F_2、\dots、F_n\)。现有判别特征C有m个类别(Category),分别为\(C_1、C_2、\dots、C_m\)。贝叶斯分类器就是计算出给定特征\(F_1、F_2、\dots、F_n\)某一水平的判别特征C的概率,即,

\[P(C|F_1F_2\dots F_n)=\frac{P(F_1F_2\dots F_n|C)\times P(C)}{P(F_1F_2\dots F_n)} \]

这里用到了条件(多个条件)概率和逆概公式。由于 \(P(F_1F_2\dots F_n)\) 对于所有的类别都是相同的,可以省略,问题就变成了求分子\(P(F_1F_2\dots F_n|C)\times P(C)\)的最大值(最大发生概率)。

朴素贝叶斯分类器的一个重要特征是假设所有特征都彼此独立,因此,

\[P(F_1F_2\dots F_n|C)\times P(C)=P(F_1|C)\times P(F_2|C)\dots P(F_n|C)\times P(C) \]

上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。虽然"所有特征彼此独立"这个假设在现实中不太可能成立,但是它可以大大简化计算,而且有研究表明对分类结果的准确性影响不大。

二、朴素贝叶斯概率模型

1、特征属性为离散值

现有离散型特征属性信息表(附表 - 1:购买计算机信息)如下,

No.AgeIncomeStudentCredit-ratingBuy-computer
1$\leq 30$hightnofairno
2$\leq 30$hightnoexcellentno
331-40hightnofairyes
4>40mediumnofairyes
5>40lowyesfairyes
6>40lowyesexcellentno
731-40lowyesexcellentyes
8$\leq 30$mediumnofairno
9$\leq 30$lowyesfairyes
10>40mediumyesfairyes
11$\leq 30$mediumyesexcellentyes
1231-40mediumnoexcellentyes
1331-40hightyesfairyes
14>40mediumnoexcellentno

当某人的数据信息如下:

\(Age\leq 30, Income = medium, Student = yes, Credit-rating = fair\),试用朴素贝叶斯分类器判断此人是否购买计算机(Buys-computer = ?)。

为了方便使用概率公式描述问题解决过程,特征属性信息表(附表 - 2)简化如下:

No.AgeIncomeStudentCreditBuy
1AHNFN
2AHNEN
3BHNFY
4CMNFY
5CLYFY
6CLYEN
7BLYEY
8AMNFN
9ALYFY
10CMYFY
11AMYEY
12BMNEY
13BHYFY
14CMNEN

某人数据信息改为如下:

\(Age = A, Income = M, Student = Y, Credit = F\)

试用朴素贝叶斯分类器判断此人是否购买计算机(Buy = ?)。

决策特征变量(Buy-computer)的每个类的先验概率为,

\[P(Buy=Y)=\frac{9}{14}=0.642857, \hspace{1cm}P(Buy=N)=\frac{5}{14}=0.357143 \]

每个学习样本特征属性值对决策特征变量每个类(Buy = Y)的条件概率,

\[P(Age=A|Buy=Y)=\frac{P(Age=A\hspace{0.2cm} and\hspace{0.2cm} Buy=Y)}{P(Buy=Y)}=\frac{2/14}{9/14}=\frac{2}{9}=0.222222 \]

\[P(Income=M|Buy=Y)=\frac{P(Income=M\hspace{0.2cm} and\hspace{0.2cm} Buy=Y)}{P(Buy=Y)}=\frac{4/14}{9/14}=\frac{4}{9}=0.444444 \]

\[P(Student=Y|Buy=Y)=\frac{P(Student=Y\hspace{0.2cm} and\hspace{0.2cm} Buy=Y)}{P(Buy=Y)}=\frac{6/14}{9/14}=\frac{6}{9}=0.666667 \]

\[P(Credit=F|Buy=Y)=\frac{P(Credit=F\hspace{0.2cm} and\hspace{0.2cm} Buy=Y)}{P(Buy=Y)}=\frac{6/14}{9/14}=\frac{6}{9}=0.666667 \]

每个学习样本特征属性值对决策特征变量每个类(Buy = N)的条件概率,

\[P(Age=A|Buy=N)=\frac{P(Age=A\hspace{0.2cm} and\hspace{0.2cm} Buy=N)}{P(Buy=N)}=\frac{3/14}{5/14}=\frac{3}{5}=0.6 \]

\[P(Income=M|Buy=N)=\frac{P(Income=M\hspace{0.2cm} and\hspace{0.2cm} Buy=N)}{P(Buy=N)}=\frac{2/14}{5/14}=\frac{2}{5}=0.4 \]

\[P(Student=Y|Buy=N)=\frac{P(Student=Y\hspace{0.2cm} and\hspace{0.2cm} Buy=N)}{P(Buy=N)}=\frac{1/14}{5/14}=\frac{1}{5}=0.2 \]

\[P(Credit=F|Buy=N)=\frac{P(Credit=F\hspace{0.2cm} and\hspace{0.2cm} Buy=N)}{P(Buy=N)}=\frac{2/14}{5/14}=\frac{2}{5}=0.4 \]

已知某人信息为,

\(Age = A, Income = M, Student = Y, Credit = F\)

设所有特征都彼此独立,由贝叶斯公式,购买计算机的概率公式为,

\[P(Buy=Y|Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F) \]

\[\small{=\frac{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F|Buy=Y)\times P(Buy=Y)}{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F)}} \]

\[\small{=\frac{P(Age=A|Buy=Y)\times P(Income=M|Buy=Y)\times P(Student=Y|Buy=Y)\times P(Credit=F|Buy=Y)\times P(Buy=Y)}{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F)}}\hspace{1cm}(1) \]

该人不购买计算机的概率公式为,

\[P(Buy=N|Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F) \]

\[\small{=\frac{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F|Buy=N)\times P(Buy=N)}{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F)}} \]

\[\small{=\frac{P(Age=A|Buy=N)\times P(Income=M|Buy=N)\times P(Student=Y|Buy=N)\times P(Credit=F|Buy=N)\times P(Buy=N)}{P(Age=A\hspace{0.1cm}and\hspace{0.1cm}Income=M\hspace{0.1cm}and\hspace{0.1cm}Student=Y\hspace{0.1cm}and\hspace{0.1cm}Credit=F)}}\hspace{1cm}(2) \]

由于公式(1)和公式(2)分母相等,所有其值得大小由分子决定。

公式(1)计算得,

\[\small{=P(Age=A|Buy=Y)\times P(Income=M|Buy=Y)\times P(Student=Y|Buy=Y)\times P(Credit=F|Buy=Y)\times P(Buy=Y)}=\frac{3}{5}\times\frac{2}{5}\times\frac{1}{5}\times\frac{2}{5}\times\frac{5}{14}=0.028219 \]

公式(2)计算得,

\[\small{=P(Age=A|Buy=N)\times P(Income=M|Buy=N)\times P(Student=Y|Buy=N)\times P(Credit=F|Buy=N)\times P(Buy=N)}=\frac{2}{9}\times\frac{4}{9}\times\frac{6}{9}\times\frac{6}{9}\times\frac{9}{14}=0.006857 \]

最后,根据该人特征数据信息(\(Age = A, Income = M, Student = Y, Credit = F\)),判断为购买计算机。

2、特征属性为连续值

现有连续型特征属性信息表(附表 - 3)如下,

序号身高(英尺)体重(磅)脚长(英尺)性别
1618012
25.9219011
35.5817012
45.9216510
551006
65.51508
75.421307
85.751509

当某人的数据信息如下:

身高 = 6, 体重 = 130,脚长 = 8,试用朴素贝叶斯分类器判断此人的性别(性别 = ?)。

为了方便使用概率公式描述问题解决过程,特征属性信息表(附表 - 4)简化如下:

No.HWFS
1618012M
25.9219011M
35.5817012M
45.9216510M
551006F
65.51508F
75.421307F
85.751509F

某人数据信息改为如下:

H = 6, W = 130,F = 8,试用朴素贝叶斯分类器判断此人的性别(性别 = ?)。

和离散型特征属性信息相比较,由于身高、体重、脚的尺寸都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以根据学习样本值算出密度函数的值。

分别计算出各特征属性值得均值和方差如下,

性别均值(身高)方差(身高)均值(体重)方差(体重)均值(脚长)方差(脚长)
男性5.8550.0350176.25122.920011.250.9167
女性5.41750.0972132.5558.33007.51.6667

为计算概率方便,简化表示为,

SHmHvWmWvFmFv
M5.8550.0350176.25122.9200 11.250.9167
F5.41750.097225 132.5558.3300 7.51.6667

根据贝叶斯分类器公式,由学习样本判断为男性的概率公式为,

\[P(H=6|S=M)\times P(W=130|S=M)\times P(F=8|S=M)\times P(S=M) \]

判断为女性的概率公式为,

\[P(H=6|S=F)\times P(W=130|S=F)\times P(F=8|S=F)\times P(S=F) \]

决策特征变量为离散型,每个类的先验概率为,

\[P(S=M)=P(S=F)=\frac{4}{8}=0.5 \]

性别为男性时,身高、体重和脚长的条件概率分别为,

\[P(H=6|S=M)=\frac{1}{\sqrt{2\times \pi\times 0.035}}exp[-\frac{(6-5.855)^{^2}}{2\times 0.035}]\approx1.5789 \]

\[P(W=130|S=M)=\frac{1}{\sqrt{2\times \pi\times 122.92}}exp[-\frac{(130-176.25)^{^2}}{2\times 122.92}]\approx0.0000059881 \]

\[P(F=8|S=M)=\frac{1}{\sqrt{2\times \pi\times 0.9167}}exp[-\frac{(8-11.25)^{^2}}{2\times 0.9167}]\approx0.001311472 \]

性别为女性时,身高、体重和脚长的条件概率分别为,

\[P(H=6|S=F)=\frac{1}{\sqrt{2\times \pi\times 0.097225}}exp[-\frac{(6-5.4175)^{^2}}{2\times 0.097225}]\approx0.223459 \]

\[P(W=130|S=F)=\frac{1}{\sqrt{2\times \pi\times 558.33}}exp[-\frac{(130-132.5)^{^2}}{2\times 558.33}]\approx0.01678935 \]

\[P(F=8|S=F)=\frac{1}{\sqrt{2\times \pi\times 1.6667}}exp[-\frac{(8-7.5)^{^2}}{2\times 1.6667}]\approx0.28668826 \]

由学习样本判断为男性的概率公式和概率值为,

\(P(H=6|S=M)\times P(W=130|S=M)\times P(F=8|S=M)\times P(S=M)\)
\(=1.5789\times 0.0000059881\times 0.001311472\times 0.5=0.0000000062\)

由学习样本判断为女性的概率公式和概率值为,

\(P(H=6|S=F)\times P(W=130|S=F)\times P(F=8|S=F)\times P(S=F)\)
\(=0.223459\times 0.01678935\times 0.28668826\times 0.5=0.000537789\)

该学习样本判断为女性(判断为女性的可能比判断为男性大的多)。

三、样例代码

样例中采用鸢尾花数据(附表 - 5),

鸢尾花[iris]数据(R语言经典聚类、分类案例数据)

IDSepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies
15.13.51.40.2setosa
24.93.01.40.2setosa
34.73.21.30.2setosa
44.63.11.50.2setosa
55.03.61.40.2setosa
65.43.91.70.4setosa
74.63.41.40.3setosa
85.03.41.50.2setosa
94.42.91.40.2setosa
104.93.11.50.1setosa
115.43.71.50.2setosa
124.83.41.60.2setosa
134.83.01.40.1setosa
144.33.01.10.1setosa
155.84.01.20.2setosa
165.74.41.50.4setosa
175.43.91.30.4setosa
185.13.51.40.3setosa
195.73.81.70.3setosa
205.13.81.50.3setosa
215.43.41.70.2setosa
225.13.71.50.4setosa
234.63.61.00.2setosa
245.13.31.70.5setosa
254.83.41.90.2setosa
265.03.01.60.2setosa
275.03.41.60.4setosa
285.23.51.50.2setosa
295.23.41.40.2setosa
304.73.21.60.2setosa
314.83.11.60.2setosa
325.43.41.50.4setosa
335.24.11.50.1setosa
345.54.21.40.2setosa
354.93.11.50.2setosa
365.03.21.20.2setosa
375.53.51.30.2setosa
384.93.61.40.1setosa
394.43.01.30.2setosa
405.13.41.50.2setosa
415.03.51.30.3setosa
424.52.31.30.3setosa
434.43.21.30.2setosa
445.03.51.60.6setosa
455.13.81.90.4setosa
464.83.01.40.3setosa
475.13.81.60.2setosa
484.63.21.40.2setosa
495.33.71.50.2setosa
505.03.31.40.2setosa
517.03.24.71.4versicolor
526.43.24.51.5versicolor
536.93.14.91.5versicolor
545.52.34.01.3versicolor
556.52.84.61.5versicolor
565.72.84.51.3versicolor
576.33.34.71.6versicolor
584.92.43.31.0versicolor
596.62.94.61.3versicolor
605.22.73.91.4versicolor
615.02.03.51.0versicolor
625.93.04.21.5versicolor
636.02.24.01.0versicolor
646.12.94.71.4versicolor
655.62.93.61.3versicolor
666.73.14.41.4versicolor
675.63.04.51.5versicolor
685.82.74.11.0versicolor
696.22.24.51.5versicolor
705.62.53.91.1versicolor
715.93.24.81.8versicolor
726.12.84.01.3versicolor
736.32.54.91.5versicolor
746.12.84.71.2versicolor
756.42.94.31.3versicolor
766.63.04.41.4versicolor
776.82.84.81.4versicolor
786.73.05.01.7versicolor
796.02.94.51.5versicolor
805.72.63.51.0versicolor
815.52.43.81.1versicolor
825.52.43.71.0versicolor
835.82.73.91.2versicolor
846.02.75.11.6versicolor
855.43.04.51.5versicolor
866.03.44.51.6versicolor
876.73.14.71.5versicolor
886.32.34.41.3versicolor
895.63.04.11.3versicolor
905.52.54.01.3versicolor
915.52.64.41.2versicolor
926.13.04.61.4versicolor
935.82.64.01.2versicolor
945.02.33.31.0versicolor
955.62.74.21.3versicolor
965.73.04.21.2versicolor
975.72.94.21.3versicolor
986.22.94.31.3versicolor
995.12.53.01.1versicolor
1005.72.84.11.3versicolor
1016.33.36.02.5virginica
1025.82.75.11.9virginica
1037.13.05.92.1virginica
1046.32.95.61.8virginica
1056.53.05.82.2virginica
1067.63.06.62.1virginica
1074.92.54.51.7virginica
1087.32.96.31.8virginica
1096.72.55.81.8virginica
1107.23.66.12.5virginica
1116.53.25.12.0virginica
1126.42.75.31.9virginica
1136.83.05.52.1virginica
1145.72.55.02.0virginica
1155.82.85.12.4virginica
1166.43.25.32.3virginica
1176.53.05.51.8virginica
1187.73.86.72.2virginica
1197.72.66.92.3virginica
1206.02.25.01.5virginica
1216.93.25.72.3virginica
1225.62.84.92.0virginica
1237.72.86.72.0virginica
1246.32.74.91.8virginica
1256.73.35.72.1virginica
1267.23.26.01.8virginica
1276.22.84.81.8virginica
1286.13.04.91.8virginica
1296.42.85.62.1virginica
1307.23.05.81.6virginica
1317.42.86.11.9virginica
1327.93.86.42.0virginica
1336.42.85.62.2virginica
1346.32.85.11.5virginica
1356.12.65.61.4virginica
1367.73.06.12.3virginica
1376.33.45.62.4virginica
1386.43.15.51.8virginica
1396.03.04.81.8virginica
1406.93.15.42.1virginica
1416.73.15.62.4virginica
1426.93.15.12.3virginica
1435.82.75.11.9virginica
1446.83.25.92.3virginica
1456.73.35.72.5virginica
1466.73.05.22.3virginica
1476.32.55.01.9virginica
1486.53.05.22.0virginica
1496.23.45.42.3virginica
1505.93.05.11.8virginica
## 函数 - 朴素贝叶斯分类算法
    webTJ.Datamining.setNaive_Bayes(arrs,crr,srrs);
##参数
    【arrs,,crr,srrs】
    【训练样本数组,决策特征变量数组,学习样本数组】

代码样例

var oTxt="5.1,3.5,1.4,0.2,setosa|4.9,3,1.4,0.2,setosa|4.7,3.2,1.3,0.2,setosa|4.6,3.1,1.5,0.2,setosa|5,3.6,1.4,0.2,setosa|5.4,3.9,1.7,0.4,setosa|4.6,3.4,1.4,0.3,setosa|5,3.4,1.5,0.2,setosa|4.4,2.9,1.4,0.2,setosa|4.9,3.1,1.5,0.1,setosa|5.4,3.7,1.5,0.2,setosa|4.8,3.4,1.6,0.2,setosa|4.8,3,1.4,0.1,setosa|4.3,3,1.1,0.1,setosa|5.8,4,1.2,0.2,setosa|5.7,4.4,1.5,0.4,setosa|5.4,3.9,1.3,0.4,setosa|5.1,3.5,1.4,0.3,setosa|5.7,3.8,1.7,0.3,setosa|5.1,3.8,1.5,0.3,setosa|5.4,3.4,1.7,0.2,setosa|5.1,3.7,1.5,0.4,setosa|4.6,3.6,1,0.2,setosa|5.1,3.3,1.7,0.5,setosa|4.8,3.4,1.9,0.2,setosa|5,3,1.6,0.2,setosa|5,3.4,1.6,0.4,setosa|5.2,3.5,1.5,0.2,setosa|5.2,3.4,1.4,0.2,setosa|4.7,3.2,1.6,0.2,setosa|4.8,3.1,1.6,0.2,setosa|5.4,3.4,1.5,0.4,setosa|5.2,4.1,1.5,0.1,setosa|5.5,4.2,1.4,0.2,setosa|4.9,3.1,1.5,0.2,setosa|5,3.2,1.2,0.2,setosa|5.5,3.5,1.3,0.2,setosa|4.9,3.6,1.4,0.1,setosa|4.4,3,1.3,0.2,setosa|5.1,3.4,1.5,0.2,setosa|5,3.5,1.3,0.3,setosa|4.5,2.3,1.3,0.3,setosa|4.4,3.2,1.3,0.2,setosa|5,3.5,1.6,0.6,setosa|5.1,3.8,1.9,0.4,setosa|4.8,3,1.4,0.3,setosa|5.1,3.8,1.6,0.2,setosa|4.6,3.2,1.4,0.2,setosa|5.3,3.7,1.5,0.2,setosa|5,3.3,1.4,0.2,setosa|7,3.2,4.7,1.4,versicolor|6.4,3.2,4.5,1.5,versicolor|6.9,3.1,4.9,1.5,versicolor|5.5,2.3,4,1.3,versicolor|6.5,2.8,4.6,1.5,versicolor|5.7,2.8,4.5,1.3,versicolor|6.3,3.3,4.7,1.6,versicolor|4.9,2.4,3.3,1,versicolor|6.6,2.9,4.6,1.3,versicolor|5.2,2.7,3.9,1.4,versicolor|5,2,3.5,1,versicolor|5.9,3,4.2,1.5,versicolor|6,2.2,4,1,versicolor|6.1,2.9,4.7,1.4,versicolor|5.6,2.9,3.6,1.3,versicolor|6.7,3.1,4.4,1.4,versicolor|5.6,3,4.5,1.5,versicolor|5.8,2.7,4.1,1,versicolor|6.2,2.2,4.5,1.5,versicolor|5.6,2.5,3.9,1.1,versicolor|5.9,3.2,4.8,1.8,versicolor|6.1,2.8,4,1.3,versicolor|6.3,2.5,4.9,1.5,versicolor|6.1,2.8,4.7,1.2,versicolor|6.4,2.9,4.3,1.3,versicolor|6.6,3,4.4,1.4,versicolor|6.8,2.8,4.8,1.4,versicolor|6.7,3,5,1.7,versicolor|6,2.9,4.5,1.5,versicolor|5.7,2.6,3.5,1,versicolor|5.5,2.4,3.8,1.1,versicolor|5.5,2.4,3.7,1,versicolor|5.8,2.7,3.9,1.2,versicolor|6,2.7,5.1,1.6,versicolor|5.4,3,4.5,1.5,versicolor|6,3.4,4.5,1.6,versicolor|6.7,3.1,4.7,1.5,versicolor|6.3,2.3,4.4,1.3,versicolor|5.6,3,4.1,1.3,versicolor|5.5,2.5,4,1.3,versicolor|5.5,2.6,4.4,1.2,versicolor|6.1,3,4.6,1.4,versicolor|5.8,2.6,4,1.2,versicolor|5,2.3,3.3,1,versicolor|5.6,2.7,4.2,1.3,versicolor|5.7,3,4.2,1.2,versicolor|5.7,2.9,4.2,1.3,versicolor|6.2,2.9,4.3,1.3,versicolor|5.1,2.5,3,1.1,versicolor|5.7,2.8,4.1,1.3,versicolor|6.3,3.3,6,2.5,virginica|5.8,2.7,5.1,1.9,virginica|7.1,3,5.9,2.1,virginica|6.3,2.9,5.6,1.8,virginica|6.5,3,5.8,2.2,virginica|7.6,3,6.6,2.1,virginica|4.9,2.5,4.5,1.7,virginica|7.3,2.9,6.3,1.8,virginica|6.7,2.5,5.8,1.8,virginica|7.2,3.6,6.1,2.5,virginica|6.5,3.2,5.1,2,virginica|6.4,2.7,5.3,1.9,virginica|6.8,3,5.5,2.1,virginica|5.7,2.5,5,2,virginica|5.8,2.8,5.1,2.4,virginica|6.4,3.2,5.3,2.3,virginica|6.5,3,5.5,1.8,virginica|7.7,3.8,6.7,2.2,virginica|7.7,2.6,6.9,2.3,virginica|6,2.2,5,1.5,virginica|6.9,3.2,5.7,2.3,virginica|5.6,2.8,4.9,2,virginica|7.7,2.8,6.7,2,virginica|6.3,2.7,4.9,1.8,virginica|6.7,3.3,5.7,2.1,virginica|7.2,3.2,6,1.8,virginica|6.2,2.8,4.8,1.8,virginica|6.1,3,4.9,1.8,virginica|6.4,2.8,5.6,2.1,virginica|7.2,3,5.8,1.6,virginica|7.4,2.8,6.1,1.9,virginica|7.9,3.8,6.4,2,virginica|6.4,2.8,5.6,2.2,virginica|6.3,2.8,5.1,1.5,virginica|6.1,2.6,5.6,1.4,virginica|7.7,3,6.1,2.3,virginica|6.3,3.4,5.6,2.4,virginica|6.4,3.1,5.5,1.8,virginica|6,3,4.8,1.8,virginica|6.9,3.1,5.4,2.1,virginica|6.7,3.1,5.6,2.4,virginica|6.9,3.1,5.1,2.3,virginica|5.8,2.7,5.1,1.9,virginica|6.8,3.2,5.9,2.3,virginica|6.7,3.3,5.7,2.5,virginica|6.7,3,5.2,2.3,virginica|6.3,2.5,5,1.9,virginica|6.5,3,5.2,2,virginica|6.2,3.4,5.4,2.3,virginica|5.9,3,5.1,1.8,virginica";
var oArrs=webTJ.getArrs(oTxt,"|",",");
var oColData=webTJ.Array.getColData(oArrs,4);
oArrs=webTJ.Matrix.getRemoveCol(oArrs,4);
var oSrrs=[[6.9,3.2,5.7,2.3],[4.9,3,1.4,0.2],[5.9,3,5.1,1.8]];
webTJ.Datamining.setNaive_Bayes(oArrs,oColData,oSrrs);

在函数 webTJ.Datamining.setNaive_Bayes中,训练样本、决策特征变量数组和学习样本都以数组形式表达。如果学习样本只有一组,应按一维数组形式输入,如[6.9,3.2,5.7,2.3]。

四、案例分析

1、特征属性为离散值(参见附表 - 2)

代码样例

var oTxt="A,H,N,F|A,H,N,E|B,H,N,F|C,M,N,F|C,L,Y,F|C,L,Y,E|B,L,Y,E|A,M,N,F|A,L,Y,F|C,M,Y,F|A,M,Y,E|B,M,N,E|B,H,Y,F|C,M,N,E";
var oArrs=webTJ.getArrs(oTxt,"|",",");
var oCrr=['N','N','Y','Y','Y','N','Y','N','Y','Y','Y','Y','Y','N'];
var oSrrs=[['A','M','Y','F']];
webTJ.Datamining.setNaive_Bayes(oArrs,oCrr,oSrrs);

注:如果学校样本自有一组数据,应该用二维数组形式表达,如“[['A','M','Y','F']]”,两组数据为“[['A','M','Y','F'],['C','M','Y','F']]”

2、特征属性为连续值(参见附表 - 4)

代码样例

var oTxt="6,180,12|5.92,190,11|5.58,170,12|5.92,165,10|5,100,6|5.5,150,8|5.42,130,7|5.75,150,9";
var oArrs=webTJ.getArrs(oTxt,"|",",");
var oCrr=['男','男','男','男','女','女','女','女'];
var oSrrs=[[6,130,9]];
webTJ.Datamining.setNaive_Bayes(oArrs,oCrr,oSrrs);
posted @ 2017-05-06 21:56  银河统计  阅读(929)  评论(0编辑  收藏  举报