1

私はバイナリ分類問題で決定木アルゴリズムを使用しており、目標は分類の誤検知 (最大化positive predicted value) を最小限に抑えることです (診断ツールのコストは非常に高くなります)。

weight偽陽性の誤分類にペナルティを課すために、ジニ/エントロピー分割基準を導入する方法はありますか?

ここでは、たとえば、修正されたジニ指数は次のように与えられます。

ここに画像の説明を入力

したがって、Scikit-learn でそれを実装する方法があるかどうか疑問に思っていますか?

編集

で遊ぶとclass_weight、次の結果が得られました。

from sklearn import datasets as dts
iris_data = dts.load_iris()

X, y = iris_data.features, iris_data.targets
# take only classes 1 and 2 due to less separability
X = X[y>0]
y = y[y>0]
y = y - 1 # make binary labels

# define the decision tree classifier with only two levels at most and no class balance
dt = tree.DecisionTreeClassifier(max_depth=2, class_weight=None)

# fit the model, no train/test for simplicity
dt.fit(X[:55,:2], y[:55])

決定境界をプロットし、木Blue は正です (1) :

ここに画像の説明を入力

少数派のクラスを上回っている(またはより貴重な):

dt_100 = tree.DecisionTreeClassifier(max_depth=2, class_weight={1:100})

ここに画像の説明を入力

4

1 に答える 1