2018年6月13日

数据大佬告诉你如何进行数据分析

数据大佬告诉你如何进行数据分析!

enter image description here

导语:学习逻辑回归既可以熟悉数据分析流程,同时又不会被各种算法整懵圈。良心模型,仅此一家。

文/ Dima Shulga

译/ maistern

几年前我开始进入数据科学领域时,我还是一个软件工程师,一开始是在网上自学。我记得在网上查资料时,满眼都是各种算法的名字——线性回归,支持向量机,决策树,随机森林,神经网络...头都大了,根本不知道从哪儿入手。

但是现在我认识到,想学习成为一个数据科学家最重要的事情就是分析流程线的把握,例如,获取和处理数据,理解数据,建立模型,评估结果以及改进等。

本文篇幅较长,没有耐心读下去的各位只看这句就好:学习逻辑回归既可以熟悉数据分析流程,同时又不会被各种算法整懵圈。良心模型,仅此一家。

下面是我认为数据科学家应该从逻辑回归开始的五个理由,当然,以下只是个人经验之谈,或许对于其他人有其他更好的方法。

01

算法只是分析流程中的一部分

正如我一开始说的,数据科学不仅是建模,她同样包括下面这些步骤:

enter image description here

正如你看到的,建模只是整个数据分析流程中的一小部分。当你要做一个数据产品的时候,较好的做法是先建立你整个分析的流程,尽可能的简单,要理解你要达到的目的是什么?如何衡量你的结果?以及你的基准是什么?在这之后,你就可以开始各种机器学习,并不断进步。

顺便提一句,逻辑回归或者任何机器学习算法或许不仅用于建模阶段,同样可以用在数据理解和数据准备阶段,这边只是举得一个例子。

02

逻辑回归有助你更好地理解机器学习

看到标题,可能大家第一个想问的问题就是,为什么是逻辑回归?而不是线性回归?

这个问题实际涉及的是两类监督学习算法——分类(逻辑回归)和回归(线性回归)。当你试图构建简单的逻辑回归或者线性回归分析流程时,你就已经Get了机器学习的大多数概念。例如,监督学习和无监督学习,分类和回归,线性和非线性问题等等。同时,你还会对如何准备数据(敲黑板,准备数据同样会遇到很多困难,像缺失值填充,特征选择等等),如何评估你的模型,是用“精确度”?“召回率”?还是“ROC、AUC”?又或许是“平均误差”?“相关系数”?所有的这些概念都是数据科学中重要的部分。一旦你掌握了这些,那么恭喜你,你已经可以从简单模型进阶到更复杂的模型了,继续打怪升级了。

03

逻辑回归(某种程度上)已足够

逻辑回归是一个非常强大的算法,即使处理非常复杂的问题也可以表现很棒。拿手写数字识别(MNIST)问题来说,仅仅用逻辑回归就可以达到95%的精确度。当然,这不算一个特别好的结果,但她完全可以支撑起你的分析流程。 事实上,如果你特征工程做的很好,仅用逻辑回归就足以得到优异的结果。

然而处理非线性问题的时候,我们通常会将原始数据映射为一种可以用线性来解释的形式。一个简单的例子:使用下面的数据完成一次分类任务。

enter image description here

画上散点图,我们可以看到没有一条单独的直线可以将不同颜色的点区分 enter image description here

enter image description here

这种情况下,不对数据进行处理,逻辑回归将无法实现分类任务。但是,如果我们舍弃X2这个变量,用X1的平方来代替,数据将会变成这个样子:

enter image description here

enter image description here

此时,简单的直线就可以对其进行分类。当然,实际生活远比这个小例子来的复杂,你很难说要如何处理才能让线性分类器起作用,但是,如果你愿意在特征工程和特征选择上花时间,逻辑回归足以帮你大忙。

04

逻辑回归是一种重要的统计工具

逻辑回归不光是预测的一把好手,当你在拟合逻辑回归模型时,可以了解到自变量和因变量之间的关系。用机器学习的话来说,就是你可以学习到你的特征和目标变量的关系。

以房屋价格为例,我们有一大堆特征以及房屋实际的价格的数据。以此为基础,我们建立了逻辑回归模型,而且表现还不错。此时,如果特征显著,我们可以看模型学到的各个特征的权重,我们可以说某些特征变量会比其他特征更重要。例如,房屋面积对于房价变动起到50%的作用,且增加一平米的房屋面积将导致房价增长1万。总之,逻辑回归可解释性强,统计学上也经常会用到。

05

逻辑回归带你入门神经网络

就我个人而言,逻辑回归对于我开始学神经网络有很大的帮助。你可以将每一个神经元看作一个逻辑回归,我们有输入,有权重,有截距,做完点积之后再放入一个非线性函数中即可。此外,最后一层神经网络就是一个简单的线性模型(大多数时候),下面是一个非常基础的神经网络:

enter image description here

我们可以看到“输出层”,你可以将其认为是一个简单的线性或者逻辑回归,我们有输入(隐含层2),有权值,做个点积,最后再加了一个非线性函数(依具体情况而定)。

一个很好的理解神经网络的方法就是将其分成两个部分,特征描述部分和分类/回归部分:下图左边的第一部分是学习数据的特征表示,用以帮助第二部分的线性分类/回归。

enter image description here

总之,想要成为一名数据科学家,乍一看,好像学习算法是最重要的部分,然而,实际是,算法只是数据科学流程中的一小部分,然而大多数情况下算法的学习是最复杂却最费精力理解的部分。此时,友好的逻辑回归就是你入门必备良品没有之一。