朴素贝叶斯的思想是这样的:
如果一个事物在一些属性条件发生的情况下,事物属于A的概率>属于B的概率,则判定事物属于A
大众点评、淘宝等电商上都会有大量的商品,比如:
ID Title CategoryID CategoryName
8986 寇老西 纯酿 苹果醋 果汁 饮料 310ml * 6 罐 7 饮料 饮品
17428 福临门 金典 东北 米 5KG / 袋 12 大米
24477 爱茜玛 橄榄 精油 赋活 柔顺 发膜 500g 16 美 发护发
12617 易 贝斯特 原装 进口 特级 初榨 橄榄油 250ml 食用油 9 食用油
20025 NOKIA / 诺基亚 210 Asha210 全 键盘 手机 多色 可选 内含 4G 卡 双卡 双待 WIFI 微博 微信 通用版 14 手机
22296 Lenovo / 联想 FLEX15 I5 - 4200 / 4G / 500G + 8G 固态 / GT720 - 2G / win8 黑银腰 触摸 15 电脑
Ttle是标题,CategoryName商品类别
现在需要使用朴素贝叶斯分类算法来根据介绍自动分类商品类别,比如:
a、苹果醋分类为饮料饮品
b、诺基亚分类为手机
……
1.5、算法应用流程
1、分解出先验数据中的各特征
(即分词,比如“联想”“诺基亚”“苹果醋”“橄榄油”“触摸”“双卡”……)
2、计算各类别(如:手机、电脑)中,各特征的条件概率
(比如 p(“诺基亚”|手机)、p(“双卡”|手机)、p(“触摸”|电脑) 、p(“固态”|电脑)……)
3、分解出待分类样本的各特征
(比如:Lenovo / 联想 FLEX15 I5 - 4200 / 4G / 500G + 8G 固态 / GT720 - 2G / win8 黑银腰 触摸
分解: “Lenovo” “联想” ……)
4、计算类别概率
P(手机) = p(手机|“Lenovo”) p(手机|“联想”)……
P(电脑) = p(电脑|“Lenovo”) p(电脑|“联想”)……
5、显然P(电脑)的结果值更大,因此被判别为“电脑”
1.6、朴素贝叶斯分类算法案例
大体计算方法:
P(手机 | 单词1,单词2,单词3) = P(单词1,单词2,单词3 | 手机) * P(手机) / P(单词1,单词2,单词3)
因为分母都相同,所以只用比较分子即可—>P(单词1,单词2,单词3 | 手机) P(手机)
每个单词之间都是相互独立的---->P(单词1 | 手机)P(单词2 | 手机)P(单词3 | 手机)*P(手机)
P(单词1 | 手机) = 单词1在样本手机中出现的总次数/样本手机句子中总的单词数
P(手机) = 样本手机的条数/样本的总条数
同理:
P(电脑 | 单词1,单词2,单词3) = P(单词1,单词2,单词3 | 电脑) * P(电脑) / P(单词1,单词2,单词3)
因为分母都相同,所以只用比较分子即可—>P(单词1,单词2,单词3 | 电脑) P(电脑)
每个单词之间都是相互独立的---->P(单词1 |电脑)P(单词2 | 电脑)P(单词3 | 电脑)*P(电脑)
根据上述知识,写出代码如下:
在django使用:
django 返回json数据为中文
朴素贝叶斯分类算法——商品多分类(代码)