实操项目 1——肿瘤分类与预测(朴素贝叶斯)

实验要求

采用朴素贝叶斯方法,对美国威斯康星州的乳腺癌诊断数据集进行分类,实现针对乳腺癌检测的分类器,以判断一个患者的肿瘤是良性还是恶性。
【实验要求】
1.导入 sklearn 自带的数据集:威斯康星乳腺肿瘤数据集(load_breast_cancer)。
2.打印数据集键值(keys),查看数据集包含的信息。
3.打印查看数据集中标注好的肿瘤分类(target_names)、肿瘤特征名称(feature_names)。
4.将数据集拆分为训练集和测试集,打印查看训练集和测试集的数据形态(shape)。
5.配置高斯朴素贝叶斯模型。
6.训练模型。
7.评估模型,打印查看模型评分(分别打印训练集和测试集的评分)。
8.模型预测:选取某一样本进行预测。(可以进行多次不同样本的预测)
        参考方法:可以打印模型预测的分类和真实的分类,进行对比,看是否一致,如果一致,判断预测结果准确,否则结果相反。也可以用其他方法进行预测。
9.扩展(选做):绘制高斯朴素贝叶斯在威斯康星乳腺肿瘤数据集中的学习曲线。

实验过程

1.对该题目的理解

本项目是对美国威斯康星州的乳腺癌诊断数据集进行分类,该数据集包括569个病例的数据样本,每个样本具有30个特征值,而样本共分为两类:分别是恶性和良性,我们要利用高斯朴素贝叶斯算法来训练模型,并对该模型进行评估和预测。

2.实现过程

(1)导入包

代码如下:

import numpy as np
import pandas as pd
from sklearn.datasets import load_breast_cancer#导入数据集
from sklearn.model_selection import train_test_split#形成测试集和训练集
from sklearn.model_selection import cross_val_score
from sklearn.metrics import classification_report#导入分类报告模板
from sklearn.naive_bayes import GaussianNB#导入先验概率的高斯朴素贝叶斯模型  

(2)导入 sklearn 自带的数据集并输出一些数据

代码如下:

breast_cancer=load_breast_cancer()#导入 sklearn 自带的数据集
print("数据集的主要内容",breast_cancer.keys())#打印数据集键值(keys),查看数据集包含的信息  print("数据集的标签名",breast_cancer.target_names)
print("数据集的特征名",breast_cancer.feature_names)#打印查看数据集中标注好的肿瘤分类(target_names)、肿瘤特征名称 (feature_names)

(3)将数据集拆分为训练集和测试集

代码如下:

#划分数据集
data = pd.DataFrame(breast_cancer.data)
target = pd.DataFrame(breast_cancer.target)
x=np.array(data.values)
y=np.array(target.values)
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size=0.2)
#打印数据形态
print(train_x.shape,test_x.shape)

(4)配置高斯朴素贝叶斯模型并训练模型

代码如下:

model=GaussianNB()#配置高斯朴素贝叶斯模型
model.fit(train_X,train_y)#训练模型

(5)评估模型,打印查看模型评分

代码如下:

#7.评估模型,打印查看模型评分(分别打印训练集和测试集的评分)。
#打印训练集和测试集的评分
print("高斯朴素贝叶斯模型训练集的评分:",model.score(train_X,train_y))
print("高斯朴素贝叶斯模型测试集的评分:",model.score(test_X,test_y))

(6)模型预测:选取某一样本进行预测。(可以进行多次不同样本的预测)

代码如下:

#8.模型预测:选取某一样本进行预测。(可以进行多次不同样本的预测)
pre_y=model.predict(test_X)
# sklearn中的classification_report函数用于显示主要分类指标的文本报告.在报告中显示每个类的精确度,召回率,F1值等信息。
print(classification_report(test_y,pre_y))

3.遇到的问题及解决办法

(1)问题:如何进行模型评估

我习惯用F1分数来评估模型的好坏,它同时兼顾了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种调和平均。

实验结果

1.打印数据集键值(keys)以及打印查看数据集中标注好的肿瘤分类(target_names)、肿瘤特征名称(feature_names)

2.将数据集拆分为训练集和测试集,打印查看训练集和测试集的数据形态(shape)。

3.评估模型,打印查看模型评分。

4.模型预测:选取某一样本进行预测

实验总结

1.通过此实验了解了朴素贝叶斯中的高斯朴素贝叶斯算法,学会了如何构建模型,训练模型,评估模型和模型预测。

2.我发现了相比于线性模型算法,朴素贝叶斯算法的效率要高一些,这是因为朴素贝叶斯算法会把数据集中的各个特征看作完全独立的,而不考虑特征之间的关联关系。

机器学习实验二:朴素贝叶斯和SVM——肿瘤分类与预测(朴素贝叶斯)相关推荐

  1. 机器学习实验之肿瘤分类与预测(朴素贝叶斯)

    文章目录 肿瘤分类与预测(朴素贝叶斯) [实验内容] [实验要求] **[数据集]:威斯康星乳腺肿瘤数据集** 导入sklearn自带的数据集:威斯康星乳腺肿瘤数据集(load_breast_canc ...

  2. 机器学习实验之肿瘤分类与预测(SVM)

    文章目录 肿瘤分类与预测(SVM) [实验内容] [实验要求] **[数据集]:威斯康星乳腺肿瘤数据集** 加载data文件夹里的数据集:威斯康星乳腺肿瘤数据集 查看样本特征和特征值,查看样本特征值的 ...

  3. 机器学习 实验二 男声女声分类

    机器学习 实验二 男声女声分类 一.实验环境 PC机,Python 二.代码 #%%import pandas as pd from sklearn.preprocessing import Stan ...

  4. 肿瘤分类与预测(朴素贝叶斯)

    文章目录 实验内容:肿瘤分类与预测(朴素贝叶斯) 实验要求 [数据集]:威斯康星乳腺肿瘤数据集 完整代码 实验内容:肿瘤分类与预测(朴素贝叶斯) 采用朴素贝叶斯方法,对美国威斯康星州的乳腺癌诊断数据集 ...

  5. Python机器学习实验二:1.编写代码,实现对iris数据集的KNN算法分类及预测

    Python机器学习实验二:编写代码,实现对iris数据集的KNN算法分类及预测 1.编写代码,实现对iris数据集的KNN算法分类及预测,要求: (1)数据集划分为测试集占20%: (2)n_nei ...

  6. 机器学习实验二---决策树python

    机器学习实验二---决策树python 一.了解一下决策树吧 决策树基本流程 信息增益 决策树的优缺点 二.数据处理 三.决策树的构建 计算给定数据集的香农熵 按照给定特征划分数据集 选择最好的数据划 ...

  7. 计算机线性回归实验报告,实验二 一元线性回归模型的估计、检验、预测和应用-学生实验报告...

    实验二 一元线性回归模型的估计.检验.预测和应用-学生实验报告 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 飞矢告牌葬秸笆麦蜘 ...

  8. 肿瘤分类与预测(SVM)

    文章目录 实验内容:肿瘤分类与预测(SVM) [实验要求] [数据集]:威斯康星乳腺肿瘤数据集 完整代码 实验内容:肿瘤分类与预测(SVM) 采用SVM方法,对美国威斯康星州的乳腺癌诊断数据集进行分类 ...

  9. 机器学习算法(三):基于概率论的分类方法:朴素贝叶斯理论与python实现+经典应用(文档分类、垃圾邮件过滤)

    算法学习笔记更新,本章内容是朴素贝叶斯,是一个用到概率论的分类方法. 算法简介   朴素贝叶斯是贝叶斯决策的一部分,简单说,就是利用条件概率来完成分类.说起条件概率,猛地一下戳到了笔者的伤口.想当年, ...

最新文章

  1. 机器学习平台跃迁,AI中台才是大势所趋
  2. python时间序列指数平滑预测_时间序列分析预测实战之指数平滑法
  3. hdu1166 线段树
  4. C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
  5. 《ASP.NET Core 微服务实战》译者序
  6. android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...
  7. Python在视频处理上的优势有哪些
  8. JavaScript文档对象模型概述(1)
  9. 数据结构上机实践第四周项目6- 循环双链表应用
  10. 以1敌10不是梦,Spring Boot企业级真实应用案例
  11. hashmap和hashtable,arraylist和vector的区别
  12. Linux 修改密码出现“鉴定令牌操作错误”
  13. PHP服务端 苹果支付(IAP)处理
  14. 第二篇:关键点检测的两类方法及区别(短文)
  15. 基于WiFi的Android局域网即时通讯软件
  16. 【转】论文阅读理解 - Panoptic Segmentation 全景分割
  17. 有符号和无符号相加(vivo)
  18. Laravel + Laragon 搭建php项目
  19. VLAN间如何实现互连?干货奉上!!!
  20. Intellij IDEA社区版下载与安装教程

热门文章

  1. java计算机毕业设计树木交易平台源码+系统+数据库+lw文档+mybatis+运行部署
  2. 机器视觉 · 相机分类及通用参数
  3. 【Django 027】tinymce富文本框使用详解
  4. 大数据Flink(四十七):扩展阅读 File Sink
  5. oracle同一张表卡住很多次,极度诡异的oracle同一张表操作两次的问题
  6. qq空间个人档html代码,qq空间个人档签名
  7. PHP连接Mysql数据库查询表中数据
  8. 六级备考28天|CET-6|翻译井冈山|2021年12月|8:20~9:40+ ~10:17
  9. ubuntu16.04搭建nfs服务端
  10. 三核异构,跨界处理新引擎—君正X2000 的跨界能力