ML学习笔记-2021-08-24-分类算法-朴素贝叶斯算法

本文介绍了朴素贝叶斯分类方法的基础,强调了特征间的独立性假设。通过一个产品经理体重与女神喜好的二分类问题来解释概率基础。接着,讨论了联合概率、条件概率和拉普拉斯平滑在避免概率为0时的作用。以20类新闻分类为例,展示了从数据获取、预处理到模型训练和评估的完整流程,使用了sklearn库的MultinomialNB进行文本分类,并计算了模型的准确率。
摘要由CSDN通过智能技术生成

4. 朴素贝叶斯算法

在这里插入图片描述
在这里插入图片描述

4.1 什么是朴素贝叶斯分类方法

在这里插入图片描述
根据公式,分母为0,但是公式为朴素贝叶斯,
朴素的意思是,特征与特征之间是相互独立的。

4.2 概率基础

已知小明是产品经理,体重超重,是否会被女神喜欢,二分类问题。

4.3 联合概率、条件概率与相互独立

在这里插入图片描述
案例1
在这里插入图片描述
在这里插入图片描述
应用场景:
文本分类
单词作为特征

案例2:
为了避免概率为0,引入拉普拉斯平滑系数
在这里插入图片描述

在这里插入图片描述

4.4 API

在这里插入图片描述

4.5 案例:20类新闻分类

1)获取数据
2)划分数据集
3)特征工程:文本特征抽取
4)朴素贝叶斯预估器流程
5)模型评估

from sklearn.datasets import fetch_20newsgroups, load_files
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
import pandas as pd
"""
朴素贝叶斯算法: 朴素: 假设特征和特征之间是相互独立的
朴素贝叶斯算法经常用于文本分类, 因为文章转换成机器学习算法识别的数据是以单词为特征的
学习算法要点包括但不限于拉普拉斯平滑系数,朴素贝叶斯, 简单概率论
"""


def load_data():
    all_data = fetch_20newsgroups(subset="all")  # 下载新闻
    # all_data = load_files(container_path="../resources/20news-bydate-train")
    x_train, x_test, y_train, y_test = \
        train_test_split(all_data.data, all_data.target, test_size=0.2, random_state=22)
    transfer = TfidfVectorizer()  # 这是一种文本分类器
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)  # 测试集不要用fit, 因为要保持和训练集处理方式一致
    return x_train, x_test, y_train, y_test


def naive_bayes_test():  # 正常的代码过程是数据处理,然后预估器,然后预估预测值
    x_train, x_test, y_train, y_test = load_data()

    estimator = MultinomialNB()
    estimator.fit(x_train, y_train)

    y_predict = estimator.predict(x_test)
    print("预测值为:", y_predict, "\n真实值为:", y_test, "\n比较结果为:", y_test == y_predict)
    score = estimator.score(x_test, y_test)
    print("准确率为: ", score)
    return None


if __name__ == '__main__':
    naive_bayes_test()

4.6 朴素贝叶斯算法总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值