您只需复制/粘贴代码即可在您的环境中运行。
我发现的科学术语是成本最小化,而算法应用准确度最大化。这就是算法旨在获得最高的准确度,而我不关心准确性,我关心不会错误分类某个类。
我知道以下将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)
答案 0 :(得分:1)
我只能想到两个选择:
增加正面等级的重量
DecisionTreeClassifier有一个参数,可让您更改每个类的默认权重。默认值是平衡值,这意味着,所有类都具有权重= 1.为了最大限度地减少漏报,您可以为正类标记数据提供更大的权重。
创建评分函数以最大限度地减少误报
算法计算每个类的概率。如果你有两个类别分类问题,那么如果一个样本的概率是> = 0.5,那么它被评分为1,如果它是<0.5,则评分为0。
这些概率与训练的模型一起返回,您可以通过dt.predict_proba
获得它们。因此,不要获得模型返回的评分标签,而是使用预测概率创建评分函数,以最大限度地减少成本矩阵中的误报。