基于心电图的心脏病诊断
案例背景
数据集 mitbih_train 中给出了心电图数据,其中每一行表示采集到一个人的心电图片段,并且将其转化为 187 个属性特征(记为 x1,x2,…x187),每一行最后一列给出了分类标签(记为 y),其中 0 表示健康病人,1~4 分别对应着存在四种类型心脏异常的病人。请根据要求建立分类模型,并将建立的模型在数据集 mitbih_test 中进行测试。
数据预处理
- 导入库
import numpy as np
import pandas as pd
import os
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV
- 读取数据
train=pd.read_csv('mitbih_train.csv',header=None)
test=pd.read_csv('mitbih_test.csv',header=None)
cols=['x' + str(i+1) for i in range(187)]
cols.append('y')
train.columns=cols
test.columns=cols
- 处理训练集和测试集
train_x=train.drop('y',axis=1)
test_x=test.drop('y',axis=1)
train_y=train['y']
test_y=test['y']
决策树
要求
请建立决策树模型并进行调优,分别评价模型在训练集和测试集的预测效果;利用产生的决策树确定属性重要性。
模型参数
DecisionTreeClassifier().get_params()
{‘class_weight’: None,
‘criterion’: ‘gini’,
‘max_depth’: None,
‘max_features’: None,
‘max_leaf_nodes’: None,
‘min_impurity_decrease’: 0.0,
‘min_impurity_split’: None,
‘min_samples_leaf’: 1,
‘min_samples_split’: 2,
‘min_weight_fraction_leaf’: 0.0,
‘presort’: False,
‘random_state’: None,
‘splitter’: ‘best’}