EDA时的画图函数

结合我之前写的一篇博客来看:http://matafight.github.io/2017/06/24/kaggle经验/

Step1:导入数据并了解数据轮廓

查看各个特征的基本数据类型并且计算哪些特征缺失值比较多。
将特征的数据类型分为数值型和离散型两大类。

Step2: 分析特征和标签的分布情况

单变量分布

对于连续特征

  1. 给出特征分布(可以不考虑缺失值)

sns.distplot(df["Fare"])

![](https://img2018.cnblogs.com/blog/667947/201810/667947-20181013092051559-1979671760.png)


#### 对于离散特征
1. 就是看特征分布是否均衡
```python
sns.countplot(x='Survived', data=df)

sns.catplot(x="Pclass", kind="count", palette="ch:.25", data=df)
## 这也是countplot

多变量分布(可以是特征之间也可以是特征与标号之间)

连续变量与连续变量

  1. scatter plot
sns.relplot(x="Age", y="Fare", data=df);
## replot是一个figure-level的function,它的默认方法是scatterplot


可以用hue参数引入第三维变量

sns.relplot(x="Age", y="Fare", hue = 'Pclass',data=df);

  1. lineplot,如时序特征
g = sns.relplot(x="Age", y="Fare", kind="line", data=df)

将x轴的特征按大小排序,然后连接起来。

注意上图中的线条并不只有一条线,而是一个范围的区域,这是因为同一个x值可能有多个y值与之对应,颜色最深的线就是他们的均值,上下的范围是95%的置信度区域。
可以通过设置参数ci=None来屏蔽置信度区域。

也可以通过hue参数引入第三个变量(一般为离散的特征比较合适)。

g = sns.relplot(x='Age',y ='Fare',hue='Sex',kind='line',data=df)

  1. 可以通过使用col参数更直观地展示三个(或四个,使用hue参数)变量之间的关系
g = sns.relplot(x='Age',y='Fare',kind='line',col='Pclass',data=df)

连续变量与离散变量

  1. scatter plot

sns.catplot(x="Pclass", y="Fare", data=df);

  1. boxplot
    表示每个离散变量的取值对应的另一个特征的分布,另一个特征是连续特征,如果是离散特征的话画出来的图非常奇怪
sns.catplot(x="Pclass", y="Fare", kind="box", data=df);

当然也可以使用hue参数引入第三个变量(应该是离散的)

sns.catplot(x="Pclass", y="Fare",hue = 'Sex', kind="box", data=df);

  1. barplot
    感觉这个方法与boxplot的方法比较相似,统计的是均值和标准差,而boxplot是均值、分位点和异常点的范围。
sns.catplot(x="Pclass", y="Fare",hue = 'Sex', kind="bar", data=df);

离散变量与离散变量

探索离散变量a与b之间的关系实际上就相当于探索 当a等于某个值时b的各个值的分布情况,可以用如下函数:

sns.catplot(y="Sex", hue="Pclass", kind="count",
            palette="pastel", edgecolor=".6",
            data=df);

对于标签

  1. 回归问题就是画图分布
  2. 离散问题就是看类分布是否均衡
posted @ 2018-10-12 13:45  Mata  阅读(1007)  评论(0编辑  收藏  举报