Advertisement

用sklearn模块函数进行基于决策树算法的乳腺癌分类,并进行决策树的可视化

阅读量:

老师为同学们提供了关于乳腺癌的医疗数据集, 其中仅包含11个特征. 该数据集在内容上与Python自带的乳腺癌数据集相似, 然而相较于Python自带的数据集而言, 在特征维度上有所欠缺.

文件打开大概长这个样子,只有11列:

一共有699行数据:

代码实现中,在项目的根目录下导入本地项目中的模块。由于我的CSV文件与Python脚本位于同一目录下,并且无需为整个项目构建完整的目录结构这样的做法不会导致编译错误

复制代码
 from sklearn.tree import DecisionTreeClassifier

    
 from sklearn.model_selection import train_test_split
    
 import pandas as pd
    
 from sklearn import tree
    
 data = pd.read_csv(r'breastCancer.csv')
    
 print(data.head())
    
 df=pd.DataFrame()  ##一个表格型的数据结构
    
 X=data.iloc[:,0:10]  #取data的前9列
    
 df['Class'] = data.Class  #Class为最后一列
    
 y=df['Class']
    
 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)  #划分训练集和测试集,我这里设置的比例是训练集:测试集=8:2
    
 clf = DecisionTreeClassifier(max_depth = 2,random_state = 0)  #这里的max_depth是决策树的深度,可以改成其他的数字
    
 clf.fit(X_train, y_train)
    
 print("模型在数据集上的得分:",clf.score(X_train,y_train))  #查看模型在数据集上的得分
    
 print("模型在测试集上的得分",clf.score(X_test,y_test))  #查看模型在测试集上的得分
    
 print("训练集X轴矩阵大小:",X_train.shape)
    
 print("训练集y轴矩阵大小:",y_train.shape)
    
 print("测试集X轴矩阵大小:",X_test.shape)
    
 print("测试集y轴矩阵大小:",y_test.shape)
    
 tree.plot_tree(clf)  #决策树可视化
    
    
    
    
    代码解读

下面就是我的运行结果:

全部评论 (0)

还没有任何评论哟~