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

换空间网站备案吗长尾关键词举例

换空间网站备案吗,长尾关键词举例,企业网络推广体系图,农业科技工作服务站建站模板【1】引言 前序学习进程中,对条件概率进行了简单探索:https://blog.csdn.net/weixin_44855046/article/details/145388138?spm1001.2014.3001.5501 今天,以此为基础,探索机器学习中朴素贝叶斯方法的基本程序。 【2】代码解读 …

【1】引言

前序学习进程中,对条件概率进行了简单探索:https://blog.csdn.net/weixin_44855046/article/details/145388138?spm=1001.2014.3001.5501

今天,以此为基础,探索机器学习中朴素贝叶斯方法的基本程序。

【2】代码解读

【2.1】库引入

这里只需要numpy库:

# 引入numpy模块
import numpy as np

【2.2】初始定义

这里现需要定义一个矩阵用于后续计算:

在机器学习中,可以认为一个3行2列的矩阵,是由3个样本组成的大样本,每个样本包含两个特征。

矩阵的行数就是样本数,矩阵的列数就是特征数。

# 假设有3个样本,2个特征
# 样本数就是行数,特征数是列数
X = np.array([[1, 0],  # 样本1[1, 1],  # 样本2[0, 1]  # 样本3
])

然后定义一个类别标签数组:

# 这里天然地认为,0对应第一个样本,后面的1和1对应第2和第3个样本
# y内部的数据认为是类别
y = np.array([0, 1, 1])  # 样本1属于类别0,样本2和3属于类别1

经过y的定义,矩阵X被划分为:

    [1, 0],  # 样本1    →     类别0
    [1, 1],  # 样本2    →     类别1
    [0, 1]  # 样本3     →     类别1

 然后需要定义一些变量来存储数据:

# 定义常数n_classes
n_classes = 2
# 定义n_features存储X的第二个维度特征,也就是列数
n_features = X.shape[1]  # 2个特征
# 定义一个type动态函数,创建一个名为Dummy的类
# 继承自object(object是Python 所有类的基类,提前内置好,无需在代码中定义)
# {}是类的属性和方法,但是此处没有定义,所以没有任何属性和方法
self = type('Dummy', (object,), {})()  # 创建临时对象
# 定义一个conditional的纯0矩阵,大小为n_classes行n_features列
self.conditional = np.zeros((n_classes, n_features))

其中,n_classes和n_features存储单个数据,self.conditional是一个纯0矩阵。

变量定义
变量类型示例用途说明
n_classes标量(int)2类别数量,确定矩阵行数可通过X.shape[0]获取
n_features标量(int)2特征数量,确定矩阵列数可通过X.shape[1]获取
self.conditional矩阵(ndarray)

shape=(

n_classes,n_features)

存储条件概率的二维数组初始定义为纯0矩阵
selfDummy类使用type()动态函数定义是一个临时对象

其中,n_classes和n_features存储单个数据,self.conditional是一个纯0矩阵。  

【2.3】计算

之后进行计算:

# 定义一个for循环,对y进行枚举
# np.unique(y)是对y进行合并同类项
# i是y合并同类项以后,具体的项对应的位置
# c是y合并同类项以后,具体的项
for i, c in enumerate(np.unique(y)):# 当y中的取值为类别c,X_c为True# 当y取值为c时,y==c的值应该是True,但X[y==c]可以取出y==c时的X值X_c = X[y == c]print(f"类别 {c} 的样本:\n{X_c}")# 计算条件概率,使用拉普拉斯平滑公式self.conditional[i] = (X_c.sum(axis=0) + 1) / (X_c.shape[0] + n_features)print(f"类别 {c} 的条件概率:{self.conditional[i]}\n")

这里定义了一个枚举函数enumerate()的for循环:

枚举函数enumerate()函数中的参数是np.unique(y),可以实现对y这个数组的同类项合并操作。

前面的公式定义了y = np.array([0, 1, 1]),经过执行np.unique(y),会获得[0,1]这样的精简数组。

执行X_c = X[y == c]时:

  1. 先按照y==0进行判断,此时将会对应y的实际定义值[0, 1, 1]得到[True,False,False],X[y==c]则只会输出True对应位置处的样本[1,0]。
  2. 然后按照y==1进行判断,此时将会对应y的实际定义值[0, 1, 1]得到[False,True,True,],X[y==c]则只会输出True对应位置处的样本[1,1]和[0,1]。

 然后就可以调用拉普拉斯平滑公式进行条件概率计算:

self.conditional[i] =(X_c.sum(axis=0) + 1) / (X_c.shape[0] + n_features)

X_c.sum(axis=0) + 1的意思是,先按照各列单独相加求和,然后求和结果再增加1,比如:

y==1是,X_c获得:

[1,1],

[0,1]

这两个样本排列成2行2列,执行X_c.sum(axis=0) + 1后,获得:

[1+0,1+1]+[1,1]=[2,3]

此时的 X_c.shape[0] =2,即样本的数量

n_features=2,即每个样板的特征。

此时计算的结果就是:

[2/(2+2),3/(2+2)]=[0.5,0.75]

完整代码为:

# 引入numpy模块
import numpy as np# 假设有3个样本,2个特征
# 样本数就是行数,特征数是列数
X = np.array([[1, 0],  # 样本1[1, 1],  # 样本2[0, 1]  # 样本3
])
# 这里天然地认为,0对应第一个样本,后面的1和1对应第2和第3个样本
# y内部的数据认为是类别
y = np.array([0, 1, 1])  # 样本1属于类别0,样本2和3属于类别1# 定义常数n_classes
n_classes = 2
# 定义n_features存储X的第二个维度特征,也就是列数
n_features = X.shape[1]  # 2个特征
# 定义一个type动态函数,创建一个名为Dummy的类
# 继承自object(object是Python 所有类的基类,提前内置好,无需在代码中定义)
# {}是类的属性和方法,但是此处没有定义,所以没有任何属性和方法
self = type('Dummy', (object,), {})()  # 创建临时对象
# 定义一个conditional的纯0矩阵,大小为n_classes行n_features列
self.conditional = np.zeros((n_classes, n_features))# 定义一个for循环,对y进行枚举
# np.unique(y)是对y进行合并同类项
# i是y合并同类项以后,具体的项对应的位置
# c是y合并同类项以后,具体的项
for i, c in enumerate(np.unique(y)):# 当y中的取值为类别c,X_c为True# 当y取值为c时,y==c的值应该是True,但X[y==c]可以取出y==c时的X值X_c = X[y == c]print(f"类别 {c} 的样本:\n{X_c}")# 计算条件概率,使用拉普拉斯平滑公式self.conditional[i] = (X_c.sum(axis=0) + 1) / (X_c.shape[0] + n_features)print(f"类别 {c} 的条件概率:{self.conditional[i]}\n")

 代码运行后的输出为:

类别 0 的样本:
[[1 0]]
类别 0 的条件概率:[0.66666667 0.33333333]

类别 1 的样本:
[[1 1]
 [0 1]]
类别 1 的条件概率:[0.5  0.75]

【3】总结

 学习了机器学习朴素贝叶斯方法中拉普拉斯平滑计算条件概率的基本方法。

http://www.dtcms.com/wzjs/513147.html

相关文章:

  • 网站建设尾款收取长沙seo网站排名优化公司
  • 大型网站建站公司 上市惠州seo代理计费
  • 资产管理公司网站建设方案全自动推广软件
  • 网络推广和网站推广平台谷歌浏览器手机版官网下载
  • 做ppt网站网店推广策划方案
  • 网站精神文件建设专栏广告推广免费发布
  • 网站在线制作软件企业文化标语
  • 网站做微信小程序号码怎样在网上推广
  • 网站建设asp文件怎么展现深圳在线制作网站
  • 南坪网站建设哪里好2022年新闻摘抄十条
  • 电子商务网站建设选择腾讯云域名注册官网
  • 唐山网站建设电话北京aso优化
  • 厦门市建设工程造价网站首页推广注册app赚钱平台
  • wordpress注册不发送邮件淘宝seo什么意思
  • 有赞小程序定制开发河北网站优化公司
  • 公司对比网站2021百度最新收录方法
  • 专业做足球体彩网站深圳网络推广外包公司
  • 自助建站系统网站建设开发关键词如何排名在首页
  • html网站的设计seo优化团队
  • 如何给网站加引导页yw77731域名查询
  • 昆明网站建设 网络服务淘宝关键词排名优化技巧
  • 沈阳妇科医院哪家好成都关键词优化平台
  • 张家界城乡建设网站营销软文范例大全300字
  • 自己做网站服务器可以吗免费的行情软件app网站
  • 做网站联系我们在那个板块里面免费打广告网站
  • 做网站用asp和html店铺如何运营和推广
  • 百度快速排名技术培训seo标题优化的心得总结
  • 做专业网站济南竞价托管
  • 网站建设项目培训茶叶网络推广方案
  • 做btob上哪个网站好网络优化报告