Python 逻辑回归:招聘成绩可视化实战

Python 逻辑回归实战:招聘考试成绩二分类与决策边界可视化

🍁 前言

在机器学习入门阶段,逻辑回归是最经典、最常用的二分类算法。本文基于一份真实考试成绩数据集,完整复现:数据读取 → 数据集划分 → 模型训练 → 模型评估 → 决策边界可视化全流程。

代码可直接复制运行,附带常见报错解决方案,适合机器学习初学者作为课程作业 / 练手项目。


📊 数据集说明

数据集文件:logi-y.txt
格式:逗号分隔,共 93 条样本

  • 第 1 列:科目 1 成绩

  • 第 2 列:科目 2 成绩

  • 第 3 列:标签(0 = 未录取,1 = 录取)


在这里插入图片描述


🧰 环境依赖

pip install numpy matplotlib scikit-learn

✅ 完整可运行代码

# 1. 导入库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 2. 读取数据
data = np.loadtxt('logi-y.txt', delimiter=',')
X = data[:, 0:2]
y = data[:, 2]

# 3. 划分训练集/测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)

# 4. 训练逻辑回归模型
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 5. 模型评估
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print(f"模型准确率:{acc:.4f}")

# 6. 绘制决策边界
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 500),
                     np.linspace(y_min, y_max, 500))

Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

plt.figure(figsize=(8, 6))
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Pastel1, alpha=0.5)

# 绘制样本点
plt.scatter(X[y==0, 0], X[y==0, 1], c='blue', marker='o', label='未录取')
plt.scatter(X[y==1, 0], X[y==1, 1], c='red', marker='^', label='已录取')

plt.xlabel('科目1成绩')
plt.ylabel('科目2成绩')
plt.title('逻辑回归——招聘成绩分类')
plt.legend()
plt.show()

📌 代码核心说明

  1. 数据读取
    使用 np.loadtxt 直接读取 txt 逗号分隔数据,快速转为特征矩阵与标签。

  2. 数据集划分
    按 7:3 比例划分训练集与测试集,random_state=42 保证结果可复现。

  3. 模型训练
    使用 LogisticRegression,设置 max_iter=1000 避免不收敛警告。

  4. 模型评估
    accuracy_score 计算分类准确率。

  5. 可视化
    生成网格点预测,绘制决策边界,直观展示分类效果。


🧩 运行结果示例

模型准确率:0.9286

输出一张带决策边界的散点图:

  • 蓝色圆点:未录取样本

  • 红色三角:录取样本

  • 背景色块:模型决策区域
    在这里插入图片描述


🛠️ 常见问题解决

问题 解决方案
文件找不到 logi-y.txt 与代码放在同一目录
中文乱码 添加 plt.rcParams 字体配置
模型不收敛 增加 max_iter=1000
准确率异常 检查特征与标签是否取反

🎯 总结

本文通过招聘成绩二分类任务,完整实现了逻辑回归从数据到可视化的全流程,代码简洁、可直接用于课程作业。
逻辑回归是线性分类基础,掌握后可快速迁移到 SVM、决策树、神经网络等模型。


🔖 标签

Python 机器学习 逻辑回归 二分类 Matplotlib 数据可视化 课程作业

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐