零基础入门数据挖掘——二手车交易价格预测:baseline


数据形式

训练数据集具有的特征如下:

  • 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向量)【人工构造 匿名特征】

预测指标

赛题要求采用mae作为评价指标

具体算法

导入相关库

  import pandas as pd
  import numpy as np
  import matplotlib.pyplot as plt
  import seaborn as sns
  import missingno as msno
  import scipy.stats as st
  import warnings
  warnings.filterwarnings('ignore')
  # 解决中文显示问题
  plt.rcParams['font.sans-serif'] = ['SimHei']
  plt.rcParams['axes.unicode_minus'] = False

数据分析

先读入数据:

  train_data = pd.read_csv("used_car_train_20200313.csv", sep = " ")

用excel打开可以看到每一行数据都放下一个单元格中,彼此之间用空格分隔,因此此处需要指定sep为空格,才能够正确读入数据。

观看一下数据:

  train_data.head(5).append(train_data.tail(5))

那么下面就开始对数据进行分析。

  train_data.columns.values
  array(['SaleID', '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'], dtype=object)

以上为数据具有的具体特征,那么可以先初步探索一下每个特征的数值类型以及取值等。

  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)
  memory usage: 35.5+ MB

可以看到除了notRepairedDamage是object类型,其他都是int或者float类型,同时可以看到部分特征还是存在缺失值的,因此这也是后续处理的重要方向。下面查看缺失值的情况:


 
  train_data.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

可以看到是部分特征存在较多的缺失值的,因此这是需要处理的部分

本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;

2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;

3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;

4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;

5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/295273.html

(0)
上一篇 2023年2月10日 11:41
下一篇 2023年2月10日 11:41

相关推荐

发表回复

登录后才能评论