有没有办法获得用于拟合 scikit-learn 估计器的样本权重?

数据挖掘 Python scikit-学习
2022-03-11 17:29:54

许多 sklearn 估计器支持两种加权方案:

  • 每类权重:在创建估计器对象时给出(例如clf = DecisionTreeClassifier(class_weight={'Cat':0.4, 'Dog':0.6}

  • 每个样本的权重:在拟合创建的对象时给出(例如clf.fit(X, y, sample_weight=[0.1, 0.1, 0.8]

对于已经拟合的估计器,我可以得到每类的权重clf.get_params()['class_weight']

但是,在给定拟合估计器的情况下,获得使用的每个样本权重的正确方法是什么(如果有的话) ?

1个回答

快速搜索源代码,例如 RandomForestClassifier,找不到任何sample_weight保存为类属性的地方。我怀疑这是一个有意识的决定:样本权重与数据集直接相关,也不会保存以供以后使用;这就是为什么sample_weight出现在 fit 方法而不是类实例化中的原因。