实战案例|肿瘤预测模型~

简介: 大家好,我是志斌~今天来跟大家分享一下朴素贝叶斯模型的原理以及通过肿瘤预测模型来看如何用Python实现它。

01原理


朴素贝叶斯法是基于贝叶斯定理与特征条件独立加设的分类方法,它是机器学习中应用最为广泛的分类算法之一。


朴素贝叶斯方法虽然分类效果比贝叶斯算法低,但是简化了其在实际应用场景中的复杂性,相当于是贝叶斯算法的简化版。


它的算法核心为如下的贝叶斯公式:


96.png

其中P(X)为事件X发生的概率,P(Y)为事件Y发生的概率,P(X|Y)为在事件Y发生的概率下事件X发生的概率,P(Y|X)为在事件X发生的概率下事件Y发生的概率。


02搭建模型


对肿瘤性质的判断,传统方法为医生根据肿瘤的几十个指标进行判断,这种方法过于依赖医生个人经验且效率较低,而通过机器学习搭建好模型,则可以快速对肿瘤进行预判。


首先读取数据进行查看。


# 读取数据
import pandas as pd
df = pd.read_excel('肿瘤数据.xlsx')



97.png



开始设置特征变量和目标变量。


# 划分特征变量、目标变量
X = df.drop(columns='肿瘤性质')
Y = df['肿瘤性质']


对数据集进行划分,其中20%的数据为测试集,80%的数据为训练集。


from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_s



微信图片_20220617161539.png


98.png


现在对已经划分好的数据集进行训练。


#  搭建模型进行训练
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train,Y_train)


对模型用测试集进行测试


Y_pred = model.predict(X_test)


查看一下预测的准确度。


from sklearn.metrics import accuracy_score
score = accuracy_score(Y_pred,Y_test)


预测准确度为:


99.png


03模型评估


模型搭建好后,我们还需要对其进行评估,之前我们的文章介绍了ROC曲线和KS曲线两种对模型评估的方式,有兴趣的读者可以看看这篇文章实战案例|ROC曲线与KS曲线评估模型~


此次我们选取ROC曲线作为评估方法。


# 绘制ROC曲线
from sklearn.metrics import roc_curve
Y_pred_proba = model.predict_proba(X_test)
fpr,tpr,thres = roc_curve(Y_test,Y_pred_proba[:,1])
data = pd.DataFrame()
data['阈值'] = list(thres)
data['假警报率'] = list(fpr)
data['命中率'] = list(tpr)
data.head(10)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(fpr,tpr)
plt.title('ROC曲线')
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.show()



100.png


志斌换了一种绘制方式,重新绘制ROC曲线。


# 绘制ROC曲线
from sklearn.metrics import roc_curve
Y_pred_proba = model.predict_proba(X_test)
fpr,tpr,thres = roc_curve(Y_test,Y_pred_proba[:,1])
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(fpr,tpr)
plt.title('ROC曲线')
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.show()



101.png


计算ROC曲线的AUC值为0.988,看来模型很不错。


# 计算AUC值
from sklearn.metrics import roc_auc_score
score = roc_auc_score(Y_test,Y_pred_proba[:,1])


计算各个变量的影响程度,看看那个特征变量对模型的影响程度更高。


# 计算AUC值
features = X.columns
importances = model.feature_importances_
a = pd.DataFrame()
a['名称'] = features
a['重要性'] = importances
a.sort_values('重要性')



102.png


我们发现最大半径对模型的影响程度最高。


04小结


  1. 本文介绍了朴素贝叶斯方法的原理,并用肿瘤预测模型教大家如何搭建使用该模型。
  2. 本文仅供学习,不做它用。
相关文章
|
机器学习/深度学习 数据采集 算法
机器学习-模型拟合:如何使用逻辑回归精准预测临床诊断结果?
本文旨在介绍逻辑回归模型在临床诊断结果预测中的应用,并探讨相关需求和挑战。首先,将详细介绍逻辑回归模型的原理和特点,以及其在机器学习中的地位和应用范围。接着,将阐述临床诊断结果预测的重要性和现实需求,以及逻辑回归模型如何满足这些需求。
461 0
|
4月前
|
机器学习/深度学习 数据处理 Python
机器学习实战:房价预测项目
【7月更文挑战第13天】本文详细介绍了基于机器学习的房价预测项目的实战过程。从数据准备、特征工程、模型构建到结果评估,每一步都至关重要。通过合理的特征选择和模型优化,我们可以构建出性能优异的房价预测模型,为房地产行业的决策提供有力支持。未来,随着机器学习技术的不断发展和应用场景的不断拓展,房价预测模型将更加智能化和精准化。
|
5月前
|
机器学习/深度学习 数据可视化 算法
【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化
【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化
|
6月前
|
机器学习/深度学习 数据采集 算法
机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?
机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?
115 0
|
机器学习/深度学习 算法 数据挖掘
高血压疾病预测模型构建研究与应用
高血压疾病预测模型构建研究与应用。
199 0
|
机器学习/深度学习
【阿旭机器学习实战】【26】逻辑斯蒂回归----糖尿病预测实战
【阿旭机器学习实战】【26】逻辑斯蒂回归----糖尿病预测实战
【阿旭机器学习实战】【26】逻辑斯蒂回归----糖尿病预测实战
|
机器学习/深度学习
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
【阿旭机器学习实战】【6】普通线性线性回归原理及糖尿病进展预测实战
|
机器学习/深度学习 算法 数据可视化
逻辑回归模型算法研究与案例分析
导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法。本文将从理论介绍开始,搞清楚什么是逻辑回归、回归系数、算法思想、工作原理及其优缺点等。进一步通过两个实际案例深化理解逻辑回归,以及在工程应用进行实现。
2959 0
集成学习-幸福感预测案例分析
本次案例来源于天池的一个比赛,赛题使用 139 维的特征,使用 8000 余组数据进行对于个人幸福感的预测(预测值为1,2,3,4,5,其中1代表幸福感最低,5代 表幸福感最高)。以均方误差MSE为评价标准,因为评价标准为均方误差,所以使用回归问题的思路解决该问.
207 0