【译】开启数据科学之旅

做者:Shreyas Raghavangit

翻译:老齐算法

与本文相关的图书推荐:《数据准备和特征工程》编程

本书已经由电子工业出版社出版发行,购买地址:电子工业出版社天猫旗舰店bash


不是好久之前,商人们每每找占星家来预测下明年是否能挣钱,虽然这毫无根据,而且结果也不肯定,但若是听专家的建议来为本身的商业行为做出决定,与此有什么本质却别?如今不一样了,咱们正在变化,目前已经能够基于事实和数字进行预测。微信

咱们生活在一个大数据的世界中,去Domino商店订购披萨,他们首先要问你的手机号,经过该手机号,他们可以提取出你的住址、购买记录等信息,可是是否仅限于列出这些数据? 仍是咱们能够根据这些数据作些什么?这就是数据科学家的职责了。markdown

如今,咱们就来探讨一些分析数据的工具。机器学习

  • SAS,是“ Statistical Analysis System”的简称,能够用于高级分析、数据管理、商业智能,它是NCSU(北卡罗来纳州立大学)从1966年到1976年研发的许可软件,如今仍然被普遍应用,特别是财富500强的公司都在应用。编程语言

  • R语言,是一种开源高级语言,提供了不少分析和统计的模块,包含了不少开源库,主要操做在命令行界面实现。函数

  • Python语言,我我的最喜欢了。Python是门革命性的语言,本文就要使用此语言。它是由吉多·范罗索姆(Guido Van Rossum)发明的一种高级编程语言,开源,天天都会有不少库产生。若是你打算在机器学习、人工智能领域从业,Python是一门理想的编程语言。工具

如今,咱们就要来看看Python在数据科学中的应用。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
复制代码

此处,咱们引入了三个基本的库,你的项目大概有90%都会用到这三个库,它们都有什么做用呢?

  • Numpy:这个库实现众多数学函数运算,好比矩阵乘法、转置等。
  • Pandas:很重要的库,好比加载数据集、建立DataFrame对象,Pandas在分析和预测方面可以实现你想作的任何事情。
  • %matplotlib inline:写上这句话,就能够将制做的可视化图像插入到Jupyter中。
train = pd.read_csv('train.csv')
复制代码

以上,咱们载入了数据集,pd是对pandas的重命名(import pandas as pd),read_csv是pandas里的一个函数,train.csv是一个已经存在的文件。用上面的命令成功地在当前Python环境中加载了文件,从而建立了一个DataFrame对象。

train.head()
复制代码

什么是head?不是人体的顶部的吗?Pandas用head函数,是要给咱们呈现DataFrame对象中前面的若干条记录,默认显示前5条。

若是head(20)就会返回前20条记录,是否是颇有意思?

咱们也能够用tail()查看最后5条记录(默认值是5)。

下面是head()的输出结果:

到如今,已经从DataFrame数据集中获得了前5条记录了。

接下来,重要的事情是你要了解所处理的数据集,好比大小、形状和描述性统计,这些信息对咱们进一步处理数据都很是有用,也就是说,咱们必须了解数据集(注:《数据准备和特征工程》一书中对此内容作了更详细的阐述,请参考。)由于有少数数据集很大,处理它们才是真正的痛苦工做,咱们须要从中找到有用的信息,并剔除不须要的内容,这听起来彷佛很容易,但真正作起来,很是困难。

从输出结果中能够看到,咱们如今操做的数据有891行,12列,总共有10692个数据。

让咱们再来看看基本的统计:

这里呈现的统计数据,好比计数、平均值、百分位、标准差等,在咱们处理金融数据或者研究数据间关系是,都是很是重要的。

继续,咱们要实施数据可视化,这是数据科学中最重要的技能,必须会。前面已经导入了matplotlib,这是数据可视化中应用很是普遍的库,若是你去搜索,还会发现别的库,但matplotlib是广受欢迎的。

对于数据科学家而言,最重要的是知道用什么方式进行表达,下面就讨论这个问题,而后演示代码。

表达的方式

进行数据可视化,必需要知道的几件事:

  • 在一张图中要展示几个变量?
  • 一个数据点包含了一个信息仍是多个?
  • 展现一段时间的数据,仍是将它们分组?

这些会影响图示的效果。

上面这张图帮助咱们理清楚什么时候用何种类型的可视化方式。

对于学习数据可视化而言,上面的图示是具备高度参考价值的。不少公司都但愿经过数据告诉咱们吸引人的故事。

可视化工具,好比Tableau、PowerBI等建立的仪表盘,可以告诉咱们数据中的故事。

如今,咱们要研究如何用matplotlib实现数据可视化:

前面已经引入了matplotlib,并命名别称为plt。从第一行开始,用参数figsize设置了图示的大小,一般,咱们可使用默认值。接下来,就回执年龄的图示。

咱们可以设置标签,xlable意味着x轴,ylable意味着y轴,titile用于设置图示的标题。

经过图示,咱们可以从数据中获得一些信息,能推论出如下各项吗?

  • 年轻人更多在甲板上。
  • 老年人数量不多。
  • 22岁的最多。
  • 79岁的老人还去旅游。

咱们经过图示,可以推断出的还不少。

固然,咱们也可以用这个数据集作其余类型的统计图。

数据中用二进制的方式标识了一我的是否获救,这是咱们下面要研究的内容,经过统计模型进行预测。

让咱们继续,依靠前面的数据,用计算机来预测一个乘客是否能获救。

机器学习算法

到目前,咱们已经完成了载入数据、数据可视化,以及如何根据数据进行推论,如今咱们要看看哪一个算法能够用于预测。

在机器学习中,有两类算法:

  • 有监督学习:若是数据中有标签列,就可使用有监督学习,机器会查找跟数据匹配的标签。
  • 无监督学习:没有标签时就要用无监督学习,机器会对数据进行聚类,并找到数据之间的关系。

有监督学习的典型例子是回归,而贝叶斯则是无监督学习的典型示例。

可是,对于本文中的数据,咱们打算用Logistic回归试试。具体怎么作?

Logistic回归可以帮助咱们预测某数据的标签是true仍是false。基本过程是用给定的数据输入到机器中,而后机器用回归模型进行计算,最后告诉咱们一个二进制形式的结果。

根据维基百科,Logistic回归,或者logit回归、logit模型,是一种回归模型,它的因变量是分类型的。本文中的因变量用二级制形式表示,即只取两个数,“0”或者“1”,这种二进制方式能够表明不一样的输出结果,好比经过/挂科、赢/输、生/死,或者健康/生病等。若是因变量是超过两个值得分类数据,能够用多元Logistic回归。若是多个类型值是有顺序的,能够用序数Logistic回归。在经济领域,Logisti回归是一种反应定性问题或者离散问题的模型示例。

那么,Logistic回归在这里对咱们有什么用?

咱们已经有用二进制形式表示获救状况的列,这已不是问题。可是,咱们须要将性别(gender)列的值修改成1和0,这样咱们就能依靠性别预测一我的是否获救。

须要导入sklearn库,sklearn很是强大,它不只仅是统计工具。

按照下面的操做:

from sklearn.linear_model import LogisticRegression 
复制代码

从sklearn库中引入Logistic回归模块。

为了使用Logistic回归,先要具有两组数据:

  1. 训练集:用于训练模型
  2. 测试集:一般规模较小,用于检验机器学习模型

将性别转化为二级制形式以后,就可使用LogisticRegression模型预测输出结果了。

首先,咱们将训练集中的Survived列做为Logistic回归模型的输出。

为此,已经将数据集划分为训练集和测试集。

下面逐步来看看上面的过程:

  1. 将Survived列做为标签,即输出。data_train是输入的训练数据,其中不包含Survived列。
  2. 而后引入sklean,并建立Logistic模型实例。
  3. 接下来训练模型,计算机会努力找到一种模式,而后用这个模型对给定数据进行预测。
  4. 咱们已经获得了一个被称为测试集的数据,它里面没有Survived列。下面利用训练获得的模型对这些数据进行预测。

以上就是计算机如何经过学习进行预测的过程,固然还有别的模型,之后有机会还要介绍对模型的评估方法,好比评估分数、矩阵分数等。

但愿此文对你有启发。「老齐教室」这个微信公众号中还有不少数据科学、机器学习的文章,共学习者参考。

原文连接:towardsdatascience.com/how-to-begi…

搜索技术问答的公众号:老齐教室

在公众号中回复:老齐,可查看全部文章、书籍、课程。

以为好看,就点赞转发/strong>

相关文章
相关标签/搜索