| 1.1 数据
数据:它可以是任何未经解释和分析的未经处理的事实、价值、文本、声音或图片。数据是所有数据分析、机器学习、人工智能中最重要的部分。没有数据,我们无法训练任何模型,所有现代研究和自动化都将徒劳无功。大企业花费大量资金只是为了收集尽可能多的特定数据。
信息:已被解释和操作的数据,现在对用户有一些有意义的推断。
知识:推断信息、经验、学习和见解的结合。结果为个人或组织建立意识或概念。
我们如何在机器学习中拆分数据?
-
训练数据:我们用来训练模型的数据部分。这是您的模型实际看到(输入和输出)并从中学习的数据。
-
验证数据:用于对模型进行频繁评估的数据部分,适合训练数据集以及改进所涉及的超参数(在模型开始学习之前初始设置参数)。当模型实际训练时,这些数据会发挥作用。
-
测试数据:一旦我们的模型完全训练完毕,测试数据就会提供无偏见的评估。当我们输入测试数据时,我们的模型将预测一些值(没有看到实际输出)。在预测之后,我们通过将模型与测试数据中的实际输出进行比较来评估我们的模型。这就是我们如何评估和查看我们的模型从作为训练数据输入的经验中学到了多少,这些经验是在训练时设置的。
| 2.1 数据处理
数据处理是将数据从给定形式转换为更可用和更理想的形式的任务,即使其更有意义和信息丰富。使用机器学习算法、数学建模和统计知识,整个过程可以自动化。这个完整过程的输出可以是任何所需的形式,如图形、视频、图表、表格、图像等等,具体取决于我们正在执行的任务和机器的要求。这似乎很简单,但对于 Twitter、Facebook 等大型组织、议会、教科文组织等行政机构和卫生部门组织,整个过程需要以非常结构化的方式进行。因此,要执行的步骤如下:
-
收集:
从 ML 开始,最关键的一步是拥有高质量和准确的数据。可以从任何经过身份验证的来源收集数据,例如Kaggle或UCI 数据集存储库。例如,在准备竞争性考试时,学生从他们可以访问的最好的学习材料中学习,以便他们学得最好,从而获得最好的结果。同样,高质量和准确的数据将使模型的学习过程更容易和更好,并且在测试时,模型将产生最先进的结果。
收集数据消耗了大量的资金、时间和资源。组织或研究人员必须决定执行任务或研究所需的数据类型。
示例:在面部表情识别器上工作,需要大量具有各种人类表情的图像。良好的数据可确保模型的结果有效且值得信赖。
-
准备:
收集的数据可以是原始形式,不能直接输入机器。因此,这是一个从不同来源收集数据集、分析这些数据集然后构建新数据集以进行进一步处理和探索的过程。这种准备可以手动进行,也可以通过自动方法进行。数据也可以以数字形式准备,这也将加快模型的学习。
示例:可以将图像转换为 NXN 维度的矩阵,每个单元格的值将指示图像像素。 -
输入:
现在准备好的数据可以是机器不可读的形式,所以要将这些数据转换成可读的形式,需要一些转换算法。要执行此任务,需要高计算量和准确性。示例:可以通过 MNIST 数字数据(图像)、Twitter 评论、音频文件、视频剪辑等来源收集数据。 -
处理:
这是需要算法和 ML 技术以准确和优化计算来执行在大量数据上提供的指令的阶段。 -
输出:
在此阶段,机器以有意义的方式获取结果,用户可以轻松推断出结果。输出可以是报告、图表、视频等形式 -
存储:
这是保存获得的输出和数据模型数据以及所有有用信息以供将来使用的最后一步。
| 3.1 数据清洗
数据清洗是机器学习的重要组成部分之一。它在构建模型中起着重要作用。它肯定不是机器学习中最精彩的部分,同时也没有任何隐藏的技巧或秘密可供发现。但是,项目的成败取决于适当的数据清理。专业的数据科学家通常会在这一步投入很大一部分时间,因为他们相信“更好的数据胜过更高级的算法”。
如果我们有一个经过良好清理的数据集,我们也有可能通过简单的算法获得良好的结果,这有时会证明是非常有益的,尤其是在数据集较大时的计算方面。
显然,不同类型的数据将需要不同类型的清理。然而,这种系统的方法总是可以作为一个很好的起点。
数据清洗涉及的步骤:
-
删除不需要的观察
这包括从数据集中删除重复/冗余或不相关的值。在数据收集过程中最常出现重复观察,而不相关的观察是那些实际上不适合您要解决的特定问题的观察。-
随着数据的重复,冗余观察在很大程度上改变了效率,并且可能会向正确的一侧或错误的一侧添加,从而产生不忠实的结果。
-
不相关的观察是对我们没有用的任何类型的数据,可以直接删除。
-
-
修复结构错误
在测量、数据传输或其他类似情况下出现的错误称为结构错误。结构错误包括特征名称中的拼写错误、具有不同名称的相同属性、错误标记的类(即实际上应该相同的单独类)或大小写不一致。-
例如,模型会将 America 和 America 视为不同的类或值,尽管它们表示相同的值或红色、黄色和红黄色作为不同的类或属性,尽管一个类可以包含在其他两个类中。因此,这些是一些结构性错误,使我们的模型效率低下并给出质量差的结果。
-
-
管理不需要的异常值异常
值可能会导致某些类型的模型出现问题。例如,线性回归模型对异常值的鲁棒性不如决策树模型。一般来说,我们不应该删除异常值,直到我们有正当理由删除它们。有时,删除它们会提高性能,有时则不会。因此,必须有充分的理由去除异常值,例如不太可能成为真实数据一部分的可疑测量值。 -
处理缺失数据
缺失数据是机器学习中一个看似棘手的问题。我们不能只是忽略或删除缺失的观察。必须小心处理它们,因为它们可能表明一些重要的事情。处理缺失数据的两种最常见的方法是:
1. 删除具有缺失值的观察。
-
-
该值丢失的事实本身可能提供信息。
-
另外,在现实世界中,即使缺少某些特征,您也经常需要对新数据进行预测!
-
2. 从过去的观察中估算缺失值。
-
-
同样,“缺失”本身几乎总是提供信息,如果缺少值,您应该告诉您的算法。
-
即使你建立了一个模型来估算你的价值观,你也没有添加任何真实的信息。您只是在加强其他功能已经提供的模式。
-
丢失数据就像丢失了一块拼图。如果你放弃它,那就像假装拼图插槽不存在一样。如果你估算它,那就像试图从拼图中的其他地方挤入一块。
因此,丢失的数据始终是一种信息性和重要事物的指示。我们必须通过标记它来了解我们的缺失数据算法。通过使用这种标记和填充技术,您实际上允许算法估计缺失的最佳常数,而不是仅仅用平均值填充它。
一些数据清理工具
-
Openrefine
-
Trifacta Wrangler
-
TIBCO Clarity
-
Cloudingo
-
IBM Infosphere Quality Stage
结论:
因此,我们讨论了数据清洗中的四个不同步骤,以使数据更可靠并产生良好的结果。正确完成数据清理步骤后,我们将拥有一个强大的数据集,可以避免许多最常见的陷阱。这一步不应该匆忙,因为它在进一步的过程中被证明是非常有益的。
References:
-
https://en.wikipedia.org/wiki/Machine_learning
-
Andrew Ng. Machine Learning[EB/OL]. StanfordUniversity,2017.https://www.coursera.org/course/ml
-
https://en.wikipedia.org/wiki/Supervised_learning
| 4.1 写在最后
学习不是一蹴而就的,机器学习所涉及的内容非常宽泛,后面可能还会涉及一些数学公式。不过作为一种面向应用的方式方法,在不同的场景下同样有着不同的解决方式,希望今天的内容可以帮你明白数据的重要性,帮你打下坚实的基础。
勘误:
由于我自己也不是资深编程高手,在创作此内容时尽管已经力求精准,查阅了诸多资料,还是难保有所疏漏,如果各位发现有误可以公众号内留言,欢迎指正。
你要偷偷学Python,然后惊艳所有人。
-END-
感谢大家的关注
你关心的,都在这里