MathorCup高校数学建模挑战赛—大数据竞赛

A题 二手车估价问题

原题再现:

  随着我国的机动车数量不断增长,人均保有量也随之增加,机动车以“二手车”形式在流通环节,包括二手车收车、二手车拍卖、二手车零售、二手车置换等环节的流通需求越来越大。二手车作为一种特殊的“电商商品”,因为其“一车一况”的特性比一般电商商品的交易要复杂得多,究其原因是二手车价格难于准确估计和设定,不但受到车本身基础配置,如品牌、车系、动力等的影响,还受到车况如行驶里程、车身受损和维修情况等的影响,甚至新车价格的变化也会对二手 车价格带来作用。目前国家并没有出台一个评判二手车资产价值的标准。一些二手车交易平台和二手车第三方估价平台都从自身的角度建立了一系列估价方法用于评估二手车资产的价值。
  在一个典型的二手车零售场景,二手车一般通过互联网等线上渠 道获取用户线索,线下实体门店对外展销和售卖,俗称 O2O 门店模式。门店通过“买手”从个人或其他渠道收购二手车,然后由门店定价师定价销售,二手车商品和其他商品一样,如果定价太高滞销也会打 折促销,甚至直接以较低的价格打包批发,直至商品最终卖出。
  基于以上背景,请你们团队根据附件给出的数据,通过数据分析与建模的方法帮助二手车交易平台解决下面的问题:

  初赛问题
  问题 1:基于给定的二手车交易样本数据(附件 1:估价训练数据),选用合适的估价方法,构建模型,预测二手车的零售交易价格,数据中会对 id 类,主要特征类等信息进行脱敏。主要数据包括车辆基础信息、交易时间信息、价格信息等,包含 36 列变量信息,其中15 列为匿名变量。字段如下:

  请采用附件 1 中的“估价训练数据”(带标签)训练模型和测试模型,自行设置测试集,使用训练完成后的模型对附件 2 中的“估价验证数据”(不带标签)进行预测,并将预测结果保存在附件 3“估价模型结果”文件中,注意不要修改格式,单独上传到竞赛平台。

  其中附件 1“估价训练数据”和附件 2“估价验证数据”只相差最后1 列数据(二手车交易价格(预测目标)),附件 3“估价模型结果”文件字段如下:

  问题 2:在门店模式中,车辆在被“买手”收车以后,会进入门店进行售卖,车辆能否成功交易,除了取决于销售的谈判技巧,更重要的是车辆本身是否受消费者青睐,价格是否公道。假设你们是门店的定价师,请你们结合附件 4“门店交易训练数据”对车辆的成交周期(从车辆上架到成交的时间长度,单位:天)进行分析,挖掘影响车辆成交周期的关键因素。假如需要加快门店在库车辆的销售速度,你们可以结合这些关键因素采取哪些行之有效的手段,并进一步说明这些手段的适用条件和预期效果。

  附件 4“门店交易训练数据”包括 6 个字段,如下表所示,其中所有 carid 等相关信息包含在附件 1“估价训练数据”中。各字段间采用“\t”分隔符分割,不包含表头。

  问题 3:依据给出的样本数据集,你们觉得还有哪些问题值得研究,并给出你们的思路?将问题 1、2、3 的解决过程写成一篇论文,明确你们的思路、模型、方法和结果。

  我们使用数据库对数据进行处理及分析:
  首先将原数据变为csv或是excel数据然后倒入数据库中,如下图所示:

  导入成功之后,接下来进行数据处理,对于空值及特殊字段

  我们可以看到,所有字段均非空的数据寥寥无几,占比很少(原数据总数为30000而均非空数目只有271条),因此不能直接剔除含空数据的车辆数据,那如何处理这个二手车部分字段空值数据呢?
  此处数据处理应根据实际情况给出二手车交易过程中题中所给影响因素占比权重,然后再根据不同权重下的变量将不同空值下的数据进行分类存储,为后面做数据分析作铺垫。
  例如:里程、过户次数、载客人数、上牌日期、年款等等这些都是影响二手车交易价的重要指标,如何合理的分配这些影响因素的占比是你鉴于实际背景查阅相关资料所要深入研究的。
  合理分配完权重之后,按照空值缺失字段影响占比超过30%的变量进行分类(空与非空),根据该题目一中要求,这显然是一个基于回归的机器学习问题,因此为了能够达到较好的预测效果及题中所要求的精确率,必须将特殊字段进行数值化处理(都是什么字段怎么处理呢?嘿嘿我不告诉你,想要就看最下方,此处用到了substring函数分割截取以及分类变量转化增广矩阵)。
  数据处理之后,我们也对数据全局有个大概的掌握,现在就是细化分析,根据你设计的权重大的变量进行单因素因子分析,怎么分析,如下图所示:

  要想单因子首先看是否存在同一品牌id同一车系id下存在不同车型id,题中给的数据还是比较良心的啊,没有这样的数据,这个务必说明验证一下,接下来继续数据分析

  大的方向找到了之后,接下来扣更细的点,我这里之前未将空与非空拆分,你们一定要拆分呦,进行必要的数据计算分析的过程之后,就是最重要的一步对已有训练数据进行构建回归模型训练了,至于采用什么回归模型(我还是不告诉你,哈哈哈哈哈),有需要程序及数学模型的见下方。
  友情提示一下,一定要将平均相对误差低于5%,别怪我没有提醒哦。

  紧接上文回归模型我给个线性回归的和SVM回归的,大家可以比较看看
  优缺点就不说了,像废话一样,直接上程序。

基于二手车估价的线性回归

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import SGDRegressor
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_errordata = pd.read_csv(open('C:/Users/Tracy/Desktop/300/2021/附件/附件1.csv'))
data.fillna(0)
data1 = np.array(data)
X = data1[:, 1:-2]
y = data.iloc[:, 37]
#print("Giving dataset has {} data points with {} variables each.".format(*data.shape))
#print(y)
minimum_price = np.min(y)
maximum_price = np.max(y)
mean_price = np.mean(y)
median_price = np.median(y)
std_price = np.std(y)
# 分析回归目标值的差异。
print("The max target price is", np.max(y))
print("The min target price is", minimum_price)
print("The average price value is", mean_price)
#print("The median price value is", median_price)
#print("The std_price price value is", std_price)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)# 分别初始化对特征和目标值的标准化器。
ss_X = StandardScaler()
ss_y = StandardScaler()# 分别对训练和测试数据的特征以及目标值进行标准化处理。
X_train = ss_X.fit_transform(X_train)
X_test = ss_X.transform(X_test)
y_train = ss_y.fit_transform(y_train)
y_test = ss_y.transform(y_test)
st = ss_y.transform(y_test)

接下来的使用默认配置初始化线性回归器LinearRegression,使用训练数据进行参数估计,对测试数据进行回归预测,使用LinearRegression模型自带的评估模块,并输出评估结果;使用r2_score模块,并输出评估结果…
基于二手车估价线性回归的程序想要全部见最下方

基于二手车估价的SVM回归算法

import numpy as np
import pandas as pd
from sklearn import svm,datasets
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
from sklearn.model_selection import train_test_splitclf = OneVsRestClassifier(svm.SVC(kernel='linear'))
df = pd.read_table('C:/Users/Tracy/Desktop/300/2021年MathorCup大数据竞赛赛道A/附件/附件1.txt', 'r', delimiter='\\t', header = None)
x = df.iloc[:5000,:36]
x1 = np.array(df.iloc[:5000,:36]).astype(str)tdf = pd.read_table('C:/Users/Tracy/Desktop/300/2021年MathorCup大数据竞赛赛道A/附件/附件2.txt', 'r', delimiter='\\t', header = None)
y = tdf.iloc[:]
y1 = np.array(tdf.iloc[:5000,:36]).astype(str)x_train, x1_test, y_train, y1_test = train_test_split(x, y, test_size=3)clf.fit(x_train, y_train)y_pred = clf.predict(x1_test)rf = pd.DataFrame(list(zip(y_pred, y1_test)), columns=['predicted', 'actual'])
rf['correct'] = rf.apply(lambda r:1 if r['predicted'] == r['actual'] else 0, axis=1)
print(rf)

2021年MathorCup高校数学建模挑战赛—大数据竞赛A题二手车估价问题解题思路相关推荐

  1. 2021年MathorCup高校数学建模挑战赛——大数据竞赛A题

    赛道 A:二手车估价问题 随着我国的机动车数量不断增长,人均保有量也随之增加,机动 车以"二手车"形式在流通环节,包括二手车收车.二手车拍卖.二手 车零售.二手车置换等环节的流通需 ...

  2. 2021 年 MathorCup 高校数学建模挑战赛——大数据竞赛B题

    赛道 B:信息流智能推荐算法中的序列评估问题 随着互联网信息的蓬勃发展,用户在使用互联网应用时面临着信息过载的问题.推荐算法的出现,满足了用户个性化的内容消费需求,  提升了用户获取有用信息的效率,在 ...

  3. 2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛(baseline)

    教育部<高等学校人工智能创新行动计划>教技[2018]3号,鼓励对计算机专业类的智能科学与技术.数据科学与大数据技术等专业进行调整和整合,鼓励各个领域与大数据进行深度融合,通过大数据技术促 ...

  4. MathorCup高校数学建模挑战赛——大数据竞赛 赛道A 移动通信基站流量预测baseline

    文章目录 前言 一.简单分析 二.具体程序 1.引入库 2.读入数据 3.数据处理 4.模型训练和预测 5.结果文件输出 总结 前言 本文给出2020年MathorCup高校数学建模挑战赛--大数据竞 ...

  5. 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)

    赛道 B:北京移动用户体验影响因素研究      移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷.随着网络不断的建设,网络覆盖越来越完善.各个移动运营商,越来 ...

  6. 2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛

    关注我后续分享更多数学建模思路~

  7. 第三届2022MathorCup高校数学建模挑战赛大数据论文加代码(附详解)

    基于系统决策树分类的移动用户体验影响因素研究 摘要 本题主要是一个研究预测模型,以中国移动通信集团北京公司为背景,让客户根据 自身在网络覆盖与信号强度方面的体验和语音通话过程中的整体体验来进行语音通话 ...

  8. 2021年MathorCup高校数学建模挑战赛b题:三维团簇的能量预测(三等)

    微信公众号:数学建模与人工智能 https://github.com/QInzhengk/Math-Model-and-Machine-Learning 三维团簇的能量预测 摘要 一.问题重述 1 二 ...

  9. 2021年MathorCup高校数学建模挑战赛B题三维团簇的能量预测解题全过程文档加程序

    2021年第十一届MathorCup高校数学建模 B题 三维团簇的能量预测 原题再现 原题再现   团簇,也称超细小簇,属纳米材料的尺度概念.团簇是由几个乃至上千个原子.分子或离子通过物理或化学结合力 ...

最新文章

  1. 每位开发人员都应铭记的10句编程谚语 (我超喜欢,转载了)
  2. 数据分类:决策树Decision Tree
  3. [云炬创业基础笔记]第七张创业团队测试8
  4. NGUI减少Drawcall
  5. 【华为云动态】华为云DevCloud助力DevOps标准体系建设
  6. leetcode 594 最长和谐子序列
  7. Git命令之查看及设置用户名邮箱
  8. Yii2实现自定义独立验证器的方法
  9. atitit.提升备份文件复制速度(3) ----建立同步删除脚本
  10. 【进销存管理系统——开题报告 分享(仅供参考呀)】
  11. windows进行udp端口转发
  12. 用广义线性模型进行数据分析(下)
  13. Base64解码文件下载
  14. 太秀了!程序媛小姐姐写出代码版《本草纲目》,刘畊宏回复:很cool!
  15. linux keynav 鼠标可以扔掉了键盘控制鼠标
  16. uni-app 对接第三方h5
  17. STL库:stack和queue
  18. 《禅与摩托车维修艺术》骑行路上的哲学思考
  19. 基于android的门禁系统代码,基于ESP8266 base on esp8266门禁系统 安卓源码
  20. python中arcsec_python绘制基本初等函数图像

热门文章

  1. 原子物理中的组合常数 与astropy包中的科学数据
  2. 用计算机语言写的痴心男的一生历程
  3. Python | 阿尔法基本语法元素练习题
  4. android加载百度地图,Android Studio加载百度地图遇到的BUG以及流程
  5. intellij idea设置字体大小
  6. 【​观察】Find X定义旗舰手机新标杆 OPPO从颠覆自我到颠覆行业
  7. oracle sysdate mysql_SYSDATE, NOW等“误区”-Oracle, PostgreSQL, MySQL
  8. 两年美团算法大佬的个人总结与学习建议
  9. 云贝餐饮连锁V2 v2.5.6 外卖/店内/预定/排号 餐饮外卖扫码点餐 智慧新零售
  10. 939. 最小面积矩形