概念
线性决策边界是一个用于分类问题的线性超平面,可以将不同类别的样本分开。在二维空间中,线性决策边界是一条直线,将两个不同类别的样本分隔开来。对于更高维的数据,决策边界可能是一个超平面。
线性决策边界的一般形式可以表示为:
在训练分类模型时,目标是找到合适的权重和偏置项,使得决策边界能够最好地将不同类别的样本分开。一些机器学习算法,如逻辑回归、支持向量机等,就是在不同约束和优化目标下寻找合适的决策边界参数。
代码实现
import numpy as np
import matplotlib.pyplot as plt
# 生成虚拟数据集
np.random.seed(42)
X = np.random.randn(100, 2)
y = (X[:, 0] + X[:, 1] > 0).astype(int)
# 将类别0和类别1的样本分开
X_class0 = X[y == 0]
X_class1 = X[y == 1]
# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(X_class0[:, 0], X_class0[:, 1], c='b', label='Class 0')
plt.scatter(X_class1[:, 0], X_class1[:, 1], c='r', label='Class 1')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
# 绘制线性决策边界
x_boundary = np.linspace(X[:, 0].min(), X[:, 0].max(), 100)
y_boundary = -x_boundary # 决策边界的直线方程为 x + y = 0
plt.plot(x_boundary, y_boundary, 'k--', label='Decision Boundary')
plt.legend()
plt.title("Linear Decision Boundary")
plt.show()