第13步 朴素贝叶斯


前言

朴素贝叶斯(Naive Bayes,NB),这名字听起来既熟悉又点奇怪,不过它确实是应用广泛的分类算法之一。朴素贝叶斯的基层逻辑就是基于贝叶斯公式,跟SVM一样纯数学,因此分类效率相对稳定,参数也比较少,所以很“朴素”。
具体的数学逻辑运算就不说了,直接上代码实战SUV:


一、导入库与数据

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
# 导入数据集
dataset = pd.read_csv('Day 4 Social_Network_Ads.csv')
X = dataset.iloc[:, [1, 2, 3]].values
Y = dataset.iloc[:, 4].values
# 性别转化为数字
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])

二、数据集切分与特征缩放

# 将数据集分成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, Y, test_size=0.25, random_state=0)
# 特征缩放
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

三、数据训练与预测(有三种贝叶斯哈)

直接上代码了:

from sklearn.naive_bayes import GaussianNB
classifier = GaussianNB(var_smoothing=1e-8)
classifier.fit(X_train, y_train)

四、预测测试集结果

y_pred = classifier.predict(X_test)

随便解说

NB的参数少得惨不忍睹:
这个叫高斯朴素贝叶斯:
class sklearn.naive_bayes.GaussianNB(*, priors=None, var_smoothing=1e-09)
① priors:先验概率大小,如果没有给定,模型则根据样本数据自己计算(利用极大似然法)。
② var_smoothing:所有特征的最大方差部分,添加到方差中用于提高计算稳定性,默认1e-9。

五、模型评估

模型预测,使用混淆矩阵评估:

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print(cm)

输出的结果:
在这里插入图片描述
混淆矩阵可视化:
在这里插入图片描述

总结

这一步比较简单,可以早早洗洗睡了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jet4505

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值