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

实验要求

        基于威斯康辛乳腺癌数据集,采用决策树的方法进行肿瘤预测。
【实验要求】
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.加载威斯康辛乳腺癌数据集,探索数据并对数据进行分割

机器学习实验三:肿瘤预测(决策树)_第1张图片

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

机器学习实验三:肿瘤预测(决策树)_第2张图片 

 3.对模型进行预测评估

 

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

 

实验总结

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

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

3.了解了可以调整决策树的参数使结果更准确,学习了sklearn中的决策树包括的若干个参数,尤其学习了通过criterion和max_depth参数的调整来使得评估的结果更准确 。

 

你可能感兴趣的:(机器学习实验,决策树,算法)