【问题标题】:Show evaluation metrics in decision boundary plot在决策边界图中显示评估指标
【发布时间】:2021-10-10 13:39:31
【问题描述】:

我正在研究不平衡分类。我想在我的决策边界图中添加 g-mean 和准确性。很高兴在情节中看到这些评分指标的差异。我看不到在此决策边界图中计算这些分数的任何选项。有没有办法在我的决策边界图中添加这些额外的信息。我很感激你的时间。谢谢!

import numpy as np
import matplotlib.pyplot as plt
from mlxtend.plotting import plot_decision_regions
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_blobs
from sklearn.metrics import make_scorer
from imblearn.metrics import geometric_mean_score
from mlxtend.plotting import plot_decision_regions
import matplotlib.gridspec as gridspec
import itertools
gmean = make_scorer(geometric_mean_score, greater_is_better=True)
scoring = {'G-mean': gmean, 'Accuracy':'accuracy'}
X, y = make_blobs(n_samples=[1000, 10],centers=[[0.0, 0.0], [2.0, 2.0]],cluster_std= [1.5, 0.5],random_state=0, shuffle=False)
clf1 = LogisticRegression(max_iter=100000)
clf2 = LogisticRegression(class_weight="balanced",max_iter=100000)

gs = gridspec.GridSpec(2, 2)

fig = plt.figure(figsize=(10,8))

labels = ['Logistic Regression', 'Weighted Logistic Regression']
for clf, lab, grd in zip([clf1, clf2],
                         labels,
                         itertools.product([0, 1], repeat=2)):

    clf.fit(X, y)
    ax = plt.subplot(gs[grd[0], grd[1]])
    fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)
    plt.title(lab)
plt.show()

【问题讨论】:

    标签: matplotlib machine-learning scikit-learn classification logistic-regression


    【解决方案1】:

    您可以使用plt.text() 在您的决策边界图中添加 g-mean 和准确性。

    例如:

    gs = gridspec.GridSpec(2, 2)
    
    fig = plt.figure(figsize=(15, 8))
    
    labels = ['Logistic Regression', 'Weighted Logistic Regression']
    
    for clf, lab, grd in zip([clf1, clf2],
                             labels,
                             itertools.product([0, 1], repeat=2)):
    
        clf.fit(X, y)
        ax = plt.subplot(gs[grd[0], grd[1]])
        ax.text(6, 4, "gmean : ", fontsize=10)
        ax.text(6, 2, "accuracy : ", fontsize=10)
        fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)
        plt.title(lab)
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 2014-03-01
      • 2013-12-13
      • 2013-10-04
      • 2014-02-26
      • 1970-01-01
      • 2011-07-19
      • 2014-01-20
      • 2019-09-07
      相关资源
      最近更新 更多