欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《机器学习Python实践》CH6 数据理解

程序员文章站 2022-07-13 08:57:34
...

第二部分:数据理解

CH6 数据理解

机器学习训练模型,需要用到数据集;而在得到了原始的数据之后,首先要理解这些数据,然后预处理数据,所得到的“精修版”数据,才能作为机器学习的“数据原材料”。

只有理解数据的特征、分布情况,以及需要解决的现实问题,才能建立和优化算法模型。本章,讲述了理解数据的七种方法。


1. 简单查看数据

查看文件中前十行数据,用pandas.head()函数

from pandas import read_csv
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
print(data.head(10))

2.查看数据维度

数据的维度对于机器学习的模型来说很重要。维度过多,会导致训练时间太长;维度过少,会导致训练不充分。查看数据维度,执行shape()函数即可。返回的数表示,数据有几行几列。

from pandas import read_csv
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
print(data.shape)

3.数据的属性和类型

用DataFrame的dtypes来查看每一个字段的数据类型。

from pandas import read_csv
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
print(data.dtypes)

4.描述性统计

用describe()函数获得数据的描述性统计内容,包含八方面的信息:原始数据、平均值、标准方差、最小值、下四分位数、中位数、上四分位数、最大值。这些信息用来描述数据的分布情况。

from pandas import read_csv
from pandas import set_option # 用于设置输出数据的位数
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
set_option('display.width', 100)
set_option('precision', 4) # 这两句代码也可以不要
print(data.describe())

5.数据分组分布

获得每个分类的数据的记录,从而得到它的数据平衡性。用的是groupby(’ ‘)函数。

from pandas import read_csv
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
print(data.groupby('class').size())

6.数据属性相关性

相关性指的是数据的两个属性之间是否相互影响,以及其影响方式。一个通用的相关性概念是,皮尔逊相关系数,是一种度量两个变量相关程度的方法。它是一个在-1到1之间的值,其中,-1表示负相关,0表示无关,1表示正相关。

在机器学习中,数据之间的属性越无关越好。使用DataFrame的corr()来计算两个属性的关联关系矩阵。

from pandas import read_csv
from pandas import set_option # 用于设置输出数据的位数
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
set_option('display.width', 100)
set_option('precision', 2) # 这两句代码也可以不要
print(data.corr(method = 'pearson'))

7.数据分布分析

通过分析数据的高斯分布(正态分布)来确认数据的偏离情况。在很多机器学习算法中都会假定数据遵循高斯分布,先计算数据的高斯偏离状况,再根据偏离状况准备数据。使用DataFrame的skew()来计算高斯分布偏离值

偏离值越趋近于0越好,表示数据的偏差非常小。数据为正表示右偏,数据为负表示左偏。

from pandas import read_csv
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)
print(data.skew())