机器学习之数据预处理理论——基于表格数据分析

一、机器学习中数据预处理的作用与目的

        对于机器学习而言,数据预处理是指在数据挖掘、数据分析、模型构建训练等过程中,对原始数据进行一系列的处理,以提高数据质量、减少噪声、提取有用信息等。数据预处理的主要目的是将原始数据转换为有用的数据,以便于后续的数据分析和模型构建。

二、表格数据在机器学习中的通用预处理流程理论

(一)数据的收集与导入

        数据的收集,即从各种数据源获取相关的表格数据,比如数据库(常见的如 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

### 关于机器学习中的数据预处理 #### 数据预处理的重要性 数据预处理机器学习项目中不可或缺的一环,它涉及数据的清洗、格式化、归一化、特征提取等一系列操作,以便为后续的模型训练和分析提供高质量的数据集[^2]。 #### 主要步骤概述 在进行机器学习模型训练和评估之前,数据预处理是一个非常重要的环节。主要步骤包括但不限于以下几个方面: - **数据清理**:识别并修正不完整的记录、噪声以及异常值等问题。 - **数据集成**:将多个数据源组合在一起,解决冗余和冲突问题。 - **数据转换**:通过平滑聚集、编码分类变量等方式调整数据规模或分布特性。 - **数据规约**:简化大型数据库到更易于管理的形式,同时保持其原始性质基本不变。 - **特征工程**:创建新的特征来增强算法性能;这可能涉及到交互项的设计或是现有字段间的数学运算等复杂过程[^3]。 #### 实际应用案例展示 为了更好地理解如何实施上述理论概念,下面给出一段简单的Python代码片段用于执行基础的数据预处理任务——标准化数值型属性值范围至0~1之间: ```python from sklearn.preprocessing import MinMaxScaler import pandas as pd def preprocess_data(df): scaler = MinMaxScaler() numeric_features = df.select_dtypes(include=['int64', 'float64']).columns.tolist() # Apply min-max scaling to all numerical columns. scaled_values = scaler.fit_transform(df[numeric_features]) df_numeric_scaled = pd.DataFrame(scaled_values, columns=numeric_features) # Combine the processed data back into one DataFrame object. result_df = df.copy() result_df[numeric_features] = df_numeric_scaled return result_df ``` 此函数接收一个Pandas `DataFrame` 对象作为输入参数,并返回一个新的经过预处理后的表格结构实例。其中运用到了Scikit-Learn库里的`MinMaxScaler()`类来进行最小最大规范化变换操作[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doll ~CJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值