Python 逻辑回归:招聘成绩可视化实战
·
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()
📌 代码核心说明
-
数据读取
使用np.loadtxt直接读取 txt 逗号分隔数据,快速转为特征矩阵与标签。 -
数据集划分
按 7:3 比例划分训练集与测试集,random_state=42保证结果可复现。 -
模型训练
使用LogisticRegression,设置max_iter=1000避免不收敛警告。 -
模型评估
用accuracy_score计算分类准确率。 -
可视化
生成网格点预测,绘制决策边界,直观展示分类效果。
🧩 运行结果示例
模型准确率:0.9286
输出一张带决策边界的散点图:
-
蓝色圆点:未录取样本
-
红色三角:录取样本
-
背景色块:模型决策区域

🛠️ 常见问题解决
| 问题 | 解决方案 |
|---|---|
| 文件找不到 | 将 logi-y.txt 与代码放在同一目录 |
| 中文乱码 | 添加 plt.rcParams 字体配置 |
| 模型不收敛 | 增加 max_iter=1000 |
| 准确率异常 | 检查特征与标签是否取反 |
🎯 总结
本文通过招聘成绩二分类任务,完整实现了逻辑回归从数据到可视化的全流程,代码简洁、可直接用于课程作业。
逻辑回归是线性分类基础,掌握后可快速迁移到 SVM、决策树、神经网络等模型。
🔖 标签
Python 机器学习 逻辑回归 二分类 Matplotlib 数据可视化 课程作业
更多推荐



所有评论(0)