Python 机器学习

2018年3天快速入门python机器学习【黑马程序员】

机器学习(六) 朴素贝叶斯算法

朴素贝叶斯算法

  • 朴素:假定特征与特征之间是相互独立的
  • 贝叶斯:贝叶斯公式(详情见概率论与数理统计)
    在这里插入图片描述
  • 拉普拉斯平滑系数:防止概率为0的情况
    在这里插入图片描述

朴素贝叶斯算法的理解

在这里插入图片描述

朴素贝叶斯算法的使用(流程相同)

案例:20类新闻分类

1.获取数据(这里使用sklearn中的数据集,所以省去数据处理的操作)
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all')
2.划分数据集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target)
3.特征工程,文本抽取
from sklearn.feature_extraction.text import TfidfVectorizer
transfer = TfidfVectorizer()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
4.朴素贝叶斯预估器流程
from sklearn.naive_bayes import MultinomialNB
estimator = MultinomialNB()
estimator.fit(x_train, y_train)
5.模型评估
# 方法1: 直接比对真实值和预测值
y_predict = estimator.predict(x_test)
print('y_predict:\n', y_predict)
print('直接比对真实值和预测值:\n', y_test == y_predict)

# 方法2: 计算准确率
score = estimator.score(x_test, y_test)
print('准确率为:\n', score)

y_predict:
 [ 8  6 11 ...  6 17  7]
直接比对真实值和预测值:
 [ True  True  True ...  True  True  True]
准确率为:
 0.8565365025466893

Process finished with exit code 0
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐