11.分类与监督学习,朴素贝叶斯分类算法
2021-01-23 11:13
标签:贝叶斯 ber 作用 含义 src 数据集 就是 判断 iris 1.理解分类与监督学习、聚类与无监督学习。 简述分类与聚类的联系与区别。 简述什么是监督学习与无监督学习。 对于分类来说,在对数据集分类时,我们是知道这个数据集是有多少种类的;而对于聚类来说,在对数据集操作时,我们是不知道该数据集包含多少类,我们要做的,是将数据集中相似的数据归纳在一起。他们都是对数据集的归纳。 简述什么是监督学习与无监督学习。 有监督学习即人工给定一组数据,每个数据的属性值也给出,对于数据集中的每个样本,我们想要算法预 测并给出正确答案:回归问题,分类问题。 无监督学习中,数据是没有标签的或者是有一样的标签的。我们不知道数据的含义和作用,只知道是有一个数据集的。数据集可以判断是有两个数据集,自己进行分类,这就是聚类学习。 2.朴素贝叶斯分类算法 实例 利用关于心脏病患者的临床历史数据集,建立朴素贝叶斯心脏病分类模型。 有六个分类变量(分类因子):性别,年龄、KILLP评分、饮酒、吸烟、住院天数 目标分类变量疾病: –心梗 –不稳定性心绞痛 新的实例:–(性别=‘男’,年龄
最可能是哪个疾病? 上传手工演算过程。 性别 年龄 KILLP 饮酒 吸烟 住院天数 疾病 1 男 >80 1 是 是 7-14 心梗 2 女 70-80 2 否 是
心梗 3 女 70-81 1 否 否
不稳定性心绞痛 4 女
1 否 是 >14 心梗 5 男 70-80 2 是 是 7-14 心梗 6 女 >80 2 否 否 7-14 心梗 7 男 70-80 1 否 否 7-14 心梗 8 女 70-80 2 否 否 7-14 心梗 9 女 70-80 1 否 否
心梗 10 男
1 否 否 7-14 心梗 11 女 >80 3 否 是
心梗 12 女 70-80 1 否 是 7-14 心梗 13 女 >80 3 否 是 7-14 不稳定性心绞痛 14 男 70-80 3 是 是 >14 不稳定性心绞痛 15 女
3 否 否
心梗 16 男 70-80 1 否 否 >14 心梗 17 男
1 是 是 7-14 心梗 18 女 70-80 1 否 否 >14 心梗 19 男 70-80 2 否 否 7-14 心梗 20 女
3 否 否
不稳定性心绞痛 3.使用朴素贝叶斯模型对iris数据集进行花分类。 尝试使用3种不同类型的朴素贝叶斯: 并使用sklearn.model_selection.cross_val_score(),对各模型进行交叉验证。 11.分类与监督学习,朴素贝叶斯分类算法 标签:贝叶斯 ber 作用 含义 src 数据集 就是 判断 iris 原文地址:https://www.cnblogs.com/miaoxiaowen/p/12884415.html
from
sklearn.datasets
import
load_iris
from
sklearn.naive_bayes
import
GaussianNB, MultinomialNB, BernoulliNB
from
sklearn.model_selection
import
cross_val_score
iris
=
load_iris()
data
=
iris[
‘data‘
]
target
=
iris[
‘target‘
]
# 高斯分布型
Gnb_model
=
GaussianNB()
# 构建高斯分布模型
Gnb_model.fit(data, target)
# 训练模型
Gnb_pre
=
Gnb_model.predict(data)
# 预测模型
print
(
"高斯分布模型准确率为:%.2F"
%
(
sum
(Gnb_pre
=
=
target)
/
len
(data)))
# 多项式型
Mnb_model
=
MultinomialNB()
# 构建多项式模型
Mnb_model.fit(data, target)
Mnb_pre
=
Mnb_model.predict(data)
print
(
"多项式模型准确率为:%.2F"
%
(
sum
(Mnb_pre
=
=
target)
/
len
(data)))
# 伯努利型
Bnb_model
=
BernoulliNB()
# 构建伯努利模型
Bnb_model.fit(data, target)
Bnb_pre
=
Bnb_model.predict(data)
print
(
"伯努利模型准确率为:%.2F"
%
(
sum
(Bnb_pre
=
=
target)
/
len
(data)))
print
(
"进行交叉验证:"
)
# 进行交叉验证
Gnb_score
=
cross_val_score(Gnb_model, data, target, cv
=
10
)
print
(
‘高斯分布模型的精确率:%.2F‘
%
Gnb_score.mean())
Mnb_score
=
cross_val_score(Mnb_model, data, target, cv
=
10
)
print
(
‘多项式模型模型的精确率:%.2F‘
%
Mnb_score.mean())
Bnb_score
=
cross_val_score(Bnb_model, data, target, cv
=
10
)
print
(
‘伯努利模型的准确率:%.2F‘
%
Bnb_score.mean())
下一篇:支持多线程的Redis6.0来了
文章标题:11.分类与监督学习,朴素贝叶斯分类算法
文章链接:http://soscw.com/index.php/essay/45852.html