python机器学习算法--贝叶斯算法

1.贝叶斯定理在20世纪60年代初就引入到文字信息检索中,仍然是文字分类的一种热门(基准)方法。文字分类是以词频为特征判断文件所属类型或其他(如垃圾邮件、合法性、新闻分类等)的问题。原理牵涉到概率论的问题,不在详细说明。

复制代码
sklearn.naive_bayes.GaussianNB (priors=None,var_smoothing=1e-09)   #Bayes函数

· priors:矩阵,shape =n_samples,n_features为训练数据,其中n_samples的样本数和n_features是特征的数量。

· smoothing:浮点数,所有要素的最大方差部分,添加到计算稳定性的差异中。

· min_samples_split:整数,拆分内部节点所需的最小样本数。

python 复制代码
from sklearn.naive_bayes import GaussianNB
import numpy as np

# 训练数据
X = np.array([
    [9, 9], [9.2, 9.2], [9.6, 9.2], [9.2, 9.2], [6.7, 7.1], [7, 7.4], [7.6, 7.5], 
    [7.2, 10.3], [7.3, 10.5], [7.2, 9.2], [7, 10.2], [7.2, 9.7], [7.3, 10.1], [7.3, 10.1]
])
Y = np.array([1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2]) 
model=GaussianNB()
model.fit(X,Y)
print('class priors:',model.class_prior_)
print('model parameters:',model.get_params())
X_test=np.array([[8,8],[8.3,8.3]])
predicted=model.predict(X_test)
print('perdicted labels:',predicted)
print('predicted proabilities',model.predict_proba(X_test))
import matplotlib.pyplot as plt 
plt.plot(X[:7,0],X[:7,1],'yx')
plt.plot(X[7:,0],X[7:,1],'g.')
plt.plot(X_test[:,0],X_test[:,1],'r^')
plt.ylabel('w')
plt.xlabel('H')
plt.legend(('Lemon','Citrus'),loc='upper left')
plt.show()

· numpy.Ravel()的功能是把多维度的矩阵数据转成一个维度。

· numpy.linspace()的功能是把区间的数字依照固定比例输出。

· numpy.meshgrid(x,y)的功能是假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是n×m。

python 复制代码
from sklearn.naive_bayes import GaussianNB
import numpy as np
t1=np.array([[1,2],[3,4]])
print(t1.ravel())
t2=np.linspace(0,10,3)
print(t2)
t3=np.linspace(0,10,3)
print(t3)
t4,t5=np.meshgrid(t2,t3)
print(t4)
print(t5)
t4,t5=np.meshgrid(t3,t2)
print(t4)
print(t5)
python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB

# 生成模拟数据
np.random.seed(0)  # 确保结果可复现
X = np.concatenate((
    np.random.normal([5, 5], [1, 1], (100, 2)),  # 橙子,100个样本
    np.random.normal([10, 7], [1, 1.5], (100, 2))  # 柠檬,100个样本
))

# 分配标签
Y = np.array([1] * 100 + [2] * 100)

# 初始化高斯朴素贝叶斯模型并训练
model = GaussianNB()
model.fit(X, Y)

# 计算边界
x_min, y_min = X.min(axis=0)
x_max, y_max = X.max(axis=0)
x_min -= 1
y_min -= 1
x_max += 1
y_max += 1

# 创建网格以用于预测
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 30), np.linspace(y_min, y_max, 30))

# 预测网格上每个点的分类概率
Z = model.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]  # 取第二类的概率

# 调整矩阵形状以匹配xx和yy的形状
Z = Z.reshape(xx.shape)

# 绘制等高线图
plt.contour(xx, yy, Z, levels=[0.5], colors='k')

# 保存图像
plt.savefig('731.png', bbox_inches='tight')

# 显示图像
plt.show()
相关推荐
信誓旦旦的程序猿2 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河2 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年2 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym3 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
HPtiger3 小时前
数据结构——选择排序
数据结构·算法·排序算法
康实训3 小时前
老年评估仿真实训平台架构设计与老年人能力评估实训室教学落地实践
大数据·人工智能·算法·实训室·实训室建设
DongQiShanRen3 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CS创新实验室3 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
CCblandy3 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
quantdash_cc3 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash