二手车价格预测的EDA探索性数据分析

探索性数据分析可以分为以下几个方面:
1.数据预览
主要通过df.head(),简单查看数据的各列信息。
2.查看数据的基本信息
通过df.info()查看数据的数据类型,df.describe()发现数据的分布特征,主要是查看其数值型自变量的均值方差情况,对于方差变化小的特征特别留意,因为很可能是模型无法识别这类特征。通过极值情况发现数据是否存在异常值。
3.处理缺失值和异常值
当缺失值的数量小于10%的情况下,一般情况下我们可以使用均值、众数、中位数等进行填充,有时可以利用随机填充(np.random.uniform())效果可能更好一点。对于缺失较大的数据,则需要分许该特征与因变量的相关程度(cor),若是相关程度很低,则可以直接删除。若是很高,则需要另外想方法(可能会用到统计学的知识吧)。对于异常值的部分,更多的是考察异常值与因变量的影响程度大小,以及异常值的数量,若是很少量的异常值,可以直接删除,或者我更常用的是进行随机填充(利用箱型图的上四位数加上IQR进行随机选点填充,效果还是有那么一丢丢的)。
4.train和test的分布形状对比分析
对于train和test的分布形状进行对比分析,(这里建造对比图形可能用seaborn库中的facetgrid更直观),然后删除分布不一致的特征。(这次比赛貌似不需要,分布都极其相似,尴尬,一般用于那种特征过百的数据集中吧)
5.进行相关分析
通过corr()进行相关分析,可以选择pearson、sperman相关系数等。然后利用seaborn库的heatmap绘制热力图(其实我觉得热力图不咋好看)比如直接使用一个矩阵直观。df.corr()[“price”].sort_values(ascending=False).
6.区分定性变量和定量变量
6.1对于定性变量(分类变量、顺序变量)
主要查看数据的分布状况,如果分布偏斜太严重,可能咱就不用他了,因为再统计学上,这类特征往往会诱惑往偏斜的一方靠拢。(或许可以用spss或者r之类的进行简单的方差分析呀直接的也可以)。有一点思考就是只要是顺序变量直接变成哑变量这种虚拟变量是否合适,是否可以利用其中的关系梯度进一步挖掘信息呢。
6.2对于数值型变量
主要是查看分布状况,以及异常值情况。情况复杂,。。。
7.多变量交互分析
将多个特征组合起来进行分析,还可以与label结合,利用pandas库中的groupy()、pivot_tabele之类的。
8.对于label的分析
这里主要说一下分布问题。回归问题中,我们一般要数据要符合正太分布。这就需要对数据进行变换。此时一般都是log变换,但是本文中按照task发现log对数变换之后偏度并没有明显变化stats.skew(),0.3几左右,这是要不得的。所以咱最好用box-cox变换,stats.boxcox,变换之后发现偏度下降为了0.08左右,这就很舒服了!
上述只是一些简单的想法,希望对大家有用,毕竟我也只是一个卑微的初级菜鸟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值