Files
module1_3/README.md
2026-02-27 15:43:30 +08:00

98 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 作战体系数据清洗与标准化系统
## 项目简介
本项目用于处理异质作战体系节点的原始JSON数据。系统能够自动识别并修复数据中的噪声、缺失值、异常值并将关键效能指标标准化至 [0, 1] 区间,最终输出符合建模要求的高质量数据集。
## 目录结构
```
project/
├── data/
│ ├── raw_data_sample.json # 原始输入数据(包含噪声和错误)
│ └── cleaned_data_final.json # 清洗后的输出数据
├── src/
│ └── cleaner.py # 清洗运行程序
├── report/
│ └── detailed_cleaning_report.json # 详细清洗报告
└── README.md # 项目说明文档
```
## 清洗流程说明
程序按以下顺序依次执行五步清洗操作:
### 1. 去重 (clean_duplicates)
- **依据**:按 `TARGET_ID` 去重,同一目标只保留一条记录
- **策略**:若存在 `CREATED_TIME` 字段,按创建时间倒序排序后保留最新一条;否则保留第一条
- **目的**:消除重复录入的目标节点
### 2. 缺失值填充 (handle_missing_values)
- **范围**:对所有数值型列(除 ID 外)进行处理
- **策略**
- 先按 `ROLE_ID` 分组,用同类型单位的均值填充该组内缺失值
- 若分组后仍有缺失(如该组仅有一条记录),用全列均值兜底填充
- **目的**:保证数值字段完整,便于后续建模
### 3. 异常值纠正 (correct_outliers)
- **涉及字段**`TARGET_RECOGNITION_CAPABILITY``STRIKE_ACCURACY``ANTI_JAMMING_CAPABILITY``ENVIRONMENT_ADAPTABILITY``MOBILITY`
- **规则**
- 若值 < 0取绝对值
- 若值 > 1截断为 1.0
- **目的**:将效能指标统一限制在 [0, 1] 区间内
### 4. 噪声平滑 (apply_kalman_filter)
- **对象**`COMMUNICATION_RANGE`(通信范围)字段
- **方法**:使用窗口大小为 3 的移动平均进行平滑(与卡尔曼滤波效果类似的时序平滑)
- **结果**:数值保留 2 位小数
- **目的**:削弱测量噪声对连续数值的影响
### 5. 标准化与输出
- 坐标精度统一为 2 位小数
- 时间戳统一为 ISO-8601 格式
- 输出清洗后 JSON 及详细报告(含各步骤的统计与示例)
## 快速开始
### 1. 环境依赖
本项目仅依赖 Python 标准库及 NumPy/Pandas
```bash
pip install numpy pandas
```
### 2. 运行清洗
在项目根目录下执行:
```bash
python src/cleaner.py
```
程序会读取 `data/raw_data_sample.json`,处理后生成:
- `data/cleaned_data_final.json`(清洗后的数据)
- `report/detailed_cleaning_report.json`(详细清洗报告)
## 输出结果示例
**清洗前 (Raw):**
```json
{
"MOBILITY": -0.5,
"STRIKE_ACCURACY": 1.5,
"COMMUNICATION_RANGE": 102.8116
}
```
**清洗后 (Cleaned):**
```json
{
"MOBILITY": 0.5,
"STRIKE_ACCURACY": 1.0,
"COMMUNICATION_RANGE": 102.81
}
```
## 清洗报告说明
`detailed_cleaning_report.json` 中包含:
- **summary**:总记录数、最终记录数、去重数量
- **details**:各字段缺失值填充数量、异常值修正数量及示例、噪声平滑处理记录、标准化说明