首页 国际新闻 正文

深入研究Catboost用于模型解释的功能-万博娱乐_万博体育官网登陆_万博体育ios版

点击上方关霍念晟言汐注,All in AI我国

咱们真的了解在咱们构建的ML模型中guge发作了什么吗?让咱们来探究吧。

在我之前的博客中,咱们看到了对XGBoost、LightGBM和Catboost的比较研讨。经过这种剖析,咱们得出结论,catboost在速度和精确性方面都优于其他两个。在这一部分中,咱们将深入探讨catboost,探究catboost为高效建模和了解超辽宁地图参数供给的新功用。

关于新读者来说,catboost是由Yandex团队深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版在2017年开发的一种开源梯度增强算法。它是一种机器学习算法,答应用户快速处理大型数据集的分类特征,这与XGBoost和LightGBM不同。 Catboost可用于处理回归、分类和排序问题。

作为数据科学家,咱们可以轻松地练习模型并进行猜测,可是,咱们常常无法了解这些独特算错爱天使法中发作的工作。这是咱们看到离线评价和终究出产之间模型功用差异巨胡耀威大的原因之一。现在是咱们不再将ML视为“黑匣子”而且在进步模型精确性的一起注重模型解说的时分了。这也有助于咱们辨认数据误差。在这一部分中,咱们将看到catboost怎样经过以下功用协助咱们剖析模型并进步可视性:

特征重要性

你为什么要知道它?

  • 删去不必要的特征以简化模型并缩短练习/猜测时刻
  • 为您的方针价值获取最具影响力的功用并操作它们以取得事务收益(例如:医疗保健供给商期望确认哪些要素会导致每位患者患某种疾病的危险,以便他们可以直接经过针对性药物处理这些危险要素)

除了挑选特征重要性的类型之外,咱们还应该知道咱们想要运用哪些数据来查找特征重要性 - 练习、测验或完结数据集。挑选一个在另一个上有利有弊,但终究,您需求决议是否要知道模型依赖于每个特征进行猜测的多少(运用练习数据)或该特征对功用的奉献程度模型对未见数据的影响(运用测验数据)。咱们稍后将看到,只要一些办法可用于查找未用于练习模型的数据的特征重要性。

假如您关怀第二个并假定您具有一切时刻和资源,那么柳荣夏找到特征重要性的最原始且最牢靠的办法是练习多个模型,一次留下一个特征并比较测验毛岸青集上的功用。假如功用相关于基线(当咱们运用一切功用时的功用)发作很大改变,则意味着该特征非常重要。可是,由于咱们生活在一个需求优化精度和核算时刻的实践环境中,这种办法是不必要的。以下是一些智能办法,其间catboost可让您找到合适您模型的最佳功用:

cb.get_feature_importance(type= "___")

"type" possible values:
- PredictionValuesChange
- LossFunc深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版tionChange
- FeatureImportance
PredictionValuesChange for non-ranking metrics and LossFunctionChange for ranbandking metrics
- ShapValues
Calculate SHAP Values for every object
- Interaction
Calculate pairwise score between every feature

PredictionValuesChange

关于每个要素,PredictionValuesChange显现猜测在特征值更改时均匀改变的程度。重要性值越大,均匀值越大,假如此特征发作改变,则猜测值会发作改变。

长处:核算成本低价,由于您无需进行屡次练习或测验,也不会存储任何额定信息。您将取得标准化值作为输出(一切重要性加起来将为100)。

缺陷:它可能会给排名方针带来误导性成果,它可能会将groupwise特性置于顶部,即便它们对终究的丢失值有一点影响。

LossFunctionChange丢失函数改变

为了取得这个特征的重要性,catboost简略地采用了在正常情况下(当咱们包含特征时)运用模型取得的衡量(Loss函数)与没有此特征的模型之间的差异。差异越大,特征越重要。在catboost文档中没有清晰说到咱们怎样在没有特征的情深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版况下找到模型。

长处和缺陷:这关于大多数类型的问题都很有用,这与猜测值改变不同,在这种情况下,您可以取得排名问题的误导性成果,一起,它的核算量很大。

Shap Values

httpblanks://github.com/slundberg/shap

SHAP值将猜测值分解为每个要素的奉献。它丈量特征对单个猜测值的影响并比较基线猜测(练习数据集的方针值的均匀值)进行比较。

shap值的两个主要用例:

1.特征的方针级奉献

shap_values = model.get_feature_importance(Pool(X_test, label=y_test,cat_features=categorical_features_i三宝局长ndices), 
type="ShapValues")
expected_vadytvlue = shap_values[0,-1]
shap_values = shap_values手机动态壁纸[:,:-1]深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版
shap.initjs()
shap.force_plot(expected_value, shap_values[3,:], X_test.iloc[3,:])

https://github.com葛粉/slundberg/shap

2.整个数据集的摘要(全体特征重要性)

shap.summary_plot(shap_values,X_test)

尽管咱们可以经过shap取得精确的特征重要性,但它们在核算上比catboost内置特征重要性更贵重。

奖金

依据相同概念但不同完成的另一个特征重要性是依据摆放的特征重要性。catbo深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版ost没有运用它,这纯粹是与模型无关而且易于核算。

咱们怎样挑选?

尽管BothPredictionValuesChange和LossFunctionChange可用于一切类型的方针,但主张运用LossFunctionChange对衡量进行排序。除了P深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版redictionValuesChange之外,一切其他办法都可以运用测验数据,运用在练习数据上练习的模型来查找特征重要性。

为了更好地了解这些差异,以下是咱们评论的一切办法的成果:

catboost特征的成果。猜测人们是否会从经典的“成人”人口普查数据会集陈述超越5万美元的收入(运用对数丢失)

从麻婆豆腐怎样做上面的图中,咱们可以看到大多数办法都赞同尖端特征。它看起来像LossFunctionChange最挨近shap(更牢靠)。可是,直接比较这些办法是不公平的,由于猜测值的改变是依据练习数据,而一切其他办法都是依据测验数据。

咱们还应该看到运转一切这些所需的时刻:

交互

运用此参数,您可以找到一对要素的强度(两个要素的重要性)。

在输出中,您将取得每对特性的列表。该列表将具有3个值,第一个值是该对中第一个要素的索引,第溉组词二个值是该对中第二个要素的索引,第三个值是该对的特征重要性得分。有关施行细节,请检查嵌入式笔记本。

值得注意的是,单个特征重要性中的前两个特征纷歧定是最强的一对。

笔记本

在笔记本中运用的数据集

方针重要性

你为什么要知道它?

  • 从练习数据中删去最无用的练习方针
  • 依据哪些新方针预期最“有用”,优先考虑一批新方针进行瓶邪肉符号,这类似于自动学习

运用此功用,您可以核算每个方针对测验数据的优化方针的影响。正值反映优化衡量添加,负值反映优化衡量削减。此办法是本文中描绘的办法的一种完成。这些算法的详细信息超出了本文的评论规模。

方针重要性的Catboost教程

cb.get_object_importance中有三种类型的update_method:

  • SinglePoint:最快、最不精确的办法
  • TopKLeaves:指定叶数。值越高、核算越精确、越慢
  • AllPoints:最慢、最精确的办法

例如,以下值将办法设置为TopKLeaves,并将叶数限制为3:

TopKLeaves:top= 3

模型剖析图

C电脑亮度怎样调atboost最近在其最新更新中推出了此功用。经过此功用,咱们将可以可视化算法怎样切割每个要素的数据,并检查特定于要素的计算信息。更具体地说,咱们将可以看到:

  • 每个bin的高美美均匀方针值(bin用于接连功用)或类别(现在仅支撑OHE功用)
  • 每个箱/类别的均匀猜测值
  • 每个bin中的方针数
  • 不同特征值的猜测:关于每个方针,特征值都是改变的,因而它会港居尚雅装修官网落入某个区域。然后,模型依据该特征的新值猜测方针,并获取区域中猜测的均匀值(由红点给出)。

这个图将为咱们供给信息,例如咱们的割裂是多么均匀(咱们不期望一切方针都进入一个区域),咱们的猜测是否挨近方针(蓝色和橙色线),红线将告知咱们,深入研讨Catboost用于模型解说的功用-万博文娱_万博体育官网登陆_万博体育ios版咱们的猜测多灵敏。

数值特征剖析

单热编码特征剖析