文章目录
贝叶斯
贝叶斯算法(Bayesian algorithm)是一种基于贝叶斯定理的机器学习方法,主要用于估计模型参数和进行概率推断。以下是对贝叶斯算法的详细解析:
一、贝叶斯定理
贝叶斯定理是概率论中的一个基本定理,它描述了条件概率之间的关系。该定理的数学表达式为:
P(A∣B)=P(B)P(B∣A)⋅P(A)
其中:
- P(A∣B) 表示在事件B发生的条件下,事件A发生的概率,即后验概率。
- P(B∣A) 表示在事件A发生的条件下,事件B发生的概率。
- P(A) 表示事件A发生的概率,即先验概率。
- P(B) 表示事件B发生的概率。
二、贝叶斯算法的核心概念
- 先验概率:在观测到数据之前对模型参数的概率分布的估计,反映了我们的先验信念或领域知识。
- 似然函数:表示在给定模型参数的情况下观测到数据的概率分布。
- 后验概率:在考虑观测数据后,参数的概率分布。
- 边际概率:观测数据的概率,通常用于将后验概率归一化,以获得有效的后验分布。
三、贝叶斯算法的优点与局限
优点:
- 对不确定性建模:贝叶斯算法能够自然地处理不确定性,并给出概率形式的预测结果。
- 融入领域知识:通过先验概率的设置,可以方便地融入领域知识和专家经验。
- 适用于小样本数据:在小样本数据下也能获得较好的预测效果。
局限:
- 计算复杂性:在高维空间或大规模数据集上,贝叶斯算法的计算复杂度可能较高。
- 先验选择的敏感性:先验概率的选择对后验概率的计算结果有较大影响,需要谨慎选择。
四、构建模型
构建一个完整的模型,需要完成以下两个步骤:
- 训练模型
- 测试模型
训练模型
-
收集数据
链接: 训练数据
提取码: hpvr -
数据预处理
去除无关数据,划分训练集、测试集:
import pandas as pd
import numpy as np
data = pd.read_csv('iris.csv')
x = data.iloc[:,1:5]
y = data.iloc[:,-1]
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y = \
train_test_split(x,y,test_size=0.2,random_state=0)
- 构建模型
创建一个空白模型,填入训练数据,训练模型:
from sklearn.naive_bayes import MultinomialNB
classifier = MultinomialNB()
classifier.fit(train_x,train_y)
测试模型
- 测试训练集本身数据,查看训练效果:
from sklearn import metrics
train_predict = classifier.predict(train_x)
print(metrics.classification_report(train_y,train_predict))
-----------------------------
precision recall f1-score support
0 1.00 1.00 1.00 39
1 1.00 1.00 1.00 40
accuracy 1.00 79
macro avg 1.00 1.00 1.00 79
weighted avg 1.00 1.00 1.00 79
- 将划分出的测试集填入模型测试,查看实用广泛效果:
test_predict = classifier.predict(test_x)
print(metrics.classification_report(test_y,test_predict))
----------------------
precision recall f1-score support
0 1.00 1.00 1.00 10
1 1.00 1.00 1.00 10
accuracy 1.00 20
macro avg 1.00 1.00 1.00 20
weighted avg 1.00 1.00 1.00 20
这样我们就训练好一个贝叶斯模型啦!!
总结
本篇介绍了:
- 贝叶斯如何分类:简单来说就是通过计算每种类别的概率来分类
- 贝叶斯的优缺点
- 如何构建贝叶斯模型