《机器学习Python实践》CH6 数据理解
第二部分:数据理解
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())
下一篇: Hadoop 单节点部署
推荐阅读
-
荐 14天数据分析与机器学习实践之Day02——数据分析处理库Pandas应用总结
-
Python & 机器学习之项目实践
-
python机器学习库sklearn之数据预处理讲解
-
python数据分析&挖掘,机器学习环境配置
-
Python机器学习之数据探索可视化库yellowbrick
-
【机器学习基础】Python数据预处理:彻底理解标准化和归一化
-
机器学习笔记——利用PCA简化数据实践(参评)
-
机器学习——SVM之python实现数据样本标准化和归一化
-
python3机器学习——sklearn0.19.1版本——数据处理(一)(数据标准化、tfidf、独热编码)
-
数据分析师养成之路之Python篇:从头学习机器学习之决策树(预)