我有一个基因数据集,其中行的索引是基因的名称。我还希望找到任何给定基因的行号,以便在基因通过机器学习模型预测后单独查看基因 - 以解释基因的预测。我如何为 shap 图编码目前需要一个行号来提取特定基因。
我的数据如下所示:
Index Feature1 Feature2 ... FeatureN
Gene1 1 0.2 10
Gene2 1 0.1 7
Gene3 0 0.3 10
例如,如果我想拉出并查看模型预测,Gene3
我会这样做:
import shap
shap.initjs()
xgbr = xgboost.XGBRegressor()
def shap_plot(j):
explainerModel = shap.TreeExplainer(xgbr)
shap_values_Model = explainerModel.shap_values(X_train)
p = shap.force_plot(explainerModel.expected_value, shap_values_Model[j], X_train.iloc[[j]],feature_names=df.columns)
return(p)
shap_plot(3)
做shap_plot(3)
对我来说是个问题,因为我实际上不知道我想要的基因是否在打乱的训练或测试数据的第 3 行。
有没有办法从已知的基因索引中提取行号?或者可能重新编码我的 shap 图,以便它接受我的字符串索引?我有生物学背景,所以任何指导将不胜感激。