您只需复制/粘贴代码即可在您的环境中运行。
我发现的科学术语是成本最小化,而算法应用精度最大化。也就是说,算法旨在获得最高分的准确性,而我不关心准确性,我关心的是不要错误地分类某个类。
我知道以下内容将 CART 算法用于决策树,我如何更改它以强调错误分类 False 比错误分类正值更危险。我知道这个术语是成本最小化,但我不确定如何应用它或搜索哪些书籍。
import numpy as np
import pandas as pd
from sklearn.datasets import make_classification
from sklearn.tree import DecisionTreeClassifier
X, y = make_classification(n_samples=1000,
n_features=6,
n_informative=3,
n_classes=2,
random_state=0,
shuffle=False)
# Creating a dataFrame
df = pd.DataFrame({'Feature 1':X[:,0],
'Feature 2':X[:,1],
'Feature 3':X[:,2],
'Feature 4':X[:,3],
'Feature 5':X[:,4],
'Feature 6':X[:,5],
'Class':y})
y_train = df['Class']
X_train = df.drop('Class',axis = 1)
dt = DecisionTreeClassifier(random_state=42)
dt.fit(X_train, y_train)
我只能想到两个选项:
增加正类的权重
决策树分类器有一个参数,用于更改每个类的默认权重。默认值为平衡值,这意味着所有类的权重 = 1。为了最大程度地减少假阴性,您可以为阳性类标记数据赋予更大的权重。
创建评分函数以最大程度地减少漏报
该算法计算每个类的概率。如果您有两个类分类问题,那么如果一个样本的概率为>=0.5,则评分为 1,如果为 <0.5,则评分为 0。
这些概率随经过训练的模型一起返回,您可以通过dt.predict_proba
获取它们。因此,不要获取模型返回的评分标签,而是使用预测概率创建评分函数,以最大程度地减少成本矩阵上的漏报。