EDA探索性分析能够帮助我们了解数据集,验证数据集
经过学习,我认为EDA分析一般步骤
1.查看数据集大体情况
2.查看缺失值情况并可视化缺失值
3.了解数据和特征分布
5.相关性分析
查看数据集大体情况
查看大体数据集的方法有:data.head(), data.shape, data.describe(), data.info()
查看缺失值情况
查看缺失值情况可先对缺失值进行求和,即data.isnull().sum(),然后直接可视化,可视化可用missing库或者matplotlib库。
注;缺失值不仅仅是nan值,一份数据集中某个值缺失不一定会放空,有可能用个符号去代替(例如用’-'号去代替缺失值),对于这种数据集,可通过data.info()查看各列的数据类型,取出object类型的列进行value_counts查看数据,若存在符号代替空值则可用series.replace()方法将符号替换为空值以便更好的进行分析
缺失值的处理:缺失值的处理包括3种方法
如果缺失值比例过高,则选择删除。
如果是针对类似XGBoost等树模型,因为这些模型自己能处理缺失值,所以对这类缺失值选择不处理
最后一种方法是差值补全,补全的方法的有统计量补全, 高维映射,建模预测,多重插补。差值补全的缺点是如果插补的数据不准确则会对后续的模型引入额外的误差
了解数据分布和特征分布
了解数据分布的方法应该是可视化数据并在数据的图上画上分布曲线,这样就能知道数据与哪种分布最匹配
对于特征分布,特征可分为数字特征和类别特征
对于没有直接label coding的数据,则可通过以下方法进行区分
#提取数字特征
#numeric_features = Train_data.select_dtypes(include=[np.number])
#numeric_features.columns
#提取类别特征
#categorical_features = Train_data.select_dtypes(include=[np.object])
#categprical.columns
否则就需要人为根据实际含义进行区分。
label coding就是通过映射将字符映射成各种数值类型数据的编码方式
对于数字特征,需要求出偏度和峰值,再配合可视化
对于类别特征,需要统计类别个数,再配合可视化
相关性分析
一般需要作出预测值和各个特征的关系图
正在学习,如有错误请指出,谢谢