EDA二手车数据分析

2.2 内容介绍

  1. 载入各种数据科学以及可视化库:

    数据科学库 pandas、numpy、scipy; 可视化库 matplotlib、seabon; 其他;

  2. 载入数据: 载入训练集和测试集; 简略观察数据(head()+shape);

  3. 数据总览:
    通过describe()来熟悉数据的相关统计量;通过info()来熟悉数据类型

  4. 判断数据缺失和异常;查看每列的存在nan情况;异常值检测

  5. 了解预测值的分布: 总体分布概况(无界约翰逊分布等) 查看skewness and kurtosis 查看预测值的具体频数

  6. 特征分为类别特征和数字特征,并对类别特征查看unique分布

  7. 数字特征分析
    相关性分析;查看几个特征得 ;偏度和峰值 ;每个数字特征得分布可视化 ;数字特征相互之间的关系可视化 ;多变量互相回归关系可视化

  8. 类型特征分析 unique分布 类别特征箱形图可视化 类别特征的小提琴图可视化 类别特征的柱形图可视化类别 特征的每个类别频数可视化(count_plot)

  9. 用pandas_profiling生成数据报告

2.3## 代码示例
2.3.1载入库

import pandas as pd
import numpy as np
import warnings 
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.special import jn
from IPython.display import display,clear_output
import time

2.3.2载入数据

##载入训练集和测试集
Train_data = pd.read_csv('/Users/tututu/Desktop/shujujingsai/used_car_train_20200313.csv',sep=' ')
TestA_data = pd.read_csv('/Users/tututu/Desktop/shujujingsai/used_car_testA_20200313.csv',sep=' ')
     
print('Train data shape:',Train_data.shape)
print('TestA data shape:',Test_data.shape)

2.3.3数据信息查看

##通过.info()可以看到对应的数据列名,以及NAN缺失信息
Train_data.info()
##通过.columns查看列名
Train_data.columns

2.3.4数据统计信息浏览

##通过.describe()可以查看数值特征列的一些统计信息
Train_data.describe()

在这里插入图片描述

2.3.5了解预测值的分布

Train_data["price"]

0 1850
1 3600
2 6222
3 2400
4 5200

149995 5900
149996 9500
149997 7500
149998 4999
149999 4700
Name: price, Length: 150000, dtype: int64

##总体分布概况(无界约翰逊分布等)
import scipy.stats as st
y = Train_data["price"]
plt.figure(1);plt.title("Jojnson SU")
sns.distplot(y,kde=False,fit=st.johnsonsu)
plt.figure(2);plt.title('Nomal')
sns.distplot(y,kde = False,fit =st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False , fit=st.lognorm)
plt.hist(Train_data['price'],orientation='vertical',histtype='bar',color='red')
plt.show()

价格分布结果是:
在这里插入图片描述
对价格进行对数处理基本符合正态分布

plt.hist(np.log(Train_data['price']),orientation='vertical',histtype='bar',color='red')
plt.show()

在这里插入图片描述
2.3.6对价格与其他类别进行相关性分析

Y_train=Train_data['price']
numerical_features = ['power','kilometer', 'v_0', 'v_1', 'v_2', 'v_3', 'v_4', 'v_5', 'v_6', 'v_7', 'v_8', 'v_9', 'v_10', 'v_11', 'v_12', 'v_13', 'v_14']
categorical_features =['name', 'model', 'brand', 'bodyType', 'fuelType', 'gearbox', 'notRepairedDamage','regionCode','creatDate']
numerical_features.append('price')
#相关性分析
price_numeric=Train_data[numerical_features]
correlation= price_numeric.corr()
print(correlation['price'].sort_values(ascending=False),'\n')

price 1.000000
v_12 0.692823
v_8 0.685798
v_0 0.628397
power 0.219834
v_5 0.164317
v_2 0.085322
v_6 0.068970
v_1 0.060914
v_14 0.035911
v_13 -0.013993
v_7 -0.053024
v_4 -0.147085
v_9 -0.206205
v_10 -0.246175
v_11 -0.275320
kilometer -0.440519
v_3 -0.730946
Name: price, dtype: float64

进行画图分析:

f,ax = plt.subplots(figsize =(8,8))
plt.title('Correlation of Numeric Featyres with Price',y = 1,size=16)
sns.heatmap(correlation,square=True,vmax=0.8)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值