xxdd123321

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

高斯分布概述

朴素贝叶斯的分类

  • 在sk_learn中提供了三种不同类型的贝叶斯模型算法

    • 高斯模型

    • 多项式模型

    • 伯努利模型

高斯模型

  • 介绍:

    • 高斯分布,也就是正态分布,当频率直方图的区间变得特别小的时候拟合的曲线,想一座小山峰,两边特别小,中间高

    • 正太分布,就是正常形态的分布,它是自然界的一种规律

      • 现实生活中有很多现象均服从高斯分布,比如收入,身高,体重等,大部分都处于中等水平,特别少和特别多的比例都会比较低

  • 为什么在现实生活中正太分布会如此常见

    • 通常情况下一个事物的影响因素往往有多个,比如身高的影响有:

      • 家庭的饮食习惯

      • 家庭长辈的身高

      • 运动情况

      • ···

    • 其中每一个因素,都会对身高产生一定的影响,要么是正向的影响,要么是反向的影响,所有因素最终让整体身高接近正态分布

    • 在数学中正太分布往往被称为高斯分布

  • 高斯分布

    • exp函数为高等数学里以自然常熟e为低的指数函数

    • 通过假设P(xi|Y)是服从高斯分布(也就是正态分布),来估计每个特征分到每个类别上的Y上的条件概率。来估计每个特征下每个类别上的条件概率,对于每个特征下的对应每个分类结果概率的取值,高斯朴素贝叶斯有如下公式:

 

 

高斯分布模型的作用

注意:高斯模型没有可以调整的余地

  • API

from sklearn.naive_bayes import GaussianNB
from sklearn.naive_bayes import GaussianNB
import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split


data = load_digits()
feature = data.data
target = data.target
x_train, x_test, y_train, y_test = train_test_split(feature, target, test_size=0.2, random_state=2020)
nb = GaussianNB()
nb = nb.fit(x_train, y_train)
sco = nb.score(x_test, y_test)
print(sco)
# 预测
an1 = nb.predict(x_test[5].reshape(1, -1))
print(an1)
print(y_test[5])
# 预测成功
# 返回分到每个类别的概率
ret = nb.predict_log_proba(x_test[9].reshape(1, -1))
print(ret)


0.825
[7]
7
[[-1.67710920e+03 -1.90132293e+00 -1.48844027e+02 -1.15381154e+02
 -2.91633664e+08 -3.03655520e+02 -5.25168350e+03 -3.38304019e+08
 -1.61779063e-01 -1.26100500e+02]]

Process finished with exit code 0
posted on   xxdd123321  阅读(162)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
 
点击右上角即可分享
微信分享提示