亦菲喊你来学机器学习(14) --贝叶斯算法

文章目录

  • 贝叶斯
    • 一、贝叶斯定理
    • 二、贝叶斯算法的核心概念
    • 三、贝叶斯算法的优点与局限
      • 优点:
      • 局限:
    • 四、构建模型
      • 训练模型
      • 测试模型
  • 总结

贝叶斯

贝叶斯算法(Bayesian algorithm)是一种基于贝叶斯定理的机器学习方法,主要用于估计模型参数和进行概率推断。以下是对贝叶斯算法的详细解析:

一、贝叶斯定理

贝叶斯定理是概率论中的一个基本定理,它描述了条件概率之间的关系。该定理的数学表达式为:

P(AB)=P(B)P(BA)⋅P(A)

其中:

  • P(AB) 表示在事件B发生的条件下,事件A发生的概率,即后验概率。
  • P(BA) 表示在事件A发生的条件下,事件B发生的概率。
  • P(A) 表示事件A发生的概率,即先验概率。
  • P(B) 表示事件B发生的概率。

二、贝叶斯算法的核心概念

  1. 先验概率:在观测到数据之前对模型参数的概率分布的估计,反映了我们的先验信念或领域知识。
  2. 似然函数:表示在给定模型参数的情况下观测到数据的概率分布。
  3. 后验概率:在考虑观测数据后,参数的概率分布。
  4. 边际概率:观测数据的概率,通常用于将后验概率归一化,以获得有效的后验分布。

三、贝叶斯算法的优点与局限

优点:

  • 对不确定性建模:贝叶斯算法能够自然地处理不确定性,并给出概率形式的预测结果。
  • 融入领域知识:通过先验概率的设置,可以方便地融入领域知识和专家经验。
  • 适用于小样本数据:在小样本数据下也能获得较好的预测效果。

局限:

  • 计算复杂性:在高维空间或大规模数据集上,贝叶斯算法的计算复杂度可能较高。
  • 先验选择的敏感性:先验概率的选择对后验概率的计算结果有较大影响,需要谨慎选择。

四、构建模型

构建一个完整的模型,需要完成以下两个步骤:

  1. 训练模型
  2. 测试模型

训练模型

  1. 收集数据
    链接: 训练数据
    提取码: hpvr

  2. 数据预处理

去除无关数据,划分训练集、测试集:

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)
  1. 构建模型

创建一个空白模型,填入训练数据,训练模型:

from sklearn.naive_bayes import MultinomialNB

classifier = MultinomialNB()
classifier.fit(train_x,train_y)

测试模型

  1. 测试训练集本身数据,查看训练效果:
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
  1. 将划分出的测试集填入模型测试,查看实用广泛效果:
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

这样我们就训练好一个贝叶斯模型啦!!

总结

本篇介绍了:

  1. 贝叶斯如何分类:简单来说就是通过计算每种类别的概率来分类
  2. 贝叶斯的优缺点
  3. 如何构建贝叶斯模型

你可能感兴趣的:(机器学习,算法,人工智能,python,scikit-learn)