机器学习【系列】之第四章朴素贝叶斯模型

机器学习【系列】之第四章朴素贝叶斯模型

第四章 朴素贝叶斯模型


文章目录

  • 机器学习【系列】之第四章朴素贝叶斯模型
  • 前言
  • 一、朴素贝叶斯模型的算法原理
  • 二、朴素贝叶斯模型的简单代码实现
    • 案例分析:肿瘤预测模型
      • 1.读取数据
      • 2.划分特征变量和目标变量
      • 3.模型的搭建与使用
  • 总结


前言

本章主要讲解机器学习中朴素贝叶斯模型,先讲解朴素贝叶斯的算法原理和编程实现,然后通过一个经典案例-----肿瘤预测模型来巩固所学知识。


一、朴素贝叶斯模型的算法原理

  • 1.一维特征变量下的贝叶斯模型

     P(Y|X1) = P(X1|Y)P(Y)/P(X1)
     在贝叶斯公式中P(X1)称为先验概率,P(Y|X1)称为后验概率,而P(X1|Y)称为似然度.
    
  • 2.二维特征变量下的贝叶斯模型

     P(Y|X1,X2) = P(X1,X2|Y)P(Y)/P(X1,X2)
    
  • n维特征变量下的贝叶斯模型

      P(Y|X1,X2,.....,Xn) = P(X1,X2,....,Xn)P(Y)/P(X1,X2,......,Xn)
      这个公式的意思是:在特征X1,特征X2,特征X3等共同发生的条件下,类别Y发生的概率.
    

二、朴素贝叶斯模型的简单代码实现

通过如下代码引入贝叶斯模型的简单代码实现(这里用的是高斯贝叶斯分类器)

from sklearn.naive_bayes import GaussianNB
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
y = [0,0,0,1,1]

model = GaussianNB()
model.fit(X,y)
print(model.predict([[5,5]]))

--->输出结果为:
[0]

案例分析:肿瘤预测模型

1.读取数据

import pandas as pd
df = pd.read_excel("肿瘤数据.xlsx")

2.划分特征变量和目标变量

X = df.drop(columns="肿瘤性质")
y = df["肿瘤性质"]

3.模型的搭建与使用

# 划分训练集和测试集
from sklearn.model_selection import train_test_split
# X_train,y_train为训练集中的特征变量和目标变量数据,X_test,y_test则为测试集中的特征变量和目标变量数据
# test_size=0.2,即按8:2的比例来划分训练集合测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=1)  # train_test_split()函数是随机划分的

# 模型搭建
from sklearn.naive_bayes import GaussianNB
nb_clf = GaussianNB()   # 高斯朴素贝叶斯模型
# fit()函数训练模型,其中传入的参数就是前面获得的训练集数据X_train,y_train
nb_clf.fit(X_train,y_train)

# 3.模型预测与评估
# nb_clf就是上面搭建的朴素贝叶斯模型
y_pred = nb_clf.predict(X_test)
# 通过打印输出可以查看预测结果的前100print(y_pred[:100])

# 利用DataFrame的相关知识点,汇总预测结果y_pred和测试集中的实际值y_test
a = pd.DataFrame()
a["预测值"] = list(y_pred)
a["实际值"] = list(y_test)
print(a.head())

# 查看所有测试集数据的预测准确度
from sklearn.metrics import accuracy_score
score = accuracy_score(y_pred,y_test)
print(score)

机器学习【系列】之第四章朴素贝叶斯模型_第1张图片


总结

参考书籍:《Python大数据分析与机器学习商业案例实战》

你可能感兴趣的:(机器学习)