网上查了几个决策数的python代码,做了一些修改。一是导入本地文件;二是设置决策树可视化图表的样式,具体代码如下:
import pandas as pd # 数据处理
import numpy as np # 使用数组
import matplotlib.pyplot as plt # 可视化
from matplotlib import rcParams # 图大小
#from termcolor import colored as cl # 文本自定义
from sklearn.tree import DecisionTreeClassifier as dtc # 树算法
from sklearn.model_selection import train_test_split # 拆分数据
from sklearn.metrics import accuracy_score # 模型准确度
from sklearn.tree import plot_tree # 树图
#s数据读取
file_path=r"D:\TEST\样本数据-202208 - 副本.csv"
df = pd.read_csv(file_path, encoding='gbk')
#df.drop('Unnamed: 0', axis = 1, inplace = True)
X_var = df[['dem', 'shade', 'NDWI', 'SURF']].values # 自变量
y_var = df['water'].values # 因变量
X_train, X_test, y_train, y_test = train_test_split(X_var, y_var, test_size = 0.2, random_state = 0)
model = dtc(criterion = 'gini', max_depth = 4)
model.fit(X_train, y_train)
pred_model = model.predict(X_test)
#print(cl('Accuracy of the model is {:.0%}'.format(accuracy_score(y_test, pred_model)), attrs = ['bold']))
feature_names = df.columns[1:5]
target_names = df['water'].unique().tolist()
plot_tree(model,
feature_names = feature_names,
class_names = target_names,
filled = True,
rounded = True, fontsize=12)
fig=plt.gcf()
fig.set_size_inches(24,10)
plt.savefig('tree_visualization.png',dpi=300)
出图效果如下:

3601

被折叠的 条评论
为什么被折叠?



