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

阿里天池二手车交易价格预测(一)——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)

在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
天池大赛是一个面向数据科学竞赛的平台,近年来二手车交易价格预测一直是热门赛题之一。在这个比赛中,参赛者需要利用给定的二手车交易数据集,通过数据挖掘和机器学习的方法,预测二手车交易价格。这不仅对于参赛者来说是一次实战锻炼,同时也对于二手车交易市场具有一定的指导意义。 CSND作为一个大型的IT技术社区,对于数据科学和机器学习领域有着丰富的技术资源和人才储备。因此,CSND的技术团队及社区成员在天池大赛二手车交易价格预测中表现突出。他们不仅能够熟练运用数据挖掘和机器学习的算法,还能够结合实际场景进行问题建模和特征工程,提高了预测模型的准确性和鲁棒性。 在比赛中,CSND的选手们使用了多种机器学习算法,例如线性回归、决策树、随机森林、GBDT等,针对数据集的特点进行了合理的选择和调参。同时,他们还对缺失值、异常值和分类特征进行了有效的处理,提高了模型的稳健性。在模型评估和优化方面,CSND选手们还运用了交叉验证、模型融合等方法,进一步提升了预测效果。 总的来说,CSND在天池大赛二手车交易价格预测中展现出了数据科学领域的实力和水平,为整个社区树立了一个良好的技术典范。通过这样的比赛,CSND的技术团队和社区成员们得到了技术上的提升和实战经验的积累,也为二手车交易市场的定价和交易提供了有益的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一城山水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值