上传文件至 /

This commit is contained in:
2026-05-19 11:31:06 +08:00
parent 2870ca5341
commit 53779bd31e
5 changed files with 409 additions and 360 deletions

View File

@@ -1,40 +1,39 @@
# -*- coding: utf-8 -*-
"""
配置文件 - 所有超参数集中管理
设计思路:
将超参数分门别类,学生可以单独修改某一类而不会影响其他
"""
# ==================== 数据相关 ====================
DATA_DIR = 'data/ChnSentiCorp' # 数据集路径
MAX_FEATURES = 3000 # 词表最大容量
MAX_SEQ_LEN = 100 # 句子最大长度(词数)
VECTORIZER_TYPE = 'tfidf' # 'tfidf' 或 'bow'(向量化方式)
# ==================== 模型相关 ====================
MODEL_TYPE = 'mlp' # 'mlp' 或 'lr'(模型类型)
HIDDEN_SIZE = 64 # MLP隐藏层大小LR忽略
NUM_CLASSES = 2 # 类别数(正面/负面二分类)
KEEP_PROB = 1.0 # Dropout保留概率LR忽略设为1即可
# ==================== 训练相关 ====================
LEARNING_RATE = 0.06 # 学习率
NUM_EPOCHS = 101 # 训练轮数
BATCH_SIZE = 65 # 批次大小
# ==================== 类别权重(解决数据不平衡问题)====================
USE_CLASS_WEIGHT = True # True=启用类别权重, False=不启用(对比用)
# 权重计算公式: n_samples / (n_classes * n_class_i)
# 正面评论多所以权重小,负面评论少所以权重大
CLASS_WEIGHT_POS = 0.85 # 正面类权重(自动计算
CLASS_WEIGHT_NEG = 1.75 # 负面类权重(自动计算
# ==================== 实验相关 ====================
RUN_COMPARISON = False # True=运行对比实验, False=运行单个模型
COMPARE_MODELS = ['lr', 'mlp'] # 要对比的模型列表
COMPARE_VECTORS = ['bow', 'tfidf'] # 要对比的向量化方式
# ==================== 其他 ====================
RANDOM_SEED = 42 # 随机种子(保证可复现)
VERBOSE = True # 打印详细日志
# -*- coding: utf-8 -*-
"""
手写数字识别 - 超参数配置
纯NumPy实现的两层全连接神经网络
"""
# ===== 数据参数 =====
ONE_HOT = True # 标签是否使用One-Hot编码
# ===== 模型结构 =====
INPUT_SIZE = 784 # 28x28 = 784 像素
HIDDEN_SIZE = 128 # 隐藏层神经元数量
NUM_CLASSES = 10 # 0-9 十个数字
KEEP_PROB = 1.0 # Dropout保留比例1.0=不使用Dropout
# ===== 训练参数 =====
LEARNING_RATE = 0.1 # 学习率
NUM_EPOCHS = 50 # 训练轮数
BATCH_SIZE = 64 # 批大小
# ===== 随机种子(保证可复现) =====
SEED = 42
# ===== 实验配置 =====
RUN_COMPARISON = False # 是否运行对比实验
# ===== 依赖说明 =====
# 本项目需要以下库:
# numpy - 数值计算
# scikit-learn - 加载MNIST数据集会自动下载
# pandas - sklearn的依赖
#
# 安装命令:
# pip install numpy scikit-learn pandas
#
# 数据说明:
# 首次运行时会自动从OpenML下载MNIST数据集约12MB
# 下载后会自动缓存,后续运行直接使用缓存数据