箱线图显示不正确

时间:2019-12-03 01:39:19

标签: python matplotlib plot

我正在尝试比较不同的机器学习算法。我使用Box图进行比较。但是,该图未显示适当的结果。这是代码:

results = []
names = []
for name, model in models:
    kfold = KFold(n_splits=4, random_state=1, shuffle=True)
    cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring='accuracy')
    results.append(cv_results)
    names.append(name)
    print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))

# Compare Algorithms

pyplot.xticks(range(1,9),labels=names,rotation=40,ha='right')
pyplot.boxplot(results, labels=names)
pyplot.title('Algorithm Comparison')
pyplot.ylabel(("Accuracy"))
pyplot.show()

结果输出:

LDA: 0.769728 (0.008044)
KNN: 1.000000 (0.000000)
Random Forset: 1.000000 (0.000000)
CART: 1.000000 (0.000000)
NB: 0.514771 (0.004631)
SVM: 1.000000 (0.000000)

谁能看到我做错了什么,以便我可以解决。 plot

1 个答案:

答案 0 :(得分:0)

箱形图的行为符合预期。
请看一下您的输出。其中一些模型的标准偏差为0。这意味着平均值和标准偏差可能仅从单个点计算得出。由于最后没有分布,这也意味着没有标准偏差,也没有四分位数。因此,您在绘图中只得到一条直线,仅代表平均值。