MachineLearning入门-6(数据导入)

定量研究最重要的是如何提出问题,而不是数据的统计方法;

定量研究是一个全面的过程,不只是数据,也不只是统计,而是运用统计来研究数据,数据、统计方法、理念,三者缺一不可,其中,理念是最重要的。


 在训练机器学习的模型时,需要用到大量的数据,最常用的做法是利用历史的数据来训练模型。这些数据通常会以CSV的格式存储,或者能够方便的转化为CSV格式。在开始启动机器学习项目之前,必须先将数据导入到python中。

下面介绍三种将CSV数据导入到python中的方法,以便完成对机器学习算法的训练。

  • 通过标准的python库导入
  • 通过numpy导入CSV文件
  • 通过Pandas导入CSV文件

CSV文件

CSV文件使用(,)分隔的文本文件。在数据导入之前,通常会审查一下CSV文件中包含的内容。在审查CSV文件时,通常要注意以下几个方面。

文件头:如果CSV文件里包含文件头的信息,可以很方便的使用文件头信息来设置读入数据字段的属性名称。如果文件里不包含文件头信息,需要自己手动设定读入文件的字段属性名称。数据导入时,设置字段属性名称,有助于提高数据处理程序的可读性。

文件中的注释:在CSV文件中,注释行是以#开头的。是否需要对读入的注释行做处理,取决于采用什么方式读入CSV文件。

分隔符:CSV文件的标准分隔符是逗号(,),当然,也可以使用tab键或空格键作为自定义的分隔符。当使用这两种分隔符时,文件读取是要指明分隔符的。

引号:当有的字段值中有空白时,这些值通常都会被引号引起来,默认使用双引号来标记这些字段值。如果采用自定义格式,那么在文件读取时要明确在文件中采用的自定义格式。

Pima Indians数据集

本章中选择的Pima Indians数据集就是从UCI中获取的。这是一个分类问题的数据集,主要记录了印第安人最近五年内是否患糖尿病的医疗数据。这些数据都是以数字的方式记录的,并且输出结果是0或1,使我们在机器学习的算法中建立模型变得非常方便。

采用标准Python类库导入数据

Python提供了一个标准类库CSV,用来处理CSV文件。这个类库中的reader()函数用来读入CSV文件。当CSV文件被读入后,可以利用这些数据生成一个Numpy数组,用来训练算法模型。

首先下载数据文件到应用目录,并命名文件为pima.csv。这个文件中所有的数据都是数字,并且数据中不含有文件头。

1 from csv import reader
2 import numpy as np
3 #使用标准的python类库导入CSV数据
4 filename='/home/aistudio/work/pima_data1.csv'
5 with open(filename,'rt') as raw_data:
6     readers=reader(raw_data,delimiter=',')
7     x=list(readers)
8     data=np.array(x).astype('float')
9     print(data.shape)
(768, 9)

采用Numpy导入数据

也可以使用Numpy的loadtxt()函数导入数据。使用这个函数处理的数据没有文件头,也就是说,数据类型是一样的。代码如下:
1 from numpy import loadtxt
2 #使用Numpy导入CSV数据
3 filename='/home/aistudio/work/pima_data1.csv'
4 with open(filename,'rt') as raw_data:
5     data=loadtxt(raw_data,delimiter=',')
6     print(data.shape)
(768, 9)

采用Pandas导入数据

通过Pandas来导入CSV文件要使用pandas.read_csv()函数。这个函数返回值是DataFrame,可以很方便地进行下一步处理。函数名称非常直观,便于代码的阅读和后续的对数据的处理。在机器学习的项目中,经常利用pandas来做数据清洗与数据准备工作。因此,在导入CSV文件时,推荐使用Pandas。
1 from pandas import read_csv
2 #使用pandas导入CSV数据
3 filename='/home/aistudio/work/pima_data1.csv'
4 names=['preg','plas','pres','skin','test','mass','pedi','age','class']
5 data=read_csv(filename,names=names)
6 print(data.shape)
(768, 9)
这段代码为数据补充了文件头。

猜你喜欢

转载自www.cnblogs.com/yuzaihuan/p/12287431.html