学生代码实验包:从“能运行”到“能比较”

本包提供配套的 Python 与 R 实验。中文讲解帮助理解研究问题;英文代码注释说明操作目的和计算约定。先阅读本说明,再按 实验任务单 提出预测、运行、记录和解释。

数据与适用边界

运行前准备

先解压整个 student-lab 文件夹,保留目录结构。下列命令均在该文件夹运行。数据含义见 data/data_dictionary.csv。

Python 依赖仅为 NumPy 与 pandas;requirements.txt 固定依赖版本。建议使用 Python 3.11 或 3.12。安装与运行:

python -m pip install -r requirements.txt
python student/selfcheck_python.py
python student/starter_python.py
python student/experiments_python.py

也可以用入口脚本的绝对路径运行。已有 Jupyter 环境时,在本目录或 student 子目录打开 student/starter_python.ipynb。请选择已安装 NumPy/pandas 的内核,按顺序运行各单元。Notebook 的结果会在运行后显示;Jupyter 不包含在最小依赖中。

R 仅需 base R。命令行运行:

Rscript student/selfcheck_R.R
Rscript student/starter_R.R
Rscript student/experiments_R.R

在 RStudio 中先将工作目录设为 student-lab,再使用:

source('student/selfcheck_R.R')
source('student/starter_R.R')
source('student/experiments_R.R')

三个层次

  1. 入门:一次改变一个设置。 starter_python.py / starter_R.R 运行默认网络并保存一行指标和完整曲线。只改文件顶部的 HIDDEN、LEARNING_RATE 或 L2 之一。
  2. 比较:有控制条件的实验。 experiments_python.py / experiments_R.R 自动运行常数概率基线、逻辑回归、默认神经网络,以及六个单因素变体,并扫描同一组概率的分类阈值。
  3. 进阶:检查解释与实现。 Notebook 提供标准化核查、保留轮次分析、受控特征消融和证据记录。计算检查涵盖指标边界、阈值性质、梯度或训练保留逻辑。详见任务单。

输出在哪里?

每次运行会创建独立目录,避免无声覆盖旧记录。

完整比较写出五个 CSV:

文件 内容 用途
comparison.csv 9 个候选、设置、保留/停止轮次、验证指标、保留模型的训练/验证损失 比较基线与单因素变化
learning_curves.csv 8 个可训练候选的逐轮训练/验证交叉熵 观察收敛、分叉与停止;常数基线没有训练曲线
thresholds.csv 同一默认网络概率在 5 个阈值的指标与示例成本 区分概率预测与决策规则
scaling.csv 七个特征的训练均值与总体标准差 核查预处理来源
val_predictions.csv 180 条合成验证记录的标签及三个基线模型的概率 独立复算指标;这些仍是开发标签

comparison.csv 与 thresholds.csv 的 split=development_validation 明确标识分数用途。预测文件保留数据原有的 split=val。入门运行只保存前两类文件。Notebook 还会保存可填写的比较记录和特征消融结果。

固定算法约定

文档和代码地图

不要只交截图或最高分。请交可复现设置、CSV、比较解释和证据边界。