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

目录

一、导入数据

二、选择特征

三、十折交叉验证

四、划分训练集和测试集

五、训练高斯贝叶斯模型

六、预测测试集

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

八、查看混合矩阵

九、输出评估指标

一、导入数据

# 根据商户数据预测其是否续约案例
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))
相关推荐
yusaisai大鱼4 分钟前
TensorFlow如何调用GPU?
人工智能·tensorflow
weixin_466202786 分钟前
第31周:天气识别(Tensorflow实战第三周)
分类·数据挖掘·tensorflow
珠海新立电子科技有限公司2 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董3 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
Natural_yz3 小时前
大数据学习17之Spark-Core
大数据·学习·spark
曼城周杰伦3 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
山海青风3 小时前
使用 OpenAI 进行数据探索性分析(EDA)
信息可视化·数据挖掘·数据分析
余炜yw4 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
莫叫石榴姐4 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
如若1234 小时前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib