zhulinu 2018-04-23
几年前,作者开始在数据科学领域开始了自己的研究,当时的作者只是一名软件工程师,当他进行在线搜索资源时,只看到学习算法的名称——包括线性回归、支持向量机、决策树、随机森林、神经网络等等,很难弄明白到底应该从哪里开始。而到了今天,明白学习成为数据科学家最重要的是管道,即获取和处理数据、理解数据、构建模型、评估结果(模型和数据处理阶段两者的过程)和部署。因此,我们首先应该学习逻辑回归,而不是被花哨的算法所淹没。
你可以在这篇文章中阅读到更多关于作者从软件工程转入数据科学的经历。
所以,我们成为数据科学家,应该首先从逻辑回归开始入手。这儿提出了5个理由。这当然只是个人的看法,对其他人来说,以不同的方式做事可能会更加容易。
正如在一开始所说的那样,数据科学工作不仅仅是模型构建。它包括以下步骤:
你可以看到“建模”仅仅是这个重复过程的一部分。在构建数据产品时,先建立整个管道,尽可能简单,明白你想要达到什么目标,如何测量自己以及测量基线是一个好习惯。之后,您可以花式进行机器学习,并能够清楚知道自己是否正在变得更好。
顺便说一句,逻辑回归(或任何ML算法)不仅可以用于“建模”部分,还可以用于“数据理解”和“数据准备”,这就是一个例子。
相信很多人在阅读这篇文章的标题时,很多人第一个问的问题一定是为什么是逻辑回归而不是线性回归。事实是,这并不重要,因为这个问题本身带来了两种监督学习算法:分类(Logistic回归)和回归(线性回归)。当您使用逻辑或线性回归构建流水线时,您将熟悉大多数机器学习概念,同时保持简单。如监督和无监督学习、分类与回归、线性与非线性等等问题。您还可以了解如何准备数据,可能存在哪些挑战(如输入和特征选择),如何测量您的模型,您是否应该使用“准确性”,“Precision-Recall”、“ROC AUC ”或者可能是“均方误差”和“皮尔森相关”所有这些概念,它们都是数据科学过程中最重要的部分。在熟悉它们之后,您将能够用您掌握的更复杂的一些元素替换您的简单模型。
逻辑回归是一种非常强大的算法,即使对于非常复杂的问题它也可以做得很好。以MNIST为例,仅使用逻辑回归就可以达到95%的准确性,这不是一个好的结果,但它的好处足以确保您的管道工作。实际上,如果能够正确地表现这些功能,它可以做得非常出色。在处理非线性问题时,我们有时会尝试以线性解释的方式表示原始数据。下面是这个想法的一个小例子:我们希望对以下数据执行简单的分类任务:
如果我们绘制这些数据,我们可以看到没有一条单独的线可以将它分开:
在这种情况下,逻辑回归没有对数据做任何事情,也不会对我们有所帮助,但是如果我们放弃x2功能并使用x1²,它将如下所示:
现在,有一条简单的线可以分离数据。当然,这个玩具的例子并不像现实生活中的那样,在现实生活中,很难判断你需要如何改变你的数据,所以线性分类器可以帮助你,但是如果你投入一些时间在特征工程中,并选择您的逻辑回归可能会做得非常好。
线性回归不仅适用于预测,一旦您有一个拟合线性回归模型,您可以了解依赖变量和自变量之间的关系或更多“ML”语言的关系,您可以了解您的要素与您的目标之间的关系值,考虑一个简单的例子,我们有关于房屋定价的数据,和一些功能和实际价格。我们拟合一个线性回归模型并获得好的结果。我们可以看看模型为每个功能学习到的实际权重,如果这些权重很大,我们可以说某些功能比其他功能更重要,而且,我们可以说房屋大小例如负责50%房价的变化和1平方米的增加将导致房价上涨10K。而线性回归是学习数据关系的强大工具,统计人员经常使用它。
对于作者来说,学习逻辑回归首先在开始学习神经网络时起了很大作用。您可以将网络中的每个神经元都视为逻辑回归,它具有输入、权重以及对所有这些产品做点积的偏差,然后应用一些非线性函数。此外,神经网络的最后一层是一个简单的线性模型(大部分时间)。可以看一下这个非常基础的神经网络:
让我们仔细看看“输出层”,你可以看到这是一个简单的线性(或逻辑)回归,我们有输入(隐藏层2)、权重、点积,然后添加一个非线性函数(取决于任务)。考虑神经网络的一个好方法是将神经网络分成两部分,表示部分和分类/回归部分:
第一部分(左侧)试图学习一种数据的良好表示,以帮助第二部分(右侧)执行线性分类、回归。你可以在这篇精彩的文章中阅读更多的想法。
结论
要知道你是否能成为数据科学家还有很多事情要做,乍看之下,学习算法是最重要的部分。现实情况是,在大多数情况下,学习算法是非常复杂的,需要花费大量的时间和精力才能理解,但这只是数据科学管道的一小部分。