0

我使用隔离森林模型进行异常值检测,还尝试构建 shap_force 图来查看特征。

我建立的隔离林模型是:

model = IsolationForest(n_estimators=50, max_samples='auto', contamination=float(0.2), max_features=1.0,random_state= 0)
model.fit(df)
pred = model.predict(df)
df['anomaly_label']=pred

我试图获得形状值:

def shap_plot(j):
    explainerModel = shap.TreeExplainer(model)
    shap_values_Model = explainerModel.shap_values(df,check_additivity=False)
    p = shap.force_plot(explainerModel.expected_value, shap_values_Model[j], S.iloc[[j]])
    return(p)

我得到的一些例子是:

形状值

形状值

基值和预测值很大,超出范围。我想知道为什么会这样?有没有办法解决这个问题?

4

0 回答 0