贝叶斯网络相关案例

贝叶斯推断:

在这里插入图片描述
P(A)为先验概率,即B事件发生之前,我们对A事件概率的一个判断
P(A|B)为后验概率,即在B事件发生之后,我们对A事件概率的重新评估
贝叶斯推断的含义:先预估一个先验概率,然后加入实验结果,看这个实验到底是增强还是削弱了先验概率,由此得到更接近事实的后验概率。

朴素贝叶斯

朴素贝叶斯:特征之间是相互独立
在这里插入图片描述

分词

词向量模型

(1) **One_hot representation:**每个文本(每句话)转化为1*n向量,但没有考虑到词矩,词频,纬度灾难(过拟合)(出现1.没出现0)
(2) **Distribution representation:**既能表示词本身又能考虑语义距离的词向量表示方法

词袋模型

将所有词语装进一个袋子里,不考虑其词法和语序的问题,即每个词语都是独立的,向量值为对应的词语出现的次数。
但有些词语在所有文本中词频都很高,于是它们对文本是没有区分度的,于是需降低它们对文本区分时的重要度。所以有了TF-IDF(词频-逆文本频率)

TF-IDF(词频-逆文本频率)

IDF反映了词的重要度,如果一个词在很多的文本中出现,那么它的IDF值应该低
在这里插入图片描述
N代表语料库中文本的总数,而N(x)代表语料库中包含词x的文本总数
平滑处理
在这里插入图片描述
TF-IDF模型
在这里插入图片描述
TF(x)指词x在当前文本中的词频

例子

英文新闻分类
20 newsgroups数据集18000篇新闻文章,一共涉及到20种话题,所以称作20 newsgroups text dataset,分文两部分:训练集和测试集,通常用来做文本分类.

#第一步:导入数据
from sklearn.datasets import fetch_20newsgroups  
news = fetch_20newsgroups(data_home=r'路径',subset='all' )
news.target_names#新闻的类别
news.target#类别编号
#第二步:将文本转为TF-IDF向量
from sklearn.feature_extraction.text import TfidfVectorizer
# 提取tfidf特征
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(news.data)
print(vectors) 
#或者第二步:添加停用词,加载停用词,将文本转为TF-IDF向量
#添加停用词
def get_stop_words():
    result = set()
    for line in open('stopwords_en.txt','r').readlines():
        result.add(line.strip())
    return result
# 加载停用词
stop_words = get_stop_words()
tfidf = TfidfVectorizer(stop_words=stop_words)
tfidf_data = tfidf.fit_transform(news.data)
#第三步:建立朴素贝叶斯模型,并进行十折交叉验证
nb1 = MultinomialNB()
scores = model_selection.cross_val_score(nb1, tfidf_data, news.target, cv=10)
print(scores.mean())

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值