二手车预测part1

主要使用工具:pandas, numpy, matplotlib, seaborn, missingno

总体流程

第一步:数据的导入

train_data=pd.read_csv('D:/天池数据集/二手车/used_car_train_20200313.csv',engine='python',sep=' ')
test_data=pd.read_csv('D:/天池数据集/二手车/used_car_testA_20200313.csv',engine='python',sep=' ')
train_data.head()

在这里插入图片描述

第二步:查看数据的基本信息

train_data.describe()

在这里插入图片描述

train_data.info()

在这里插入图片描述

print(train_data.shape)
print(test_data.shape)

在这里插入图片描述
###对缺失值进行操作
查看训练数据集每个column的缺失值总数

train_data.isnull().sum()

在这里插入图片描述
查看测试数据集每个column的缺失值总数

test_data.isnull().sum()

在这里插入图片描述
查看训练和测试数据集缺失值的情况

missing=train_data.isnull().sum()
missing=missing[missing>0]
missing.sort_values(inplace=True)
missing.plot.bar()

在这里插入图片描述

msno.matrix(train_data)

在这里插入图片描述

msno.matrix(test_data)

在这里插入图片描述
由于只有notRepairedDamage这一列是object型,所以单独先对这个column的值进行填充
首先查看这一列的缺失值情况

train_data['notRepairedDamage'].value_counts()

在这里插入图片描述
再用NAN代替缺失值并查看现在缺失值情况

train_data['notRepairedDamage'].replace('-',np.nan,inplace=True)
train_data['notRepairedDamage'].value_counts()

在这里插入图片描述
对test_data进行相同上述操作,这里就不赘述了。

对无关的columns进行处理

由于seller列和offerType列属性严重倾斜,所以进行删除

del train_data["seller"]
del train_data["offerType"]
del test_data["seller"]
del test_data["offerType"]

##查看price列的分布情况

price.value_counts()

在这里插入图片描述

再查看price和哪个分布最吻合

import scipy.stats as st
y = train_data['price']
plt.figure(1); plt.title('Johnson SU')
sns.distplot(y, kde=False, fit=st.johnsonsu)
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
seaborn中的distplot主要功能是绘制单变量的直方图,且还可以在直方图的基础上施加kdeplot和rugplot的部分内容,是一个功能非常强大且实用的函数,其主要参数如下:
a:一维数组形式,传入待分析的单个变量
bins:int型变量,用于确定直方图中显示直方的数量,默认为None,这时bins的具体个数由Freedman-Diaconis准则来确定
hist:bool型变量,控制是否绘制直方图,默认为True
kde:bool型变量,控制是否绘制核密度估计曲线,默认为True
rug:bool型变量,控制是否绘制对应rugplot的部分,默认为False
fit:传入scipy.stats中的分布类型,用于在观察变量上抽取相关统计特征来强行拟合指定的分布,默认为None,即不进行拟合
hist_kws,kde_kws,rug_kws:这几个变量都接受字典形式的输入,键值对分别对应各自原生函数中的参数名称与参数值,在下文中会有示例
color:用于控制除了fit部分拟合出的曲线之外的所有对象的色彩
vertical:bool型,控制是否颠倒x-y轴,默认为False,即不颠倒
norm_hist:bool型变量,用于控制直方图高度代表的意义,为True直方图高度表示对应的密度,为False时代表的是对应的直方区间内记录值个数,默认为False
label:控制图像中的图例标签显示内容

图中的Johnson SU为约翰逊分布,是一种经过约翰变换后服从正态分布概率的随机变量的概率分布;normal为正态分布;lognormal为对数正态分布,对数正态分布从短期来看,与正态分布非常接近。但长期来看,对数正态分布向上分布的数值更多一些。
通过结果我们可以看到,无界约翰逊分布对price的分布情况拟合最好。
再对预测值进行峰度于偏度进行分析

sns.distplot(train
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值