我有一些数据集,其中包含我实际工作的组织采购。目的是找到最重要的特征来描述为什么某些购买过程是成功的,以及为什么不成功。
为了解决这个问题,我使用了决策树分类器。
首先,我将布尔列转换为 int
for col in ['flag_prequalification', 'flag_procurement_category_strategy']:
data.loc[:, col] = data.loc[:, col].astype(int)
然后,将对象类型转换为字符串。这用于标签编码
for cat_feature in categorical_features:
data.loc[:, cat_feature] = data.loc[:, cat_feature].fillna('unknown').astype(str)
%%time
encoder = defaultdict(LabelEncoder)
data.loc[:, categorical_features] = (
data
.loc[:, categorical_features]
.apply(lambda x: encoder[x.name].fit_transform(x), axis=0)
)
之后,让我们使用 log(sum) 代替 sum
for col in ['sum_tru_no_nds (lot)', 'price (lot)', 'count (lot)']:
data[col] = (data[col] + 1).apply(np.log)
并且,最后绘制树:
from sklearn.externals.six import StringIO
from IPython.display import Image
from sklearn.tree import export_graphviz
import pydotplus
import graphviz
# DOT data
dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=None,
class_names=target_col,
filled=True)
# Draw graph
graph = graphviz.Source(dot_data, format="png")
graph
问题是,我如何向其他人解释这棵树,更准确地说,我如何解码树中的这个标签?
