逻辑回归基本原理
公式推导
代码演示
简单示例
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 生成一个分类数据集,包括100个样本,2个特征,2个信息特征,0个冗余特征,每个类别一个簇,随机种子为42
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0,
n_clusters_per_class=1, random_state=42)
# 将数据集划分为训练集和测试集,测试集占总数据的30%,随机种子为42
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建一个逻辑回归分类器
logreg = LogisticRegression()
# 使用训练集对模型进行训练
logreg.fit(X_train, y_train)
# 使用测试集进行预测
y_pred = logreg.predict(X_test)
可视化展示逻辑回归决策边界
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
# 生成一个分类数据集,包括1000个样本,2个特征,2个信息特征,0个冗余特征,每个类别中有一个簇,随机种子为42
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0,
n_clusters_per_class=1, random_state=42)
# 创建一个逻辑回归分类器
logreg = LogisticRegression()
# 使用数据集训练模型
logreg.fit(X, y)
# 绘制数据点和决策边界
plt.figure(figsize=(8, 6))
# 绘制数据点,c=y根据类别标签y的不同着色,使用'bwr'颜色图,alpha=0.5表示透明度
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='bwr', alpha=0.5)
# 生成网格点来绘制决策边界
h = 0.02 # 步长
x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = logreg.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
# 绘制决策边界
# 使用contourf函数绘制决策边界,alpha=0.3表示透明度,cmap='bwr'表示颜色图
plt.contourf(xx, yy, Z, alpha=0.3, cmap='bwr')
# 添加标签和标题
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('Logistic Regression Decision Boundary')
# 添加颜色图示
plt.colorbar()
# 显示图形
plt.show()