File size: 6,173 Bytes
0a6452f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# 示例和使用教程

本目录包含了情绪与生理状态变化预测模型的完整示例和使用教程,帮助用户快速上手使用项目。

## 目录结构

```
examples/
├── README.md                    # 本文件 - 示例目录说明
├── sample_data.json            # JSON格式示例数据
├── sample_data.csv             # CSV格式示例数据
├── quick_start.py              # 快速开始教程
├── training_tutorial.py        # 详细训练教程
├── inference_tutorial.py       # 推理教程
├── data/                       # 教程生成的数据目录
├── models/                     # 教程生成的模型目录
├── training_outputs/           # 训练教程输出目录
└── inference_outputs/          # 推理教程输出目录
```

## 文件说明

### 示例数据文件

#### `sample_data.json`
- **格式**: JSON格式,包含10个样本的完整数据
- **内容**: 每个样本包含7维输入特征和5维输出标签
- **用途**: 用于快速测试和演示模型功能

#### `sample_data.csv`
- **格式**: CSV格式,包含20个样本的完整数据
- **内容**: 包含表头,便于批量处理和数据分析
- **用途**: 用于批量测试和数据分析

### 教程脚本

#### `quick_start.py` - 快速开始教程
**目的**: 为新用户提供最简单的上手体验

**功能**:
- 生成合成训练数据
- 训练基础模型
- 进行推理预测
- 解释预测结果

**运行方式**:
```bash
cd examples
python quick_start.py
```

**输出**:
- `examples/data/training_data.csv` - 训练数据
- `examples/models/quick_start_model.pth` - 训练好的模型
- `examples/models/quick_start_preprocessor.pkl` - 数据预处理器

#### `training_tutorial.py` - 详细训练教程
**目的**: 深入演示模型训练的完整流程

**功能**:
- 数据准备和探索性分析
- 数据预处理和特征工程
- 模型配置和架构选择
- 训练过程监控和可视化
- 模型评估和验证
- 超参数调优示例

**运行方式**:
```bash
cd examples
python training_tutorial.py
```

**输出**:
- `examples/training_outputs/` - 训练过程的所有输出文件
  - `train_data.csv`, `val_data.csv`, `test_data.csv` - 数据分割
  - `feature_distribution.png` - 特征分布图
  - `label_distribution.png` - 标签分布图
  - `correlation_heatmap.png` - 相关性热力图
  - `training_curves.png` - 训练曲线
  - `prediction_visualization.png` - 预测结果可视化
  - `preprocessor.pkl` - 数据预处理器
  - `best_model.pth` - 最佳训练模型
  - `training_history.json` - 训练历史记录
  - `evaluation_results.json` - 评估结果
  - `hyperparameter_tuning.json` - 超参数调优结果

#### `inference_tutorial.py` - 推理教程
**目的**: 全面演示模型推理的各种方法和技巧

**功能**:
- 单样本推理
- 批量推理
- 不同输入格式处理(列表、NumPy数组、字典、JSON、CSV)
- 结果解释和可视化
- 性能优化和基准测试
- 实际应用场景演示

**运行方式**:
```bash
cd examples
python inference_tutorial.py
```

**输出**:
- `examples/inference_outputs/` - 推理过程的所有输出文件
  - `single_inference_results.json` - 单样本推理结果
  - `batch_inference_results.json` - 批量推理结果
  - `prediction_distributions.png` - 预测分布对比图
  - `test_input.json`, `test_input.csv` - 测试输入文件
  - `result_interpretations.json` - 结果解释
  - `performance_optimization.json` - 性能优化结果
  - `real_world_scenarios.json` - 实际应用场景结果

## 数据格式说明

### 输入特征(7维)
1. `user_pleasure` (float, [-1, 1]) - 用户快乐度
2. `user_arousal` (float, [-1, 1]) - 用户激活度
3. `user_dominance` (float, [-1, 1]) - 用户支配度
4. `vitality` (float, [0, 100]) - 活力水平
5. `current_pleasure` (float, [-1, 1]) - 当前快乐度
6. `current_arousal` (float, [-1, 1]) - 当前激活度
7. `current_dominance` (float, [-1, 1]) - 当前支配度

### 输出标签(5维)
1. `delta_pleasure` (float, [-0.5, 0.5]) - 快乐度变化量
2. `delta_arousal` (float, [-0.5, 0.5]) - 激活度变化量
3. `delta_dominance` (float, [-0.5, 0.5]) - 支配度变化量
4. `delta_pressure` (float, [-0.3, 0.3]) - 压力变化量
5. `confidence` (float, [0, 1]) - 预测置信度

## 使用建议

### 初学者
1. 从 `quick_start.py` 开始,了解基本流程
2. 查看 `sample_data.json` 了解数据格式
3. 运行 `inference_tutorial.py` 学习推理方法

### 进阶用户
1. 运行 `training_tutorial.py` 学习完整训练流程
2. 修改配置文件进行自定义训练
3. 使用 `inference_tutorial.py` 中的性能优化技巧

### 开发者
1. 参考教程代码集成到自己的项目
2. 使用提供的工具函数进行数据处理
3. 根据实际需求调整模型架构

## 常见问题

### Q: 如何使用自己的数据?
A: 参考 `training_tutorial.py` 中的数据预处理部分,确保数据格式符合要求。

### Q: 如何调整模型架构?
A: 修改 `configs/model_config.yaml` 中的网络架构参数,或直接在代码中修改 `PADPredictor` 的初始化参数。

### Q: 如何提高预测精度?
A: 参考 `training_tutorial.py` 中的超参数调优部分,尝试不同的学习率、批次大小等参数。

### Q: 如何进行批量推理?
A: 使用 `inference_tutorial.py` 中演示的 `predict_batch` 方法。

### Q: 如何解释预测结果?
A: 参考 `inference_tutorial.py` 中的结果解释函数,了解各项指标的含义。

## 依赖要求

运行教程脚本需要安装以下依赖:
- Python 3.8+
- PyTorch
- NumPy
- Pandas
- Matplotlib
- Seaborn
- scikit-learn
- loguru
- PyYAML

安装命令:
```bash
pip install torch numpy pandas matplotlib seaborn scikit-learn loguru pyyaml
```

## 联系方式

如有问题或建议,请通过以下方式联系:
- 项目仓库: [GitHub仓库链接]
- 问题反馈: [Issues链接]
- 文档: [文档链接]

---

**注意**: 这些教程和示例主要用于学习和演示目的。在实际生产环境中使用时,请根据具体需求进行调整和优化。