大家好,我是爱酱。上次我们聊到模型和算法的区别,并承诺会补充其他机器学习流程的部分。这篇文章就带大家了解,在真正选择算法和训练模型之前,收集数据方面需要经历哪些关键步骤。
注:本文章颇长近3000字,建议先收藏再慢慢观看。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!
转载至:
【AI概念】在选择算法及训练模型之前,我们要做哪些数据准备?——机器学习的数据收集、挖掘与清洗全流程解析-CSDN博客
一、为什么数据准备如此重要?
「在实际项目中,数据准备往往是最耗时也是最重要的部分。80%的时间花在数据上,只有20%用来调算法。」以上句子是出自于Kaggle的创始人Anthony Goldbloom。
原句 : “Data cleaning is often the most time-consuming part of data science. Many data scientists say they spend 80% of their time cleaning and manipulating data, and only 20% actually analyzing it.”
因此,我们不难看到,数据挖掘和探索做得好,后续建模才能事半功倍。
在机器学习中,常说“垃圾进,垃圾出”(Garbage In, Garbage Out)。
如果你的数据质量不高,再好的算法也难以得到理想的模型。因此,数据准备是整个AI流程中至关重要的一环。
二、数据准备的主要步骤(定义)
数据准备主要分为五个部分:数据收集(Data Gathering),数据探索(Data Exploration),数据清洗(Data Cleaning),特征工程(Feature Engineering)和数据集划分(Data Splitting)。接下来,就让我仔细地介绍每部分的流程和功用。
-
数据收集(Data Gathering)
这部分顾名思义就是准备数据。数据可以是来自数据库(Database)、公开数据集(Public Dataset)、网络爬虫(Web Crawler/ Spider)、传感器侦测(Sensor Detection)、问卷调查(Survey)等。有些公开的数据集会提供一整套已经完全处理好的数据供你使用,但更多的时候,我们会需要用到其他数据来训练一个更贴合自己需求的模型。因此,收集时要注意数据的完整性和相关性,确保数据能代表你要解决的问题。如果伙伴们对于收集数据资料的方法这部分感兴趣,爱酱也可以单独再开一集文章专门介绍。 -
数据探索(Data Exploration)
拿到数据后,不能盲目开始建模。我们需要先“认识”数据,比如查看数据的分布、缺失情况、异常值(Outliers)、类别比例等。常用的方法比如有画直方图、散点图、箱线图等等。 -
数据清洗(Data Cleaning)
数据往往不够“干净”。常见的问题有缺失值、重复数据、异常值、格式不统一等。清洗的过程包括:-
填补或删除缺失值
-
去除或修正异常值
-
统一数据格式(如日期、单位等)
-
去除重复数据
-
-
特征工程(Feature Engineering)
数据就算干净了也不能直接使用,因为原始数据(Raw Data)并不能直接用于建模。没错就算经历了上面三个步骤,我们依然会说我们的数据是原始数据。这其实也侧面反映了数据处理是多么繁复的一样工作。
我们现在需要对数据进行加工,比如:-
特征选择(Feature selection):挑选对结果影响大的变量
-
特征转换(Feature Conversion):如归一化(Normalization)、标准化(Standardizatin)、分箱(Binning)
-
特征构造(Feature Construction):基于现有数据创造新特征(如年龄分组、文本分词等)
-
-
数据集划分(Data Splitting)
为了评估模型表现,我们通常会把数据分成训练集、验证集和测试集。常见的比例有7:2:1或8:1:1。这样可以防止模型“记死书”,提升泛化能力。
三、数据挖掘(Data Mining),以及其与特征工程(Feature Engineering)和 机器学习(Machine Learning)的关系
数据准备完成后,才进入数据挖掘阶段。因此,你亦可以当作为数据挖矿是从特征工程(Feature Engineering)开始的。
然而,特征工程结束后并不等于数据挖矿结束了,因为数据挖掘是指利用统计分析、机器学习等方法,从已经准备好的数据中自动或半自动地发现有用的模式和规律。例如,通过聚类分析(Cluster Analysis)找出用户分群,通过关联规则发现变量之间的潜在联系。
(图解:聚类分析(Cluster Analysis))
数据挖掘的主要目标是帮助你理解数据、发现隐藏的结构和关系,为后续的机器学习建模提供科学依据。因此,你可以理解为:
从特征工程开始,已经可以算是进入了数据挖掘的核心流程。
虽然特征工程是数据挖掘中不可或缺的一环,两者密切相关,但特征工程更专注于变量的加工与优化,而数据挖掘还包括模式发现、聚类、分类等更广泛的任务。
数据挖掘与机器学习的区别
釐清了特征工程和数据挖矿后,现在我们来搞清数据挖矿跟机器学习的区别。
-
数据挖掘侧重于描述性分析,帮助你发现数据中的模式和洞见,回答“数据里有什么?”、“有什么规律?”,这部分通常会是机器学习前的前瞻分析。
-
机器学习则侧重于预测性建模,利用算法让模型学会自动预测新数据的结果,回答“未来会发生什么?”、“新数据应用在模型中有怎么的判断?”。
在实际项目中,数据挖掘常常先于机器学习进行,这可以让我们在训练模型前更清楚自己将面对一系列怎么的数据。通过数据挖掘,你可以确定哪些变量重要、数据存在哪些分组、异常点会在哪里,从而为选择合适的机器学习算法和建模策略打下基础。
四、比喻说明
如果把整个机器学习过程比作做菜,数据准备就像是准备食材、检查菜的情况、洗菜、切菜、控制菜下锅的份量。数据挖掘则像是你在备菜过程中发现了新的食材搭配和风味组合,让你的菜肴更加丰富和有层次。最后,机器学习建模就是正式烹饪和出锅,让你的成果可以自动化地服务更多人。
五、实际流程小结
-
数据收集(Data Gathering)
-
数据探索(Data Exploration)
-
数据清洗(Data Clearning)
-
特征工程(Feature Engineering)
-
数据集划分(Data Splitting)
-
数据挖掘(Data Mining)(发现模式、分组、关联等)【可以当是从4开始】
-
选择合适的机器学习算法并建模(Choosing Right Algorithm & Model Building)【承接上篇文章,还没看过上篇关于《算法跟模型的区别》的同学可以补一下喔】
六、总结
在选择算法和进行机器学习建模之前,务必重视数据的收集、探索、清洗、特征工程和数据挖掘。数据质量和对数据的理解,决定了你最终模型的上限。下次我们可以聊聊如何根据不同任务选择合适的算法,或者是训练好模型后的工作,敬请期待!
我是爱酱,我们下次再见,谢谢收看!