当前位置: 首页 > news >正文

移动网站开发试验报告/hyein seo是什么牌子

移动网站开发试验报告,hyein seo是什么牌子,株洲目前疫情有多严重?,用vs2008做网站学习《scikit-learn机器学习》时的一些实践。 条件独立 朴素即指的是条件独立假设,假设n个特征之间不相关,则可据联合概率的条件展开式: p(Ck)P(x∣Ck)P(Ck,x)P(x1,x2,..,xn,Ck)P(x1∣x2,..,xn,Ck)P(x2,..,xn,Ck)P(x1∣x2,..,xn,Ck)P(x2∣x3…

学习《scikit-learn机器学习》时的一些实践。


条件独立

朴素即指的是条件独立假设,假设n个特征之间不相关,则可据联合概率的条件展开式:
p(Ck)P(x∣Ck)=P(Ck,x)=P(x1,x2,..,xn,Ck)=P(x1∣x2,..,xn,Ck)P(x2,..,xn,Ck)=P(x1∣x2,..,xn,Ck)P(x2∣x3,..,xn,Ck)P(x3,..,xn,Ck)......=P(x1∣x2,..,xn,Ck)P(x2∣x3,..,xn,Ck)...P(xn∣Ck)P(Ck)p(C_k)P(\pmb{x}|C_k)=P(C_k,\pmb{x}) \\=P(x_1,x_2,..,x_n,C_k) \\=P(x_1|x_2,..,x_n,C_k)P(x_2,..,x_n,C_k) \\=P(x_1|x_2,..,x_n,C_k)P(x_2|x_3,..,x_n,C_k)P(x_3,..,x_n,C_k) \\...... \\=P(x_1|x_2,..,x_n,C_k)P(x_2|x_3,..,x_n,C_k)...P(x_n|C_k)P(C_k)p(Ck)P(xxxCk)=P(Ck,xxx)=P(x1,x2,..,xn,Ck)=P(x1x2,..,xn,Ck)P(x2,..,xn,Ck)=P(x1x2,..,xn,Ck)P(x2x3,..,xn,Ck)P(x3,..,xn,Ck)......=P(x1x2,..,xn,Ck)P(x2x3,..,xn,Ck)...P(xnCk)P(Ck)
将其中的
P(xi∣xi+1,xi+2,..,xn,Ck)P(x_i|x_{i+1},x_{i+2},..,x_n,C_k)P(xixi+1,xi+2,..,xn,Ck)
变为
P(xi∣Ck)P(x_i|C_k)P(xiCk)
从而,朴素贝叶斯下的联合概率可展开为:
P(x1,x2,..,xn,Ck)=P(x1∣Ck)P(x2∣Ck)...P(xn∣Ck)P(Ck)P(x_1,x_2,..,x_n,C_k)=P(x_1|C_k)P(x_2|C_k)...P(x_n|C_k)P(C_k)P(x1,x2,..,xn,Ck)=P(x1Ck)P(x2Ck)...P(xnCk)P(Ck)
右侧的每一项都可从数据集中统计出来,因此可通过计算和比较联合概率来比较后验概率,以对类别做判断。

对于连续的特征值,可以通过区间划分形成离散值。但对于小数据集,这样做的偏差太大。可以通过考虑该特征作为随机变量的概率分布,计算其统计量并放入相应的概率分布函数模型中做计算。如计算方差σ\sigmaσ和均值μ\muμ便可得到正态分布的概率密度函数。

概率分布

概率分布是描述随机变量的概率规律。

PDF和PMF

概率密度函数(PDF)用于描述连续型随机变量在某个特定值的可能性,概率质量函数(PMF)用于描述离散型随机变量在某个特定值的可能性。

伯努利分布

零一分布两点分布,意在非黑即白:
f(k;p)=pk(1−p)1−k,其中k=0,1f(k;p)=p^k(1-p)^{1-k},其中k=0,1f(k;p)=pk(1p)1kk=0,1

类别分布

不止两种情况,即可能有多种情况:
f(x∣p)=∏i=1npixi,其中xi=1当且仅当类别x=if(x|p)=\prod_{i=1}^{n}p_i^{x_i},其中x^i=1当且仅当类别x=if(xp)=i=1npixixi=1x=i

二项式分布

即将伯努利实验(符合伯努利分布的实验)重复nnn次,结果概率为ppp的事件出现kkk次的概率:
f(k;n,p)=(nk)pk(1−p)n−k,其中(nk)即Cnkf(k;n,p)=\binom{n}{k} p^k(1-p)^{n-k},其中\binom{n}{k}即C_n^kf(k;n,p)=(kn)pk(1p)nk(kn)Cnk
当实验只做一次时,二项式分布退化为伯努利分布。

多项式分布

满足类别分布(即有多种情况)的实验,连续做n次后,每种类别出现的特定次数组合的概率分布情况。

xix_ixi表示类别iii出现的次数,pip_ipi表示类别iii在单次实验(即类别分布)中出现的概率。
f(X,n,P)=n!∏i=1kxi!∏i=1kpixif(\pmb{X},n,\pmb{P})=\frac{n!}{\prod_{i=1}^{k}x_i!}\prod_{i=1}^{k}p_i^{x_i}f(XXX,n,PPP)=i=1kxi!n!i=1kpixi
作者给出一个易懂的理解,将后面的∏i=1kpixi\prod_{i=1}^{k}p_i^{x_i}i=1kpixi视为按特定顺序出现的所有类别的一个排列的概率,前面的系数将排列变成任意次序的组合。

多项式分布式二项式分布在类别数上的推广(两类变多类),也是类别分布在重复次数上的推广(一次变多次)。

TF-IDF

使用TF×IDFTF \times IDFTF×IDF衡量词在文档中的重要程度。

词频TF

特定词语在这篇文章中出现次数除以文档的词语总数。衡量词语对文档的重要程度,因为某词出现的频率较高则可能对该文档有标定意义

逆文档频率指数IDF

总文档数目除以包含该词语的文档数目,再取对数。表达词语的权重指数,因为某词的出现很广泛则很可能是一个泛用词,对特定的文档没有标定意义

朴素贝叶斯做文档分类

from sklearn.datasets import load_files
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from matplotlib import pyplot as plt# 读取数据,这里的数据文件每一类在一个子目录中,子目录的名字即是文档的类别
news_train = load_files(r"E:\Data\code\datasets\mlcomp\379\train")
print("共{}文档分为{}类".format(len(news_train.data), len(news_train.target_names)))
# data中存的是所有文档,target中存的是类别号,若要知道类别名,在target_names中查询
print("0号文档的类别名:", news_train.target_names[news_train.target[0]])

共13180文档分为20类
0号文档的类别名: talk.politics.misc

# 转化为由TF-IDF表达的权重信息构成的向量
vectorizer = TfidfVectorizer(encoding='latin-1')
# 相当于先fit(完成语料分析,提取词典),再transform(把每篇文档转化为向量以构成矩阵)
X_train = vectorizer.fit_transform((d for d in news_train.data))
y_train = news_train.target
print("样本数:%d,特征数%d" % X_train.shape)
print("样本{}中的非零特征数为{}".format(news_train.filenames[0], X_train[0].getnnz()))

样本数:13180,特征数130274
样本E:\Data\code\datasets\mlcomp\379\train\talk.politics.misc\17860-178992中的非零特征数为108

# 多项式分布的朴素贝叶斯.其中alpha是平滑参数,越小越容易造成过拟合
clf = MultinomialNB(alpha=0.001)
clf.fit(X_train, y_train)
train_score = clf.score(X_train, y_train)
print("训练集得分:", train_score)

训练集得分: 0.9974203338391502

# 加载测试集
news_test = load_files(r"E:\Data\code\datasets\mlcomp\379\test")
print("共{}文档分为{}类".format(len(news_train.data), len(news_train.target_names)))

共13180文档分为20类

# 对测试集进行向量化,前面的语料分析和提取词典是基于训练集的,这里只调用transform
X_test = vectorizer.transform((d for d in news_test.data))
y_test = news_test.target
print("样本数:%d,特征数%d" % X_train.shape)

样本数:5648,特征数130274

# 尝试预测第一篇文档
pred = clf.predict(X_test[0])
print("预测为:{},实际是:{}".format(pred[0], news_test.target[0]))

预测为:7,实际是:7

# 在整个测试集上做预测
pred = clf.predict(X_test)
# 查看对每个类别的预测准确性
print("使用的分类器是", clf, "分类表现如下")
print(classification_report(y_test, pred, target_names=news_test.target_names))

在这里插入图片描述

# 生成混淆矩阵
cm = confusion_matrix(y_test, pred)
print("混淆矩阵:\n", cm)

如第1行第20列的13,即表示类别为0的文档有13个被分到类别19。对角线上的数字都是正确分类的(行列相同,即分类到自己)。
在这里插入图片描述

# 混淆矩阵可视化
plt.figure(figsize=(8, 8), dpi=144)
plt.title("混淆矩阵")
ax = plt.gca()  # Get Current Axes
ax.spines['right'].set_color('none')  # ax.spines是数据区域的边界
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_color('none')
ax.spines['left'].set_color('none')
ax.xaxis.set_ticks_position('none')  # 删除轴上的刻度点
ax.yaxis.set_ticks_position('none')
ax.set_xticklabels([])
ax.set_yticklabels([])
plt.matshow(cm, fignum=1, cmap='gray')  # plt.matshow专门用于矩阵可视化
plt.colorbar()  # 添加渐变色条
plt.show()

在这里插入图片描述

http://www.jmfq.cn/news/4891249.html

相关文章:

  • 莆田高端网站建设/如何免费自己创建网站
  • 做刷单哪个网站找小白/百度推荐现在为什么不能用了
  • 电子商务型网站/如何制作网页链接
  • 音乐网站前台模板/小红书指数
  • 网站的企业风采怎么做/企业网络营销的模式有哪些
  • 上每网站建设/长沙正规关键词优化价格从优
  • 汽车网站flash模板/十大室内设计网站
  • 给网站做h5缓存机制/seo门户
  • 任丘市建设局网站/中级经济师考试
  • 公司网站建设制度/优化网站有哪些方法
  • 网站开发体会范文/手机百度网页版入口
  • wordpress的用户名与密码/宁波seo推广方式排名
  • 网站平台建设视频教学/网站推广平台排行
  • wordpress百度收录之自动推送设置/山东seo网络推广
  • 有经验的江苏网站建设/今日短新闻20条
  • 武汉网站建设制作/微信朋友圈广告投放收费标准
  • 成都比较好的网站制作公司/朋友圈推广广告
  • ps做的图怎么做成网站前端/沈阳网站推广优化
  • 建设银行网站打不开别的网站可以用吗/推广管理
  • 网站的宣传方法有哪些/seo搜索引擎优化包邮
  • 建设银行官方网站首页个人登录/保定百度seo公司
  • 用户密码找回网站/网络服务有限公司
  • 网站建设 爱诚科技/市场调研报告ppt
  • 网站建设的企业/看广告赚钱
  • 绍兴seo网站推广/防晒霜营销软文
  • 一个空间做两个网站/活动营销方案
  • 怎么推广我做的网站/seo推广经验
  • 拼多多是b2c还是c2c/厦门seo收费
  • 库尔勒市建设路街道办网站/海南网站设计
  • 女朋友做网站/打造龙头建设示范