肿瘤分类与预测(SVM)
文章目录
- 实验内容:肿瘤分类与预测(SVM)
- 【实验要求】
- 【数据集】:威斯康星乳腺肿瘤数据集
- 完整代码
实验内容:肿瘤分类与预测(SVM)
采用SVM方法,对美国威斯康星州的乳腺癌诊断数据集进行分类,实现针对乳腺癌检测的分类器,以判断一个患者的肿瘤是良性还是恶性。
【实验要求】
1.加载data文件夹里的数据集:威斯康星乳腺肿瘤数据集.
2.查看样本特征和特征值,查看样本特征值的描述信息。
3.进行数据清洗(如删除无用列,将诊断结果的字符标识B、M替换为数值0、1等)。
4.进行特征选取(方便后续的模型训练)。用热力图呈现features_mean字段之间的相关性,从而选取特征。
注:
(1)热力图中,颜色越浅代表相关性越大。
(2)通过热力图找到相关性大的几个属性,每组相关性大的属性只选一个属性做代表。这样就可以把10个属性缩小。5.进行数据集的划分(训练集和测试集),抽取特征选择的数值作为训练和测试数据。
6.进行数据标准化操作(可采用Z-Score规范化数据)。
7.配置模型,创建SVM分类器。
8.训练模型。
9.模型预测。
10.模型评估。
【数据集】:威斯康星乳腺肿瘤数据集
该数据集中肿瘤是一个非常经典的用于医疗病情分析的数据集,包括569个病例的数据样本,每个样本具有30个特征。
样本共分为两类:恶性(Malignant)和良性(Benign)。
该数据集的特征是从一个乳腺肿块的细针抽吸(FNA)的数字化图像计算出来的。它们描述了图像中细胞核的特征。
完整代码
#导入包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import svm
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler#1.加载data文件夹里的数据集:威斯康星乳腺肿瘤数据集
#(数据集路径:.../data.csv)。
data=pd.read_csv("E:/python/SpyderCode/work/data.csv")#2.查看样本特征和特征值,查看样本特征值的描述信息。
feature_names=data.columns
print(feature_names)
data.info()#3.进行数据清洗(如删除无用列,将诊断结果的字符标识B、M替换为数值0、1等)。
#删除无用列id
data.drop('id',axis=1,inplace=True)
#将诊断结果diagnosis的字符标识B,M替换为数值0,1等
data['diagnosis']=data['diagnosis'].map({'M':1,'B':0})
data.info()
#将mean(平均值),se(标准误差),worst(最坏值)分组
feature_mean=list(data.columns[1:11])
feature_se=list(data.columns[11:21])
feature_worst=list(data.columns[21:31])#4.进行特征选取(方便后续的模型训练)。
#用热力图呈现features_mean字段之间的相关性,从而选取特征。
#看整体良性、恶性肿瘤的诊断情况
sns.countplot(data['diagnosis'],label='count')
#构建热力图
corr=data[feature_mean].corr()
plt.figure(figsize=(10,6))
sns.heatmap(corr,annot=True)#annot为True表示在表格中显示数据#If True, write the data value in each cell. #If an array-like with the same shape as data, then use this to annotate the heatmap instead of the raw data.
#根据热力图进行特征选择
feature_remain = ['radius_mean','texture_mean', 'smoothness_mean','compactness_mean','symmetry_mean', 'fractal_dimension_mean'] '''注:(1)热力图中,颜色越浅代表相关性越大。(2)通过热力图找到相关性大的几个属性,每组相关性大的属性只选一个属性做代表。这样就可以把10个属性缩小。
'''#5.进行数据集的划分(训练集和测试集),抽取特征选择的数值作为训练和测试数据。
train,test=train_test_split(data,test_size=0.2)#20%为测试集,80%为训练集
train_X=train[feature_remain]##抽取特征选择的数值作为训练和测试数据
train_y=train['diagnosis']
test_X=test[feature_remain]
test_y=test['diagnosis']#6.进行数据标准化操作(可采用Z-Score规范化数据)。
ss=StandardScaler()
train_X=ss.fit_transform(train_X)
test_X=ss.transform(test_X)#7.配置模型,创建SVM分类器。
model=svm.SVC()#8.训练模型。
model.fit(train_X,train_y)#9.模型预测。
pre_y=model.predict(test_X)#10.模型评估。
print("准确率:%.2f"%ArithmeticErrormetrics.accuracy_score(pre_y,test_y))
肿瘤分类与预测(SVM)相关推荐
- 机器学习实验之肿瘤分类与预测(SVM)
文章目录 肿瘤分类与预测(SVM) [实验内容] [实验要求] **[数据集]:威斯康星乳腺肿瘤数据集** 加载data文件夹里的数据集:威斯康星乳腺肿瘤数据集 查看样本特征和特征值,查看样本特征值的 ...
- 机器学习实验二:朴素贝叶斯和SVM——肿瘤分类与预测(朴素贝叶斯)
实操项目 1--肿瘤分类与预测(朴素贝叶斯) 实验要求 采用朴素贝叶斯方法,对美国威斯康星州的乳腺癌诊断数据集进行分类,实现针对乳腺癌检测的分类器,以判断一个患者的肿瘤是良性还是恶性. [实验要求] ...
- 机器学习实验之肿瘤分类与预测(朴素贝叶斯)
文章目录 肿瘤分类与预测(朴素贝叶斯) [实验内容] [实验要求] **[数据集]:威斯康星乳腺肿瘤数据集** 导入sklearn自带的数据集:威斯康星乳腺肿瘤数据集(load_breast_canc ...
- 肿瘤分类与预测(朴素贝叶斯)
文章目录 实验内容:肿瘤分类与预测(朴素贝叶斯) 实验要求 [数据集]:威斯康星乳腺肿瘤数据集 完整代码 实验内容:肿瘤分类与预测(朴素贝叶斯) 采用朴素贝叶斯方法,对美国威斯康星州的乳腺癌诊断数据集 ...
- 果蝇算法优化极限学习机,支持向量机 最小二乘支持向量机,分类 ,预测。FOA ELM SVM LSSVM。
果蝇算法优化极限学习机,支持向量机 最小二乘支持向量机,分类 ,预测.FOA ELM SVM LSSVM.
- 分类算法-支持向量机(SVM)
支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能 ...
- 人口预测和阻尼-增长模型_使用分类模型预测利率-第3部分
人口预测和阻尼-增长模型 This is the final article of the series " Predicting Interest Rate with Classifica ...
- 白质脑功能网络图论分析:抑郁症分类和预测的神经标记
脑连接体拓扑结构异常是重度抑郁障碍(MDD)病理机制的基础.然而,越来越多的证据只关注脑灰质中的功能组织,而忽略了已被证实具有可靠稳定拓扑组织的白质中的功能信息.本研究旨在从一个新的视角-白质WM功能 ...
- Python实现经典机器学习案例——良/恶性性乳腺癌肿瘤完整数据预测
Python实现经典机器学习案例 良/恶性性乳腺癌肿瘤完整数据预测 首先我们介绍一个概念,监督学习. 监督学习 "机器学习中监督学习模型的任务是根据已有经验知识对未知样本的目标/标签进行预测 ...
最新文章
- Linux防火墙限制指定端口只能由指定IP访问
- 计算几个数相加和为16
- 开源cms 和 开源博客_宝马自动驾驶汽车开发人员,用于IT的开源CMS和更多新闻
- 29岁程序员感慨:北京一套房,家庭月收入4万却很焦虑
- asp与php对比,个人看法 zblogasp和zblogphp的对比
- 天首发展,音飞储存要起飞
- 换服务器原网站数据会丢失吗,ecs服务器更换操作系统后原服务器数据还在吗?...
- 各种软件webhook机器人
- 工作表冻结前两行_冻结所有工作表宏
- pytorch log
- DTAS尺寸公差分析软件-三维尺寸公差分析软件尺寸链计算软件
- 内网异地备份_用批处理实现局域网内的异地备份
- 快速阶乘算法python_python实现N阶乘的算法
- 转载一些关于QQ空间的文章
- MySQL数据库-设置数据完整性
- syncthing开源工具,同步文件内容,入门操作简要指导
- 【codeup】1128 Problem B 出租车费
- 媒体报道的要害在于“真假”而不是“善恶”
- 猛犸机器学习开发实践
- 基于阿尔法开发板构建卡启动固件
热门文章
- 怎么压缩多张图片?如何快速批量压缩图片?
- 我们分析了200款“二次元游戏”,最终发现了这些
- 区块链对教育行业的发展意义
- 【Agile框架(一)】首页布局
- c语言实训指导书答案,《C语言程序设计》实验指导书答案
- Spring Cloud Gateway网关拦截器
- 成功不是偶然的,它是从寂寞中成长起来的花朵-----王选
- 什么是负载均衡?什么是高可用?说说常见的负载均衡案例
- 关于计算机二级的论文5000字,计算机二级论文
- 电大计算机网络网考,电大开放教育计算机网络专业(专科)《Flash动画制作》期末复习考试试题及参考答案...