我正在使用具有混合特征类型的Lime(本地可解释模型不可知的解释)来评估分类任务的模型预测。有谁知道如何在lime.lime_tabular.LimeTabularExplainer()方法中指定二进制功能。LIME如何实际处理这些类型的功能(只有1和0的更多功能)?
我认为您应该将您的二进制特征声明为分类特征,以使您的Lime解释器在研究样本周围进行局部扰动时可以有效地使用其采样机制。
您可以使用LimeTabularExplainer构造函数中的categorical_features关键字参数来完成此操作。
my_binary_feature_column_index = 0 # put your column index here
explainer = LimeTabularExplainer(my_data, categorical_features=[my_binary_feature_column_index], categorical_name={my_binary_feature_column_index: ["foo", "bar", "baz"]})
正如在LIME代码中提到的:
解释关于表格(即矩阵)数据的预测。对于数字特征,根据训练数据中的均值和标准差,通过从正态(0,1)进行采样并对均值居中和缩放进行逆运算来扰动它们。对于分类特征,通过根据训练分布进行采样来扰动,并在值与所说明的实例相同时将二进制特征设为1。
因此,分类特征是在底层进行热编码的,并且根据训练数据集中的特征分布使用值0或1(除非您选择使用LabelEncoder,否则将导致LIME将特征作为连续变量进行处理) 。
LIME项目中提供了一个很好的教程:https : //github.com/marcotcr/lime/blob/master/doc/notebooks/Tutorial%20-%20continuous%20and%20categorical%20features.ipynb
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句