阿里天池二手车交易价格预测(一)——EDA

Exploratory Data Analysis是数据科学领取理解和分析数据的方法,通过不断的收集、分析和假设验证,以取得对数据的深入理解。

  • EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。
  • 当了解了数据集之后我们下一步就是要去了解变量间的相互关系以及变量与预测值之间的存在关系。
  • 引导数据科学从业者进行数据处理以及特征工程的步骤,使数据集的结构和特征集让接下来的预测问题更加可靠。
  • 完成对于数据的探索性分析,并对于数据进行一些图表或者文字总结。

Data Set : used_car 链接: https://tianchi.aliyun.com/competition/entrance/231784/information

用到以下库

import pandas as pd
import seaborn as sns
import warnings
import missingno as msno
import numpy as np
# 用于忽略警告
warnings.filterwarnings('ignore')

读取给定的数据并查看数据量

df_train = pd.read_csv('/Users/apple/Desktop/天池/UsedCarTransactionPriceForecast/used_car_train_20200313.csv',sep=' ')
print("df_train.shape:",df_train.shape)
df_test = pd.read_csv('/Users/apple/Desktop/天池/UsedCarTransactionPriceForecast/used_car_testB_20200421.csv',sep=' ')
print("df_test.shape:",df_test.shape)


查看数据

print(df_train.head()) # 默认为前5行
print(df_test.head())


使用describe() 可以查看关于count、mean、std等等 ,df_test类同,不再述复

df_train.describe()


查看数据类型

查看训练集和测试集 数据类型为 object

# 查看训练集和测试集 数据类型为 object
for col in df_train.columns:if df_train[col].dtype == "object":print(col)
for col in df_test.columns:if df_test[col].dtype == "object":print(col)

统计训练集和测试集的缺失值

print(df_train.isnull().sum())
print(df_test.isnull().sum())


可视化缺失值,只展示训练集的缺失值可视化,测试集一样

train_nan_sum = df_train.isnull().sum()
train_nan_sum = train_nan_sum[train_nan_sum>0]
train_bar_data = pd.DataFrame({'type':train_nan_sum.index.tolist(),'values':train_nan_sum.values.tolist()})
print(train_bar_data)
train_nan_abr = sns.barplot(x='type',y='values',data=train_bar_data)


也可以用 missingno 的 matrix 来更好的看数据的缺失情况

msno.matrix(df_train)


或者使用seaborn中过的heatmap 来观察缺失值

sns.heatmap(df_train.isnull(),cbar=False,cmap='viridis')

也可以用条形图

了解预测值的分布情况

拟合预测值情况

# johnsonsu是无界约翰逊分布,norm是最大似然高斯分布,lognorm是最大似然对数高斯分布
import scipy.stats as st
import matplotlib.pyplot as plt
plt.figure(1); plt.title('Johnson SU')
sns.distplot(df_train['price'], kde=False, fit=st.johnsonsu)
plt.figure(2); plt.title('norm')
sns.distplot(df_train['price'], kde=False, fit=st.norm)
plt.figure(3); plt.title('lognorm')
sns.distplot(df_train['price'], kde=False, fit=st.lognorm)




从上面分析可知,预测值分布最接近无界约翰逊分布
查看 偏度 和 峰度

# 查看skewness and kurtosis
sns.distplot(df_train['price']);
print("Skewness: %f" % df_train['price'].skew()) # 偏度
print("Kurtosis: %f" % df_train['price'].kurt()) # 峰度


进行Log转换后的预测值可视化对比

fig,(ax1,ax2) = plt.subplots(2,1,figsize=(12,8))
df_train['price'].plot(kind='hist',bins=100,title='train_hist',ax=ax1)
df_train['price'].apply(np.log).plot(kind='hist',bins=100,title='Log_train_hist',ax=ax2)

阿里天池二手车交易价格预测(一)——EDA相关推荐

  1. 天池二手车交易价格预测Task2-赛题理解与数据探索性分析(EDA)

    一.赛题理解 1.1赛题概述 赛题以预测二手车的交易价格为任务,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量.为了保证比赛的公平性,将会从中抽取1 ...

  2. 天池二手车交易价格预测-Task1

    一.注册天池账号 二.熟悉赛题 三.下载数据集

  3. 二手车交易价格预测-task2

    数据挖掘入门- 二手车交易价格预测-task2 EDA(Exploratory Data Analysis)-数据探索性分析 2.1 EDA目标 2.2 内容介绍 2.3 经验总结 EDA(Explo ...

  4. 二手车交易价格预测方案——数据分析EDA

    二手车交易价格预测 题目解析 赛题概况 数据概况 数据脱敏 评价指标 EDA目标 读取数据 head(),tail(),describe() 数据总览和异常值检查 describe(),info() ...

  5. 天池_二手车交易价格预测

    二手车交易价格预测 赛题链接天池: https://tianchi.aliyun.com/competition/entrance/231784/introduction 笔记记录:Github 主要 ...

  6. 天池大赛——二手车交易价格预测方案分享(一)

    这个比赛是天池的一个数据挖掘入门赛,要求根据提供的数据预测二手车的交易价格,属于回归问题,此篇主要分享一下特征工程和基础模型方面的思路. 1. 特征基本统计 date_cols = ['regDate ...

  7. python二手车价格预测_天池_二手车交易价格预测数据分析

    字典 FieldDescription SaleID 交易ID,唯一编码 name 汽车交易名称,已脱敏 regDate 汽车注册日期,例如20160101,2016年01月01日 model 车型编 ...

  8. 【直播】王茂霖:二手车交易价格预测-千变万化特征工程(河北高校数据挖掘邀请赛)

    二手车交易价格预测-千变万化特征工程 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析.特征工 ...

  9. 【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)

    二手车交易价格预测 Baseline 提高 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析. ...

最新文章

  1. Web应用程序运行平台的数据安全传输
  2. (数据结构与算法)递归及一些经典递归问题
  3. Divide by three, multiply by two CodeForces - 977D (思维排序)
  4. Filter和Listener-学习笔记04【监听器】
  5. 在公网(internet)上建立website时不能用http访问
  6. Ververica Platform-阿里巴巴全新Flink企业版揭秘
  7. 帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法
  8. 信息学奥赛一本通(1086:角谷猜想)
  9. 重做LVM文件系统之减小PV
  10. kubectl apply -f_新车 | 新款捷豹F-PACE登陆广州车展!内外提升十分明显
  11. linux更改库文件vfp,VFP数据库修改与删除的基本操作
  12. 详解KITTI数据集
  13. 对TMS320F28335存储空间的理解
  14. LED发光原理(笔记)
  15. mysql recordcount 1_移植到 MySQL-对 MYSQL 数据库使用 ASP Recordcount 的问题
  16. 灵魂讲师分享的:po是什么?自动化测试po分层如何实现?-带po详细源代码
  17. AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了
  18. xml文件怎么转换成wps_xml文件转word文档 怎么将XML文档转成WORD文档
  19. 如何判断你的初创企业是否有募资潜力
  20. Python公历转换农历及简易万年历

热门文章

  1. Python:数据降序排列索引
  2. CSS重置默认样式reset.css代码模板
  3. Widget Extention开发笔记
  4. shell脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
  5. $wnd and $doc Calling native JavaScript with JSNI
  6. 键盘怎么一按f1就出计算机,电脑每次开机都要按F1键,且开机后都会弹出一个打开方式的窗口,请问该怎么处理?...
  7. 解决虚拟机中XYplorer中文件列表不能刷新的问题_我是亲民_新浪博客
  8. 创新趋势 | SaaS增长新趋势:产品驱动增长PLG(上)
  9. Android——讯飞语音唤醒简介及实现
  10. BZOJ 2563: 阿狸和桃子的游戏