【机器学习系列】使用高斯贝叶斯模型进行数据分类的完整流程

目录

一、导入数据

二、选择特征

三、十折交叉验证

四、划分训练集和测试集

五、训练高斯贝叶斯模型

六、预测测试集

七、查看训练集和测试集上的分数

八、查看混合矩阵

九、输出评估指标

一、导入数据

复制代码
# 根据商户数据预测其是否续约案例
import pandas
#读取数据到 data 变量中
data = pandas.read_csv('高斯贝叶斯.csv', encoding='ansi')

二、选择特征

复制代码
features = [ '注册时长', '营收收入', '成本']
x=data[features]
y=data['是否续约']

三、十折交叉验证

复制代码
#高斯贝叶斯
from sklearn.naive_bayes import GaussianNB
gaussianNB = GaussianNB()

from sklearn.model_selection import cross_val_score
#进行K折交叉验证
cvs = cross_val_score(gaussianNB, x, y, cv=10)
cvs.mean()

分数如下:

四、划分训练集和测试集

复制代码
from sklearn.model_selection import train_test_split
 
#把数据集分为训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(
    x, y, test_size=0.3)

五、训练高斯贝叶斯模型

复制代码
gaussianNB = gaussianNB.fit(x_train, y_train)

六、预测测试集

复制代码
predict=gaussianNB.predict(x_test)

七、查看训练集和测试集上的分数

复制代码
gaussianNB.score(x_train, y_train)

gaussianNB.score(x_test, y_test)

八、查看混合矩阵

复制代码
gaussianNB = GaussianNB()
#使用所有数据训练模型
gaussianNB.fit(x, y)
#对所有的数据进行预测
data['预测是否续约'] = gaussianNB.predict(data[features])
from sklearn.metrics import confusion_matrix
#计算混淆矩阵,labels参数,可由 gaussianNB.classes_ 得到
confusion_matrix(
    data['是否续约'], 
    data['预测是否续约'], 
    labels=['不续约', '续约']
)

九、输出评估指标

复制代码
from sklearn.metrics import classification_report
# 输出评估指标
print(classification_report(y_test, predict))
相关推荐
AAI机器之心2 分钟前
这个RAG框架绝了:无论多少跳,LLM只调用两次,成本暴降
人工智能·python·ai·llm·agent·产品经理·rag
xixixi777774 分钟前
安全嵌入全链路:从模型训练到智能体交互,通信网络是AI安全的“地基”
人工智能·安全·ai·多模态·数据·通信·合规
递归尽头是星辰5 分钟前
Flink 四大基石:核心原理与实战速查
大数据·人工智能·flink·实时计算
1941s9 分钟前
OpenClaw 每日新玩法 | NanoClaw —— 轻量级、安全的 OpenClaw 替代方案
人工智能·安全·agent·openclaw
攻城狮7号18 分钟前
深度解析 GPT-5.4:从“聊天对话”到“原生全能数字员工”的技术演进
人工智能·openai·智能体·gpt-5.4
NAGNIP19 分钟前
一文搞懂CNN经典架构-AlexNet!
人工智能·算法
Agent产品评测局20 分钟前
企业 AI Agent 落地,如何保障数据安全与合规?——企业级智能体安全架构与合规路径深度盘点
人工智能·安全·ai·chatgpt·安全架构
Hello.Reader22 分钟前
深度学习 三次浪潮、三大驱动力与神经科学的恩怨(二)
人工智能·深度学习
ggabb27 分钟前
汉字破局:AI时代的文明反攻与英语世界的“偷师”真相
人工智能
roman_日积跬步-终至千里30 分钟前
【深度学习】从前向传播到反向传播:用两层 sigmoid 网络把 Backprop 一次讲透
人工智能·深度学习