如果我们使用4标签分类,我们如何计算随机森林分类器的准确性?

时间:2019-11-15 10:20:52

标签: python random-forest

我正在尝试预测在过去十年中出售的产品的质量属性。 基于喜欢/不喜欢,我保留了产品的4个标签 标签是:差,好,非常好,非常差

我已经下载了过去十年的数据,并在这4个标签中对样本进行了分类。当我将输入放入随机森林分类器中时,它会给出有效结果并赋予功能重要性:

以下是相同的代码:

classifier = RandomForestClassifier(
        n_estimators=100, n_jobs=6, oob_score=True, random_state=50,
        max_features="auto", min_samples_leaf=50
    )
    '''

    classifier = RandomForestClassifier(
        n_estimators=100, n_jobs=6, oob_score=True, random_state=50#, max_depth=3
    )

我只想了解,因为模型有4个标签,我们如何计算模型的准确性。

1 个答案:

答案 0 :(得分:1)

您可以检查一些准确性来评估模型质量;首先是整体模型的准确性(正确的模型数)。为此,您只需使用sklearn accuracy score

from sklearn.metrics import accuracy_score
accuracy_score(y_true, y_pred)

当然,这不能为您提供足够的信息来分类哪个类别和哪个类别(例如,将非常好而不是坏归为好)。为此,您需要一个confusion matrix

from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred)

您可能还想研究查全率和查准率,因为它们将有助于理解矩阵并对其进行量化。 由于对标签进行排名,您还可以做的是将标签转换为int值,并通过回归而不是分类来解决问题(然后将输出转换回int)。这样,模型就可以了解顺序,因此可以得到序数分类。

编辑:

只要答案不清楚,您就可以通过以下方式获得y_pred

classifier.fit(x_train, y_train)
y_pred = classifier.predict(x_val)