数据挖掘-二手车价格预测 Task02:数据分析

简介: 数据挖掘-二手车价格预测 Task02:数据分析

Task02:数据分析


4c6f50c1fb4b1a7022a6d0170de4bacf_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NjIwMjQ3NDM=,size_16,color_FFFFFF,t_70#pic_center.jpg


1.EDA数据探索性分析


读取文件

import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import missingno as msno
data_train = pd.read_csv('used_car_train_20200313.csv',sep=' ')
data_testA = pd.read_csv('used_car_testA_20200313.csv',sep=' ')


2.总览数据概况


理论

1.【总览数据概况】

data.describe() – 统计各个特征的非NaN的个数,均值,标准差,最小值,最大值,分位数。返回dataframe格式的统计表。


data.info() – 统计各个特征的dtype,非NaN的个数等。


2.【判断数据缺失和异常】

data.isnull() – 查看全体数据是否为nan,返回各个位置为nan是True还是False。


data.isnull().sum() – 查看每列(每个特征)存在nan的情况,返回每个特征对应缺失值个数。


data[feature].value_counts() – 统计feature的各个值的个数。


实战


观察数据

data_train.head()
SaleID    name    regDate    model    brand    bodyType    fuelType    gearbox    power    kilometer    ...    v_5    v_6    v_7    v_8    v_9    v_10    v_11    v_12    v_13    v_14
0    0    736    20040402    30.0    6    1.0    0.0    0.0    60    12.5    ...    0.235676    0.101988    0.129549    0.022816    0.097462    -2.881803    2.804097    -2.420821    0.795292    0.914762
1    1    2262    20030301    40.0    1    2.0    0.0    0.0    0    15.0    ...    0.264777    0.121004    0.135731    0.026597    0.020582    -4.900482    2.096338    -1.030483    -1.722674    0.245522
2    2    14874    20040403    115.0    15    1.0    0.0    0.0    163    12.5    ...    0.251410    0.114912    0.165147    0.062173    0.027075    -4.846749    1.803559    1.565330    -0.832687    -0.229963
3    3    71865    19960908    109.0    10    0.0    0.0    1.0    193    15.0    ...    0.274293    0.110300    0.121964    0.033395    0.000000    -4.509599    1.285940    -0.501868    -2.438353    -0.478699
4    4    111080    20120103    110.0    5    1.0    0.0    0.0    68    5.0    ...    0.228036    0.073205    0.091880    0.078819    0.121534    -1.896240    0.910783    0.931110    2.834518    1.923482
5 rows × 31 columns

特征含义

name - 汽车编码

regDate - 汽车注册时间

model - 车型编码

brand - 品牌

bodyType - 车身类型

fuelType - 燃油类型

gearbox - 变速箱

power - 汽车功率

kilometer - 汽车行驶公里

notRepairedDamage - 汽车有尚未修复的损坏

regionCode - 看车地区编码

seller - 销售方

offerType - 报价类型

creatDate - 广告发布时间

price - 汽车价格

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’(根据汽车的评论、标签等大量信息得到的embedding向量)【人工构造 匿名特征】

详细信息


data_train.describe()
SaleID    name    regDate    model    brand    bodyType    fuelType    gearbox    power    kilometer    ...    v_5    v_6    v_7    v_8    v_9    v_10    v_11    v_12    v_13    v_14
count    150000.000000    150000.000000    1.500000e+05    149999.000000    150000.000000    145494.000000    141320.000000    144019.000000    150000.000000    150000.000000    ...    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000    150000.000000
mean    74999.500000    68349.172873    2.003417e+07    47.129021    8.052733    1.792369    0.375842    0.224943    119.316547    12.597160    ...    0.248204    0.044923    0.124692    0.058144    0.061996    -0.001000    0.009035    0.004813    0.000313    -0.000688
std    43301.414527    61103.875095    5.364988e+04    49.536040    7.864956    1.760640    0.548677    0.417546    177.168419    3.919576    ...    0.045804    0.051743    0.201410    0.029186    0.035692    3.772386    3.286071    2.517478    1.288988    1.038685
min    0.000000    0.000000    1.991000e+07    0.000000    0.000000    0.000000    0.000000    0.000000    0.000000    0.500000    ...    0.000000    0.000000    0.000000    0.000000    0.000000    -9.168192    -5.558207    -9.639552    -4.153899    -6.546556
25%    37499.750000    11156.000000    1.999091e+07    10.000000    1.000000    0.000000    0.000000    0.000000    75.000000    12.500000    ...    0.243615    0.000038    0.062474    0.035334    0.033930    -3.722303    -1.951543    -1.871846    -1.057789    -0.437034
50%    74999.500000    51638.000000    2.003091e+07    30.000000    6.000000    1.000000    0.000000    0.000000    110.000000    15.000000    ...    0.257798    0.000812    0.095866    0.057014    0.058484    1.624076    -0.358053    -0.130753    -0.036245    0.141246
75%    112499.250000    118841.250000    2.007111e+07    66.000000    13.000000    3.000000    1.000000    0.000000    150.000000    15.000000    ...    0.265297    0.102009    0.125243    0.079382    0.087491    2.844357    1.255022    1.776933    0.942813    0.680378
max    149999.000000    196812.000000    2.015121e+07    247.000000    39.000000    7.000000    6.000000    1.000000    19312.000000    15.000000    ...    0.291838    0.151420    1.404936    0.160791    0.222787    12.357011    18.819042    13.847792    11.147669    8.658418
8 rows × 30 columns
print(data_train.shape,data_testA.shape)
(150000, 31) (50000, 30)

查看缺失值


print(data_train.isnull().sum())
print(data_testA.isnull().sum())
SaleID                  0
name                    0
regDate                 0
model                   1
brand                   0
bodyType             4506
fuelType             8680
gearbox              5981
power                   0
kilometer               0
notRepairedDamage       0
regionCode              0
seller                  0
offerType               0
creatDate               0
price                   0
v_0                     0
v_1                     0
v_2                     0
v_3                     0
v_4                     0
v_5                     0
v_6                     0
v_7                     0
v_8                     0
v_9                     0
v_10                    0
v_11                    0
v_12                    0
v_13                    0
v_14                    0
dtype: int64
SaleID                  0
name                    0
regDate                 0
model                   0
brand                   0
bodyType             1413
fuelType             2893
gearbox              1910
power                   0
kilometer               0
notRepairedDamage       0
regionCode              0
seller                  0
offerType               0
creatDate               0
v_0                     0
v_1                     0
v_2                     0
v_3                     0
v_4                     0
v_5                     0
v_6                     0
v_7                     0
v_8                     0
v_9                     0
v_10                    0
v_11                    0
v_12                    0
v_13                    0
v_14                    0
dtype: int64

从统计情况看,训练数据中model、bodyType、fuelType、gearbox存在缺失值



查看是否有异常值



print(Train_data.info())


结果如下:


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150000 entries, 0 to 149999
Data columns (total 31 columns):
 #   Column             Non-Null Count   Dtype  
---  ------             --------------   -----  
 0   SaleID             150000 non-null  int64  
 1   name               150000 non-null  int64  
 2   regDate            150000 non-null  int64  
 3   model              149999 non-null  float64
 4   brand              150000 non-null  int64  
 5   bodyType           145494 non-null  float64
 6   fuelType           141320 non-null  float64
 7   gearbox            144019 non-null  float64
 8   power              150000 non-null  int64  
 9   kilometer          150000 non-null  float64
 10  notRepairedDamage  150000 non-null  object 
 11  regionCode         150000 non-null  int64  
 12  seller             150000 non-null  int64  
 13  offerType          150000 non-null  int64  
 14  creatDate          150000 non-null  int64  
 15  price              150000 non-null  int64  
 16  v_0                150000 non-null  float64
 17  v_1                150000 non-null  float64
 18  v_2                150000 non-null  float64
 19  v_3                150000 non-null  float64
 20  v_4                150000 non-null  float64
 21  v_5                150000 non-null  float64
 22  v_6                150000 non-null  float64
 23  v_7                150000 non-null  float64
 24  v_8                150000 non-null  float64
 25  v_9                150000 non-null  float64
 26  v_10               150000 non-null  float64
 27  v_11               150000 non-null  float64
 28  v_12               150000 non-null  float64
 29  v_13               150000 non-null  float64
 30  v_14               150000 non-null  float64
dtypes: float64(20), int64(10), object(1)


代码示例


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

载入数据

总览数据概况

判断数据缺失和异常

了解预测值的分布

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

数字特征分析

类别特征分析

用pandas_profiling生成数据报告


目录
相关文章
|
3月前
|
供应链 数据可视化 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
113 3
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
|
3月前
|
数据可视化 数据挖掘 索引
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
66 1
|
3月前
|
供应链 算法 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛B题的解决方案,深入分析了产品订单数据,并使用Arimax和Var模型进行了需求预测,旨在为企业供应链管理提供科学依据,论文共23页并包含实现代码。
86 0
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
|
3月前
|
机器学习/深度学习 安全 算法
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 32页和40页论文及实现代码
本文总结了2023年第十一届泰迪杯数据挖掘挑战赛A题的新冠疫情防控数据分析,提供了32页和40页的论文以及实现代码,涉及密接者追踪、疫苗接种影响分析、重点场所管控以及疫情趋势研判等多个方面,运用了机器学习算法和SEIR传染病模型等方法。
53 0
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 32页和40页论文及实现代码
|
3月前
|
机器学习/深度学习 安全 算法
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 建模方案及python代码详解
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛A题的解题思路和Python代码实现,涵盖了新冠疫情防控数据的分析、建模方案以及数据治理的具体工作。
68 0
【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 建模方案及python代码详解
|
5月前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
399 11
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
1324 3
|
6月前
|
数据可视化 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一)
|
6月前
|
算法 搜索推荐 数据挖掘
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)
数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(续)