数据挖掘(一)——数据探索(EDA)
作者:互联网
一 简介
数据挖掘比赛的第一步不是想用什么模型,什么方法,而是先了解赛题的背景。你需要仔细阅读官方给出的赛题背景,然后查阅相关资料,对问题场景做深入的理解。我们可能对机器学习和数据挖掘的理论知识掌握的很好,但缺乏对具体的问题场景理解。
在了解赛题背景之后很自然地就要对我们的数据进行了解,这一步可以让我们对我们的数据有进一步的认识,从而有利于我们建模。
二EDA的分类
①数据的整体认识
我们要了解到官方给出的所有数据集以及他们之间的关系。这样可以知道这些数据之间有什么内在的联系,这样让我们对整个数据挖掘任务有一个比较好的把握。例如一组数据是图片,一组是文字且两组数据每一个样本都是一一对应的,那么建模的时候就要同时用到两组数据。下面的图片就是例子(最好画个E-R图):
②数据的质量分析
质量分析的意思就是从一些属性来看出一份数据好不好。例如数据的缺失值、重复值、异常值、歧义值、正负样本比例(样本不平衡)。这些特性会直接影响到模型的学习效果,例子如下:
(1)异常值会影响一些一欧几里得距离为度量标准的模型例如(Logeistic回归,SVM等线性模型)
(2)正负样本比例:在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果。因为实际数据往往分布得很不均匀
(3)缺失值:处理方法特别多样。
③数据统计量分析
数据统计量分析主要分为两块:
(1)对单个变量的统计特征进行分析。比如单个变量的均值、中位数、众数、分位数、方差、
(2)对两或多个变量的统计分析。这里主要要探索的是任意两个变量统计分布之间的关系,例如相关系数等等。
④数据分布分析
数据分布分析指的是考察某个字段或某些字段的统计分布。包括频数、时间、空间三个方面
(1)频数
(2)时间
(3)空间分布
小结:
对比:指的是在做数据探索时,考虑对比训练集不同样本之间的特征分布,还要考虑对比训练集和测试集中每一个特征的分布。举例子说就是泰坦尼克号当中就是画出Pclass和survived和unsurvive中有很大的区别,才确定Pclass是一个不错的特征。
分组:就是在做数据探索时,常常用到按类别标签、某个离散变量的不同取值groupby后的sum、unique。**就是说对每一个特征都要有了解才可以。
**。我写了一个对结构化数据每一个特征进行统计的程序:
import pandas as pd
import numpy as np
import missingno as msno
from matplotlib import pyplot as plt
def freture_counts (data,feature):
data=data[feature].value_counts()
print(data)
def freture_describe (data,feature):
print(data[feature].describe())
train_data=pd.read_csv("train.csv")
print("-----------------------数据的类型,名字和缺失值情况----------------------------------")
print(train_data.info())
train_data['Fare']=(train_data['Fare']-train_data['Fare'].mean())/train_data['Fare'].std()
train_data.loc[train_data['Fare']>=3,'Fare']=train_data["Fare"].mean()
picture=msno.bar(train_data, labels=True)
plt.savefig("missing")
#这一行代码的作用是画出缺失值的图
print("--------------------每一个特征的类别,类别的个数,数值特征还有均值,标准差,四分位点,最大值最小值这样的信息-------------------------------------------------")
features=['Survived','Pclass','Name','Sex','Age','SibSp','Parch',
'Ticket','Fare','Cabin','Embarked']
for feature in features:
print( "feature name:"+feature)
freture_counts(train_data,feature)
freture_describe(train_data,feature)
print('-------------------------------------------------------------------------------')
代码的运行结果如下:
(1)这是数据的总览
(2)这是每一个特征的统计结果(一个是数值,一个是非数值)
③非结构化数据的EDA
标签:Fare,EDA,探索,数据,feature,print,train,数据挖掘,data 来源: https://blog.csdn.net/wyn20001128/article/details/120251341