想自己做淘宝有什么网站吗,门户网站开发的意义,seo搜索引擎优化工作内容,创意广告设计图系列文章目录
机器学习实验一#xff1a;线性回归机器学习实验二#xff1a;决策树模型机器学习实验三#xff1a;支持向量机模型机器学习实验四#xff1a;贝叶斯分类器机器学习实验五#xff1a;集成学习机器学习实验六#xff1a;聚类 文章目录 系列文章目录一、实验…系列文章目录
机器学习实验一线性回归机器学习实验二决策树模型机器学习实验三支持向量机模型机器学习实验四贝叶斯分类器机器学习实验五集成学习机器学习实验六聚类 文章目录 系列文章目录一、实验目的二、实验原理三、实验内容1. 朴素贝叶斯2. 半朴素贝叶斯3. 高斯分布的朴素贝叶斯计算方法4. 实验数据介绍5. 评价指标介绍 四、实验步骤1. 划分数据集2. 训练朴素贝叶斯分类方法3. 评价分类器4. 使用分类器进行预测 总结 一、实验目的
1了解朴素贝叶斯与半朴素贝叶斯的区别与联系掌握高斯分布的朴素贝叶 斯计算方法 2编程实现朴素贝叶斯分类器 3使用朴素贝叶斯分类器实现多分类预测度量模型性能。
二、实验原理
使用 Python 读取数据集信息并生成对应的朴素贝叶斯分类器随后使用生 成的分类器实现多分类预测并根据精确率、召回率和 F1值度量模型性能。
三、实验内容
1. 朴素贝叶斯
朴素贝叶斯Naive Bayes是基于贝叶斯定理与特征独立假设的分类方法。 使用朴素贝叶斯方法时首先基于训练数据基于特征条件独立假设学习输入与 输出的联合概率分布随后对于给定的 X利用贝叶斯定理求解后验概率最大的 输出标签。
2. 半朴素贝叶斯
半朴素贝叶斯是适当考虑一部分属性之间的相互依赖信息其中“独依赖估 计”One-Dependent Estimator简称 ODE是半朴素分类中最常用的一种策略。 所谓“独依赖估计”也就是假设每个属性在分类类别之外最多仅依赖于一个其 他属性。 与基于特征的条件独立性假设开展的朴素贝叶斯方法相比其最大的区别就 是半朴素贝叶斯算法放宽了条件独立假设的限制考虑部分属性之间的相互依赖 信息。但两者有共同特点假设训练样本所有属性变量的值都已被观测到即训 练样本是完整的。
3. 高斯分布的朴素贝叶斯计算方法
使用条件所有特征向量都是连续型特征变量且符合高斯分布。 概率分布密度
4. 实验数据介绍
实验数据为来自 UCI 的鸢尾花三分类数据集 Iris Plants Database。 数据集共包含 150 组数据分为 3 类每类 50 组数据。每组数据包括 4 个 参数和 1 个分类标签4 个参数分别为萼片长度 sepal length、萼片宽度 sepal width、花瓣长度 petal length、花瓣宽度 petal width单位均为厘米。分类 标签共有三种分别为 Iris Setosa、Iris Versicolour 和 Iris Virginica。 数据集格式如下图所示 为方便后续使用该数据集需要进行特征向量与标签分割以及标签编号。
5. 评价指标介绍
评价指标选择精确率 P、召回率 R、F1度量值 F1计算公式如下 具体代码实现时可以直接调用 sklearn 库中的相应方法进行计算。
四、实验步骤
1. 划分数据集
按照实验要求本次数据集划分采用随机划分 80%数据用于训练其余 20% 数据用于测试。使用 sklearn 库的 train_test_split()方法划分数据代码如 下
X_train, X_test, y_train, y_test train_test_split(X, y,
test_size0.2)
2. 训练朴素贝叶斯分类方法
由于实验数据中四个特征变量均为连续型特征变量我们如果需要使用高斯 分布朴素贝叶斯的话只需要验证他是否符合高斯分布即可。这里使用 Q-Q 图来 验证数据是否符合高斯分布如果数据符合高斯分布则该 Q-Q 图趋近于落在 yx 线上绘制的代码如下
from scipy.stats import probplot
probplot(data,distnorm,plotplt)
plt.title(sepal length)
plt.show()
#然后使用 sklearn 库的 GaussianNB()方法训练分类器
clf GaussianNB()
clf.fit(X_train, y_train)
3. 评价分类器
使用精确率、召回率、F1度量值对分类器作为评价指标使用 sklearn 库中 的 accuracy_score()、precision_score()、recall_score()、f1_score()方法 进行计算具体代码如下
y_pred clf.predict(X_test)
print(precision_score(y_test, y_pred, averageNone))
print(recall_score(y_test, y_pred, averageNone))
print(f1_score(y_test, y_pred, averageNone))4. 使用分类器进行预测
我们选取测试集的最后一条数据进行预测观察分类器计算得到的概率、分 类结果与真实标签的内容。具体代码如下
y_proba clf.predict_proba(X_test[:1])
y_pred_num clf.predict(X_test[:1])[0]
print(预测值str(y_pred_num) label[y_pred_num])
print(预计的概率值:, y_proba)
print(实际值str(y_test[:1][0]) label[y_test[:1][0]])总结
以上就是今天要讲的内容机器学习实验四贝叶斯分类器