码迷,mamicode.com
首页 > 其他好文 > 详细

特征变量和y值的可视化

时间:2021-04-07 11:34:36      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:xpl   tran   generated   绘图   房价   常见   http   class   转化   

一、标签为数值变量

一般常见于回归相关的问题。

1.1类别变量+数值标签

关于类别变量与数值标签的关系,我们一般会观察下面的结果。

  1. 每个类别情况下对应的均值,这个可以直接使用pandas进行绘制;
  2. 均值反映的信息并不十分详细,如果希望得到更加具体的分布,可以使用boxplot进行绘制。

如果不同类别之间的标签分布相差较大,则说明该类别信息是非常有有价值的,如果所有类别的标签都是一样的分布,则该类别信息的区分度相对较低。

数据链接 https://tianchi.aliyun.com/competition/entrance/231784/information,可以看我另一篇文章:https://www.cnblogs.com/cgmcoding/p/13279789.html

 

1. pandas直接绘图

手动挡和自动挡的价格分布

#%%导入模块
import pandas as pd 
import numpy as np
from scipy import stats
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
plt.rc("font",family="SimHei",size="12")  #解决中文无法显示的问题
import pycard as pc

#波士顿房价数据集
df = pd.read_csv(D:/迅雷下载/used_car_train_20200313.csv,sep= )


var   = gearbox
label = price
df.groupby(var)[label].mean().plot(kind = bar)

技术图片

 

 

 2. boxplot绘图

plt.figure(figsize=[10,6])
sns.boxplot(x=var, y=label, data=df)

技术图片

 但是当该特征的类别特别多的时候,不建议画图

 

1.2数值变量+数值标签

关于数值变量与数值标签的关系,我们一般会观察下面的结果。

  • 数值特征与数值标签的pearson相关系数;如果该数值的绝对值越大,往往说明该特征能为模型带来非常大的帮助。
  • 观察数值特征与数值标签的时候,一般采用散点图即可,也可以使用regplot绘制出拟合的曲线。

1. person相关系数

df[[v_0,label]].corr(pearson)

技术图片

 

 2. scatter绘图

plt.scatter(x=v_0, y = label, data = df);
plt.xlabel(v_0)
plt.ylabel(label)

技术图片

 

 3. regplot绘图

sns.regplot(x=df[v_0] , y=df[label])

技术图片

 

 

1.3 时间变量+数值标签

关于时间与数值标签,我们主要希望随着时间变化,数据是否表现除了某些特殊的模式(周期性等),以及是否出现了明显的异常现象等等。时间变量与数值变量的可视化直接使用plot函数即可。

1. plot绘图

df[creatDate] = pd.to_datetime(df[creatDate], format=%Y%m%d, errors=coerce)
                           
plt.plot(df.creatDate, df[label].values, color=black, linestyle=--, linewidth=1, label=label)

plt.xlabel(creatDate, fontsize=14)   
plt.ylabel(label, fontsize=16)     

技术图片

 

 

二、标签为二元变量

一般常见于二分类问题。

2.1 类别变量+二元标签

关于类别变量与二元标签的关系可以直接通过barplot函数进行可视化,如果不同类之间的分布差不大,那说明该类别变量大概率是意义不大的。

df = pd.read_csv(E:/谷歌下载/seaborn-data-master/titanic.csv)
var    = pclass
label  = survived
df.groupby(var)[label].mean()
‘‘‘
pclass
1    0.629630
2    0.472826
3    0.242363
Name: survived, dtype: float64
‘‘‘

画图

sns.barplot(x=var,  y=label , data=df)

技术图片

 

 

2.2 数值变量+二元标签

数值变量与二元标签的关系一般可以通过下面的两种方式分析:

  • 对数值变量进行分桶,然后基于类别变量与二元标签的关系进行分析;
  • 使用boxplot函数,观测在不同标签下,数值特征的分布差异。
sns.boxplot(df[label], df[fare])

技术图片

 

 

2.3标签为N(>2)元类别变量

也就是我们常说的多分类问题。在观测标签为多分类的问题时,因为标签是多个类别的,我们可以通过两种策略对其进行观察。

  • 将多分类转化为多个二分类然后进行观测,这么做最大的问题是我们需要分析量大大增加了,会使得问题变得更加繁琐;
  • 采用和数值变量+二元标签的策略对模型进行观测。
‘‘‘
    随机模拟产出多分类标签
‘‘‘
multi_label = y_generated
df[y_generated] = np.random.randint(low =0.5, high = 3.5, size = df.shape[0])

3.1 类别变量+N标签

直接使用countplot,将hue的位置设置为标签的名称即可。

sns.countplot(x=pclass, hue=multi_label, data=df)
plt.ylabel(Number of Occurrences, fontsize=12)
plt.xlabel(multi_label, fontsize=12)
plt.show()

技术图片

 

 

3.2 数值变量+N元标签

直接使用boxplot即可,观测在每个类处数值变量的分布情况。如果所有类处的数值变量分布都类似,那可能该数值变量带来的影响会相对较小,反之影响较大。

sns.boxplot(x=multi_label, y=age, data=df)
plt.ylabel(Age distribution, fontsize=12)
plt.xlabel(multi_label, fontsize=12)
plt.show()

技术图片

 

 文章参考:https://mp.weixin.qq.com/s/yPhrYp7gL28W5H5GatmCXA,只做笔记,不做商业用途

 

特征变量和y值的可视化

标签:xpl   tran   generated   绘图   房价   常见   http   class   转化   

原文地址:https://www.cnblogs.com/cgmcoding/p/14623153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!