逻辑回归决策边界可视化

在机器学习中,逻辑回归是一种广泛使用的分类算法。它不仅可以用于二分类问题,还可以通过一些技巧扩展到多类别分类问题。本文将介绍如何使用Pythonscikit-learn库来绘制多类别逻辑回归和One-vs-Rest(OvR)逻辑回归的决策边界,以直观展示这两种方法在数据集上的分类效果。

多类别逻辑回归

多类别逻辑回归是将二分类逻辑回归扩展到多类别情况的一种方法。在这种设置下,每个类别都有一个逻辑回归模型,用于预测样本属于该类别的概率。通过比较这些概率,可以确定样本最有可能属于的类别。

在下面的代码示例中,首先生成了一个包含三个类别的数据集,然后使用逻辑回归模型进行训练,并绘制了决策边界。可以看到,决策边界清晰地将不同类别的样本分隔开来,显示出模型良好的分类效果。

import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import make_blobs from sklearn.inspection import DecisionBoundaryDisplay from sklearn.linear_model import LogisticRegression from sklearn.multiclass import OneVsRestClassifier # 生成三类数据集 centers = [[-5, 0], [0, 1.5], [5, -1]] X, y = make_blobs(n_samples=1000, centers=centers, random_state=40) transformation = [[0.4, 0.2], [-0.4, 1.2]] X = np.dot(X, transformation) # 训练多类别逻辑回归模型 clf = LogisticRegression(solver='sag', max_iter=100, random_state=42) clf.fit(X, y) # 绘制决策边界 _, ax = plt.subplots() DecisionBoundaryDisplay.from_estimator(clf, X, response_method='predict', cmap=plt.cm.Paired, ax=ax) plt.title("多类别逻辑回归决策边界") plt.axis("tight") plt.show()

One-vs-Rest逻辑回归

One-vs-Rest(OvR)是一种多类别分类策略,它将多类别问题转化为多个二分类问题。对于每个类别,训练一个二分类模型,将该类别与其他所有类别区分开来。在预测时,为每个样本计算所有类别的预测概率,然后选择概率最高的类别作为最终预测结果。

在下面的代码示例中,同样生成了一个包含三个类别的数据集,然后使用One-vs-Rest逻辑回归模型进行训练,并绘制了决策边界。可以看到,每个类别都有一个决策边界,将该类别与其他类别区分开来。这些决策边界共同构成了多类别分类的完整决策边界。

# 训练One-vs-Rest逻辑回归模型 clf = OneVsRestClassifier(LogisticRegression(solver='sag', max_iter=100, random_state=42)) clf.fit(X, y) # 绘制决策边界 _, ax = plt.subplots() DecisionBoundaryDisplay.from_estimator(clf, X, response_method='predict', cmap=plt.cm.Paired, ax=ax) plt.title("One-vs-Rest逻辑回归决策边界") plt.axis("tight") plt.show()

通过上述代码示例,可以看到多类别逻辑回归和One-vs-Rest逻辑回归在数据集上的分类效果。两种方法都能很好地将不同类别的样本分隔开来,显示出良好的分类性能。在实际应用中,可以根据具体问题和数据集的特点,选择合适的多类别分类方法。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485