MATLAB 机器学习多格式标准数据集集成与基准测试工具包
项目介绍
本项目是一个专门为机器学习从业者、研究人员及学生设计的综合性数据集管理与预处理工具。它旨在解决机器学习初期开发中繁琐的数据准备问题,通过高度集成的自动化流程,将原始数据转化为可直接用于模型训练的标准格式。项目集成了诸如鸢尾花(Iris)、葡萄酒(Wine)和波士顿房价(Boston Housing)等经典学术基准数据集,并支持 .mat 二进制格式与 .xlsx 表格格式的双重存储。无论是需要进行高性能矩阵运算,还是跨平台的数据交换与人工标注,该工具都能提供无缝支持。
功能特性
- 多格式兼容性:支持直接读取 MATLAB 原生 .mat 结构化文件、Excel(.xlsx)以及 CSV 文件,通过统一的调度器将不同来源的数据标准化为 MATLAB Table 表格。
- 自动化预处理流水线:内置缺失值自动检测与填充机制(支持均值、中位数策略),并能自动识别分类标签进行数值编码(Label Encoding)。
- 精细化特征工程:提供特征缩放功能,支持 Z-score 标准化与 Min-Max 归一化,确保特征在同一量级下参与运算。
- 科学的数据切分:用户可自定义实验比例,系统自动将原始数据打乱并划分为训练集、验证集与测试集,同时严格保持特征与标签间的逻辑关联。
- 深度的统计分析:自动生成包含均值、标准差、最小值、最大值、中位数及偏度(Skewness)在内的全方位统计摘要表。
- 多维可视化感知:内置特征相关性热力图与特征分布散点矩阵,帮助用户直观理解数据分布与变量间的关联。
系统要求- 运行环境:MATLAB R2018b 或更高版本。
- 必要工具箱:Statistics and Machine Learning Toolbox(用于调用相关统计函数、数据分布绘制及散点矩阵分析)。
实现逻辑说明主程序遵循模块化设计原则,其执行流程分为以下六个核心阶段:
- 环境初始化与示例模拟:
程序首先设置随机数种子(Default: 42)以保证实验结果的可复现性。随后通过模拟生成逻辑,创建包含特征噪声与随机缺失值的 Iris(.mat)、Wine(.xlsx)和 Boston Housing(.xlsx)样本文件,构建测试环境。
- 数据载入调度逻辑:
实现了智能加载子函数,能够根据文件后缀自动选择读取策略。对于 .mat 文件,程序会自动探测其中的变量并转换为 Table 格式;对于表格类文件,则利用内置的 readtable 引擎进行解析。
- 预处理流水线实现:
该模块严格执行三步走逻辑:
* 第一步,遍历数值型变量,根据配置策略(均值/中位数)自动填充 NaN 缺失值。
* 第二步,识别最后一列为目标标签。若标签为非数值型(如字符串、分类类型),则通过分组映射将其转换为整型数值,并记录原始标签映射信息。
* 第三步,对除标签外的特征列执行线性变换(Z-score 或 Min-Max),实现分布标准化。
- 随机切分机制:
程序通过 randperm 函数生成随机索引序列,依据用户定义的比例参数,精确计算切分位置,并输出包含 trainX, trainY, valX, valY, testX, testY 的结构化数据闭环。
- 统计推断逻辑:
独立于模型训练,系统会针对预处理后的每一列特征计算其描述性统计量。通过循环枚举所有变量,利用统计算法生成一张多维度的摘要表格,便于快速掌握数据偏好。
- 可视化映射逻辑:
可视化模块启动一个双子图窗口。左侧使用颜色映射(imagesc)展示特征间的相关系数矩阵,右侧利用 gplotmatrix 绘制特征间的散点矩阵,并以标签作为颜色分类依据,实现数据的降维感知。
关键函数与算法细节
- 数据载入逻辑:通过 fileparts 剥离文件扩展名,利用多分支条件语句实现对多种格式的统一接口。
- 缺失值处理器:采用列遍历算法,通过 isnumeric 筛选数值列,并利用 mean/median 的 'omitnan' 参数执行填充。
- 标签编码算法:使用 findgroups 函数对分类特征进行离散化编码,能够高效处理文本型标签到数值型的映射。
- 统计推断算法:在 generateStats 模块中,除了基础的一阶、二阶矩外,特别加入了 skewness(偏度)计算,用以衡量特征分布的对称性。
- 相关性分析:基于皮尔逊相关系数(corr)算法计算变量间的线性依赖关系,并映射为色值矩阵。
- 数据切分算法:采用基于随机索引的打乱切片技术,确保了各集合中数据分布的独立同分布特性。