我正在使用 XGBoost 对文本数据进行分类。训练数据集中有 3 个不同的类。
classifier = Pipeline([
('features', FeatureUnion([
('text', Pipeline([
('colext', TextSelector('Issue')),
('tfidf', TfidfVectorizer(tokenizer=Tokenizer, stop_words='english',
min_df=.0025, max_df=0.25, ngram_range=(1,3))),
('svd', TruncatedSVD(algorithm='randomized', n_components=300)), #for XGB
]))
])),
('clf', XGBClassifier(n_estimators=300,max_depth=3, learning_rate=0.1)),
# ('clf', RandomForestClassifier()),
])
根据分类结果,将预测概率最高的类分配给数据点。例如,如果 A 类的预测概率为 0.67,则该数据点被分配给该类别(A 类)。
predictionProbability=classifier.predict_proba(X_test)
但是,如果数据点的预测概率在类之间没有太大差异,则要求将数据点分配给“未确定”的第 4 类。例如,如果三个类别的数据点的预测概率是 .32,.33,.35,那么我们可以将其标记为未确定。这样用户就可以查看未确定的类别并将其分配给适当的类。
但我不确定如何设置多类分类问题的截止概率?请让我知道如何确定截止概率。这样我就可以将预测概率小于截止概率的数据点标记为“未确定”