人工智能学习(22 机器学习:02-特征工程和文本特征提取:03_数据集的组成)

该小节我们讲解数据集的工程,我们从历史数据获得规律,这些历史数据时什么样的格式呢?或者说他是怎么存储的呢?

在机器学习阶段,我们的数据,基本上都是存储在文件(如:csv,后续会进行讲解)中,不会存储在数据库的,因为会受到性能瓶颈的影响,如mysql,当每个客户的数据都比较多的时候,数据库是满足不了我们的要求的。但是我们机器学习做的案例,都是700,800M,甚至好几个G的大小,那么这些数据mysql去进行读写等操作的时候,其读取数据是有限的。并且其存储的格式也不太符合机器学习的要求,即使读取出来,仍然需要经过很多的处理,才能提供给我们机器学习使用。

我们有一个强大的工具,叫做pandas(读取工具),其主读取,处理数据是非常的快的,他是基于numpy做的。我们提到过numpy是非常快的,因为其是C语言编写的。

我们提及一下,为什么python会比较慢,除了本身是动态(解释性)语音之外,还存在一个;历史性遗留下来的问题,GIL锁(cpython当中存在)。GIL锁会保证在执行的时候,只有一个线程。所以很多人都是python是假的线程,但是如果使用jpython的解释其,这个问题会得到解决。有兴趣的朋友可以查看一下GIL锁的相关文章,在此处就不进行过多的讲解了。大家要记住的是,在后面我们的多线程,才是真正的多线程(并行)。其原因是我们所有的库,都是基于numpy的。numpy已经把GIL锁释放了。

我们继续前面提到的,数据是什么格式。

我们首先来看看可用的数据集:
在这里插入图片描述
Kaggle特点:1.大多数竞赛平台 2.80万科学家 3.数据真实 4.数据量大
scikit-learn特点:1.数据量小 2.方便学习
UCI特点:1.收录了360个数据集 2.覆盖科学,生活,经济等领域 3.数据量几十万
他们对应的网址如下:
Kaggle网址:https://www.kaggle.com/datasets
UCI数据集网址: http://archive.ics.uci.edu/ml/
scikit-learn网址:http://scikit-learn.org/stable/datasets/index.html#datasets
在学习的过程中如果想去获取数据,可以去以上网址下载相关数据。

下面会为大家提到一个scikit-learn库,他自带了一些数据集,他的数据量比较小,也方便我们演示结果,如果数据量比较大,运行时间会太长,我们太难等待。

接下来我们看看常用数据集的结构组成,这个是非常的重要的,因为大部分数据都是这样构成的,他的结构就是:特征值 + 目标值。
我们用pandas去处理数据的时候,其为一个dataFrame的格式,他的特点是由行索引以及列索引,重点我们来说一下列索引:
在这里插入图片描述

如上,一个班有3个人,其上有身高,体重,头发长度等等,这些就是特征值,那么什么是目标值呢?我们根据这些已有的特征,去推到一一个未知的结果,这个结果就是目标值,如我们根据身高,体重,头发长度等等去推到性别,其性别就是我们的目标值。

在确定我们的目的之后,我们会去收集一些特征,有的特征对于我们的分析是没有必要的,如皮肤的颜色等等,这些特征,我们是不需要去收集的。我们拿到的都是客户的数据(特征),分析得到我们想要的结果(目标)。

该小节讲解到这里,待续

扫描二维码关注公众号,回复: 6043782 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43013761/article/details/89532431
今日推荐