通过学习p(y|x)来进行分类,计算在新的x的条件下的p(y|x),然后判断x应该属于哪个类。
之前一直想不通要计算p(y|x)需要估计的参数个数,其实是这样的:
这里这假设x=(x1, x2, ..., xn),xi与y都是二元随机变量,就是xi与y都只取0和1中的一个值。例如x=(x1, x2),要估算的参数是:
p(y=1|x1=0, x2=0),p(y=1|x1=0, x2=1), p(y=1|x1=1, x2=0) p(y=1|x1=0, x2=0)
那么我们要怎么计算p(y|x)呢?比如x=(x1, x2, x3),如果x=(1, 0, 1),那么p(y=1|x) = p(y=1, x1=1, x2=0, x3=1) / (p(y=1, x1=1, x2=0, x3=1) + p(y=0, x1=1, x2=0, x3=1)),所以在这个假设下,要预测一个x应属于哪个类,要计算p(y|x),应该估计的参数个数是2^(n+1)个(貌似看到的都是2^n个,我还搞不懂。。。现在知道了,因为y只能取0或1,只需要估计y=1或y=0中的一种情况就够了,比如p(y=0|x) = 1-p(y=1|x)),所以要是n很大的话要估计的参数就太多了,比如文档分类中n通常很大,要是n=50000的话,要估计的参数为2^50000,很恐怖。