一、机器学习中数据预处理的作用与目的
对于机器学习而言,数据预处理是指在数据挖掘、数据分析、模型构建训练等过程中,对原始数据进行一系列的处理,以提高数据质量、减少噪声、提取有用信息等。数据预处理的主要目的是将原始数据转换为有用的数据,以便于后续的数据分析和模型构建。
二、表格数据在机器学习中的通用预处理流程理论
(一)数据的收集与导入
数据的收集,即从各种数据源获取相关的表格数据,比如数据库(常见的如 MySQL、Oracle 等)、文件(CSV、Excel 格式等)、网页抓取等途径;数据的导入,即使用对应的编程库将数据导入到分析环境中。
(二)数据探索性分析(EDA)
数据探索性分析主要由三部分构成,分别为数据概况阅览、统计描述和可视化分析。了解数据的基本信息,包括行数、列数、各列的数据类型(是数值型、字符型还是日期型等);计算数值型列的统计量,像均值、中位数、标准差、最大值、最小值等,这有助于把握数据的分布情况;利用绘图库(如 matplotlib 或 seaborn)对数据进行可视化呈现。绘制柱状图查看分类变量的分布情况,用直方图查看数值变量的分布是否符合正态分布等。
(三)数据清洗
数据清洗主要由三部分构成,分别为处理缺失值、处理重复值和处理异常值。
对于数据缺失情况而言,若缺失值占比过大(或对于模型不重要),可考虑直接删除对应的行或列,否则根据数据特征及分布采用合适的方法填充。常见的有均值填充(对于数值型且近似正态分布的数据,可用该列均值填充缺失部分)、中位数填充(当数据有偏态分布时较合适)、众数填充(适用于分类数据),还可以使用更复杂的算法如基于 K 近邻的填充方法、根据与该缺失值所在记录相似的其他记录对应值来估算填充以及建立关联因子估算方程来估算填充;
对于数据重复而言,利用 drop_duplicates() 函数等去除完全重复的行,保证数据集中每条记录都是唯一有效的,避免重复数据对模型训练产生误导;
对于数据异常而言,通过可视化(箱线图等)、基于统计规则(如超出均值一定倍数标准差的值视为异常值)等方法来判断并选择修正异常值或者直接删除异常值所在的行(若属于人为输入的数据错误可直接删除)。
(四)数据转换
数据转换主要由两部分构成,分别为数据编码和数据标准化/归一化。
对于数据编码而言,字符型的分类变量需要转换为数值形式以便模型处理,常见编码方式有独热编码(One-Hot Encoding)和标签编码(Label Encoding);顺序变量则可以根据其值域设置区间映射为合理数值;
对于数据标准化/归一化而言,常见的有适用于很多基于距离计算的机器学习算法的Z-score 标准化,其可以避免不同特征量纲差异对模型训练的影响、归一化则是将数据映射到特定区间,在一些对数据范围有要求的场景会用到(如神经网络的输入数据等)。
(五)特征工程
特征工程主要由两部分组成,分别为特征选择与特征构造。
对于特征选择而言,常见方法有过滤法(根据特征的相关性系数、卡方检验值等统计指标筛选出与目标变量相关性强的特征,去除相关性弱或无关的特征,减轻模型计算负担同时避免引入噪声)、包装法(将特征选择作为一个搜索问题,利用模型评估指标来判断不同特征组合的好坏,逐步选择出最优特征子集)和嵌入法(在模型训练过程中自动进行特征选择);
对于特征构造而言,主要为基于业务逻辑构造(结合具体业务场景,从已有特征衍生出新的有意义特征)和多项式特征构造(通过对已有数值特征进行多项式组合以增加数据的非线性表达能力)。
(六)数据集划分
通常按照一定比例将原始数据集划分为训练集、验证集和测试集。
参考资料:
[1] 2.1 探索性数据分析【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili
[2] 2.2 数据清理【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili
[3] 2.3 数据变换【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili
[4] 2.4 特征工程【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili
[5] 猛猛冲!Kaggle比赛七大机器学习实战科大讯飞大佬精讲!手把手带你打比赛!手写数字识别/房价预测/泰坦尼克号幸存者预测/深度学习/人工智能_哔哩哔哩_bilibili