python贝叶斯模型_【挖掘模型】: Python-朴素贝叶斯分类

Paste_Image.png

利用贝叶斯定理中概率统计知识,对离散型的数据进行分类的算法

# 优点 算法易于实现和部署,执行效率和准确度高

# 缺点 适合处理离散型的数据,不适合处理连续型的数据

# 贝叶斯定理 P(A|B)= P(A∩B)/P(B) = (P(B|A)*P(A))/P(B)

# 例子:

# 症状 职业 疾病

# 打喷嚏 护士 感冒

# 打喷嚏 农夫 过敏

# 头痛 建筑工人 脑震荡

# 头痛 建筑工人 感冒

# 打喷嚏 教师 感冒

# 头痛 教师 脑震荡

# 现在来了第七个病人,是一个打喷嚏的建筑工人,他患那种疾病的概率最高?

# P(感冒|打喷嚏 * 建筑工人) = P(打喷嚏 * 建筑工人)*P(感冒)/P(打喷嚏 * 建筑工人)

# 假设打喷嚏 和 建筑工人是独立的

# P(感冒|打喷嚏 * 建筑工人) = P (打喷嚏|感冒)* P(建筑工人|感冒) *P(感冒)/ P(打喷嚏)*P(建筑工人)

# = 0.66 * 0.33 * 0.5/0.33*0.5

# P(过敏|打喷嚏 * 建筑工人) = 0

# P(脑震荡|打喷嚏 * 建筑工人) = 0

import numpy;

import pandas;

data = pandas.read_csv("F:\\python 数据挖掘分析实战\\Data\\data (3).csv");

fData = data[

["ParentIncome", 'IQ', "Gender", "ParentEncouragement"]

].to_dict('records')

tData = data["CollegePlans"]

from sklearn.feature_extraction import DictVectorizer

dictVectorizer = DictVectorizer()

pData = dictVectorizer.fit_transform(

fData

).toarray()

pData = pData[:, [1, 2, 3, 5]]

#随机重排序

permutation = numpy.random.permutation(data.shape[0])

pData = pData[permutation]

tData = tData[permutation]

#高斯贝叶斯

from sklearn.naive_bayes import GaussianNB

GNBModel = GaussianNB()

GNBModel.fit(pData[:6000], tData[:6000])

GNBModel.score(pData[6000:], tData[6000:])

#多项朴素贝叶斯

from sklearn.naive_bayes import MultinomialNB

MNBModel = MultinomialNB()

MNBModel.fit(pData[:6000], tData[:6000])

MNBModel.score(pData[6000:], tData[6000:])

#伯努利贝叶斯

from sklearn.naive_bayes import BernoulliNB

BNBModel = BernoulliNB()

BNBModel.fit(pData[:6000], tData[:6000])

BNBModel.score(pData[6000:], tData[6000:])

参考文献

作者A:ken

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值