我正在尝试预测过去十年来销售的产品的质量属性。基于喜欢/不喜欢,我保留了产品标签的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个标签。
发布于 2019-11-15 18:45:35
有几个精度可以检查以评估模型质量;第一个是总体模型精度(正确的模型有多少)。要做到这一点,您可以简单地使用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)https://stackoverflow.com/questions/58874911
复制相似问题