其他分享
首页 > 其他分享> > 数据挖掘(一)——数据探索(EDA)

数据挖掘(一)——数据探索(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