机器学习实验三:肿瘤预测(决策树)

这篇具有很好参考价值的文章主要介绍了机器学习实验三:肿瘤预测(决策树)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验要求

        基于威斯康辛乳腺癌数据集,采用决策树的方法进行肿瘤预测。
【实验要求】
1.加载 sklearn 自带的威斯康星乳腺癌数据集,探索数据。
2.进行数据集分割。
3.配置决策树模型。
4.训练决策树模型。
5.模型预测。
6.模型评估。
7.参数调优。可以根据评估结果,对模型设置或调整为更优的参数,使评估结果更
准确。

实验过程

1.对该题目的理解

        本项目是对美国威斯康星州的乳腺癌诊断数据集进行分类,该数据集包括569个病例的数据样本,每个样本具有30个特征值,而样本共分为两类:分别是恶性和良性,我们要利用决策树算法创建模型,训练模型,并对该模型进行评估和预测,最后再进行参数调优,根据评估的结果调整参数使结果更准确。

2.实现过程

(1)导入包。

代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import tree#导入决策树
from sklearn import metrics
from sklearn.datasets import load_breast_cancer# 导入威斯康星乳腺癌数据集
from sklearn.model_selection import train_test_split

(2)加载威斯康辛乳腺癌数据集,探索数据并对数据进行分割。

代码如下:

breast=load_breast_cancer()
data=pd.DataFrame(breast.data)
print(data.head())#输出前五行的data
target=pd.DataFrame(breast.target)
print(target.head())
data=breast['data']
target=breast['target']
feature_names=breast['feature_names']
df=pd.DataFrame(data,columns=(feature_names))
print("查看数据集的基本信息:",df.info())

train_X,test_X,train_y,test_y=train_test_split(data,target,test_size=0.2)
print(train_X.shape,train_y.shape)

(3)配置决策树模型并且训练该模型。

代码如下:

model=tree.DecisionTreeClassifier()#加载决策树模型

model.fit(train_X,train_y)#训练模型

(4)对模型进行预测评估。

代码如下:

pre_y=model.predict(test_X)#预测

print("准确率:",metrics.accuracy_score(test_y,pre_y))#模型评估。

(5)参数调优,根据评估结果,对模型设置或调整为更优的参数,使评估结果更准确。

代码如下:

#criterion参数的调整,默认为gini指数
#该参数对应的三个函数对应信息增益,增益率和基尼系数,每个函数对应的评价指标有所不同,有各自的特点。
#将该参数进行更换为信息增益--entropy。
model2=tree.DecisionTreeClassifier(criterion = 'entropy')
model2.fit(train_X,train_y)
pre_y=model2.predict(test_X)
print("criterion参数改为信息增益(entropy)的准确率:",metrics.accuracy_score(test_y,pre_y))

#max_depth最大深度的调整,默认为不限制最大深度
#该参数为树的最大深度,当样本中的特征较多时,设置适当的最大深度可以防止模型过拟合。
#尝试调整max_depth这个参数以达到模型更好的效果。

model3=tree.DecisionTreeClassifier(max_depth=2)
model3.fit(train_X,train_y)
pre_y=model3.predict(test_X)
print("max_depth深度参数改为2的准确率:",metrics.accuracy_score(test_y,pre_y))

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

(1)问题:如何根据评估结果对模型设置或调整为更优的参数?

有两种参数的调整,一种是criterion参数,该参数对应三种,分别是:信息增益,增益率和基尼系数,将参数进行更换选择最优的。还有一种是max_depth最大深度的调整,通过调整最大深度找到最优的解。

实验结果

1.加载威斯康辛乳腺癌数据集,探索数据并对数据进行分割

机器学习实验三:肿瘤预测(决策树)

 2.配置决策树模型并且训练该模型

机器学习实验三:肿瘤预测(决策树) 

 3.对模型进行预测评估

机器学习实验三:肿瘤预测(决策树) 

 4.参数调优,根据评估结果,对模型设置或调整为更优的参数,使评估结果更准确

机器学习实验三:肿瘤预测(决策树) 

实验总结

1.通过此实验了解了一种应用广泛的机器学习方法——决策树,了解了决策树算法的目标是根据由特征和标签组成的训练数据,自动生成一棵能对未见数据进行分类的决策树。

2.通过此实验,我了解了计算样本纯度的三个方法:信息增益、增益率、基尼指数。

3.了解了可以调整决策树的参数使结果更准确,学习了sklearn中的决策树包括的若干个参数,尤其学习了通过criterion和max_depth参数的调整来使得评估的结果更准确 。文章来源地址https://www.toymoban.com/news/detail-472705.html

 

到了这里,关于机器学习实验三:肿瘤预测(决策树)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包