老师发了关于乳腺癌的数据集,只有十一个列。和python自带的乳腺癌数据集一样,但是比自带的少了很多特征。
文件打开大概长这个样子,只有11列:
一共有699行数据:
接下来就是代码实现了,先导入自己的文件,因为我的csv文件和python的 .py文件在一个目录下面,所以我就没有写完整的目录,这样是不会报错的。
from sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import train_test_splitimport pandas as pdfrom sklearn import treedata = 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:2clf = 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) #决策树可视化
下面就是我的运行结果: