欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EDA二手车数据分析

程序员文章站 2024-01-24 17:29:58
...

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()

EDA二手车数据分析

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()

价格分布结果是:
EDA二手车数据分析
对价格进行对数处理基本符合正态分布

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

EDA二手车数据分析
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)

EDA二手车数据分析