贝叶斯的定义: 一件事发生的可能性
联合概率:是多个条件同时成立的概率
条件概率:事件A在事件B发生条件下的概率
注:朴素的含义又称为概率
贝叶斯使用的优缺点:
特别提醒:
为了防止在贝叶斯计算的过程中出现概率为0的情况。建议使用拉普拉斯平滑方法。
理解拉普拉斯平方法 实际操作是 同时在数据中加上一样的数值,进行计算。
注:贝叶斯计算出来的准确性无法进行进一步的提高。
贝叶斯的计算方法受到数据质量影响大
贝叶斯适用于文本分析,如对于文章,电影类型关键词的提取后对其他文章和电影进行分类。
def naivbayes():
"""
朴素贝叶斯进行文本分类
:return: None
"""
news = fetch_20newsgroups(subset="all")
#进行数据的分割 训练集合训练集
x_train,x_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25)
#进行数据进行特征抽取
tf = TfidfVectorizer()
#训练集当中的词列表进行每篇文章重要性统计["a","b"]
x_train = tf.fit_transform(x_train)
print(tf.get_feature_names())
x_test = tf.fit_transform(x_test)
#贝叶斯算法预测
mlt = MultinomialNB(alpha=1.0)
print(x_train.toarry())
mlt.fit(x_train,y_train)
y_predict =mlt.predict(x_test)
print("预测文章类别为:" ,y_predict)
#得出准确率
print("准确率为:",mlt.score(x_test,y_test))
print("类别的精准率和召回率:",classification_report(y_test,y_predict,target_names=news.target_names))
return None
if __name__ == "__main__":
naivbayes()