贝叶斯建模

贝叶斯分类算法,是统计学的一种分类方法,它是利用贝叶斯定理的概率统计知识,对离散型的数据进行分类的算法
优点:算法易于实现和部署,执行效率和准确度高
缺点:适合处理离散型的数据,不适合处理连续性的数据
sklearn包naive_bayes模块
1,GaussianNB 高斯贝叶斯方法
2,MultinomiaINB 多项朴素贝叶斯方法
3,BernoulliNB 伯努利贝叶斯方法

案例代码:

import numpy,pandas
data=pandas.read_csv('filepath')
#转成dict,to_dict()
fData=data[['ParentIncome','IQ','Gender','ParentEnourage']].to_dict('records')
tData=data[['ColleagePlans']].as_matrix()

#虚拟变量生成,并且(toarray)将特征字典转换成一个大的稀疏矩
from sklearn.feature_extraction import DictVectorizer
dictvectorizer=DictVectorizer()
pdata=dictvectorizer.fit_transform(fData).toarray()
#取值,对每个离散变量字段取(n-1)列
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
NBModel=GaussianNB()
NBModel.fit(pdata[:6000],tdata[:6000])
NModel.score(pdata[6000:],tdata[6000:])
#预测
NBModle1.predict([0,93,0,388])
#建立多项朴素贝叶斯模型from sklearn.naive_bayes 
 import MultinomialNB
 MBModel=MultinomialNB()
 MBModel.fit(pdata[:6000],tdata[:6000])
 MultinomialNB.score(pdata[6000:],tdata[6000:])

 #高斯模型输出结果
 array(['Does not plan to attend '], 
 dtype='

你可能感兴趣的:(贝叶斯建模)