首页 > 其他分享 >R语言机器学习方法分析二手车价格影响因素

R语言机器学习方法分析二手车价格影响因素

时间:2023-11-11 23:24:08浏览次数:32  
标签:10 机器 语言 RMSE 二手车 folds 因变量 预测

原文链接:https://tecdat.cn/?p=34238

原文出处:拓端数据部落公众号

分析师:Siming Yan

比较多种机器学习方法优劣性,分析二手车价格影响因素,训练模型预测二手车价格。

任务 / 目标

根据印度二手车交易市场1996-2019年数据,进行清洗,建模,预测。

数据源准备

7253笔交易数据包括汽车属性和交易日期、地点等信息。分析数据构成:

将数据分为NA和非NA组,分析缺失值是否均匀分布:

QQ截图20231110155851.png

对于的因变量“交易价格”,可见其缺失值基本均匀分布。

image.png

图片2.png

其他自变量的缺失值也基本均匀分布。

特征转换

对一些因变量进行dummy variable转换。对大数值变量如引擎容量,已行驶的公里数进行log transformation。

划分训练集和测试集

75% training data, 25 test data. RMSE作为衡量模型精度的标准。

image.png

建模

10 folds Validation when training models to choose best model tuning parameters .

image.png

1. Linear Regression with mixing Lasso & Ridge Penalty:

image.png

包含三种模型的混合预测。

image.png

Best tune: Alpha 0.25, lambda .053. RMSE 5.332

1.    Support Vector Machines with Radial Basis Function Kernel

image.png

image.png

image.png

Best tune: Cost(M) = 10.

image.png

image.png

1. Random Forests:

image.png

随着随机选定的因变量数量提高,10 folds Cross Validation所展示的拟合效果也有波折地逐渐提高。

1.    Stochastic Gradient Boosting Machine

image.png

调整的参数为树深,树层数达到6时拟合效果最好。

image.png

image.png

模型优化

各个模型都进行了调参过程。主要依据为10 folds cross validation

结果

在此案例中,Stochastic Gradient Boosting Machine 所得到的RMSE值最小,预测效果最好。

image.png

预测结果仅作为参考一个权重值,还需要专家意见,按照一定的权重来计算。

以下为预测集和测试集的部分展示:

image.png

关于分析师

image.png

在此对Siming Yan对本文所作的贡献表示诚挚感谢,他专注数据采集,数据分析,机器学习领域。擅长R语言、Python、SQL、Tableau。

标签:10,机器,语言,RMSE,二手车,folds,因变量,预测
From: https://www.cnblogs.com/tecdat/p/17826553.html

相关文章

  • 使用ResponseSelector实现校园招聘FAQ机器人
      本文主要介绍使用ResponseSelector实现校园招聘FAQ机器人,回答面试流程和面试结果查询的FAQ问题。FAQ机器人功能分为业务无关的功能和业务相关的功能2类。一.data/nlu.yml文件  与普通意图相比,ResponseSelector训练数据中的意图采用group/intent格式(检索意图)。比如,普通意图......
  • 【6.0】Go语言基础之循环语句
    【一】判断语句if~elsepackagemainimport"fmt"//if~else的使用//[1]语法//语法if条件{条件符合,执行代码}//语法elseif条件{条件符合,执行代码}//语法else{条件符合,执行代码}//[2]执行代码的左侧{必须跟关键字在同一行funcmain(){ score:......
  • 【5.0】Go语言基础之包的使用
    【一】包的作用为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理【二】定义包的步骤【1】新建一个文件夹【2】内部有很多go文件【3】go文件的第一行声明包名在每个go文件的第一行,都要声明包名,并且包名必须一致packageuser【4】在一个文件夹下只能有一个包(......
  • 【8.0】Go语言基础之可变函数参数、map的使用
    【一】可变长参数【1】任意长度的指定类型的参数packagemainimport"fmt"funcmain(){ //可变长参数 //调用函数 foo(1,2,3,4,5,6) //这是接收到的参数a:>>>>[123456] //这是接收到的参数a的类型:>>>>[]int}//可以接收任意长度的int类......
  • 【7.0】Go语言基础之数组、切片
    【一】数组数组是一种类型,可以连续存储数据,但是数据类型的是一致的。类似于Python中的列表,是一种数据结构【1】数组的定义packagemainimport"fmt"funcmain(){ //定义数组 //定义一个长度为3的数组,里面的数据类型为int类型 //定义好数组以后,大小就固......
  • 2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式
    2023-11-11:用go语言,字符串哈希+二分的例题。给定长为n的源串s,以及长度为m的模式串p,要求查找源串中有多少子串与模式串匹配,s'与s匹配,当且仅当s'与s长度相同,且最多有k个位置字符不同。其中1<=n,m<=10^6,0<=k<=5。来自左程云。答案2023-11-11:go代码用灵捷3.5......
  • 2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式
    2023-11-11:用go语言,字符串哈希+二分的例题。给定长为n的源串s,以及长度为m的模式串p,要求查找源串中有多少子串与模式串匹配,s'与s匹配,当且仅当s'与s长度相同,且最多有k个位置字符不同。其中1<=n,m<=10^6,0<=k<=5。来自左程云。答案2023-11-11:go代码用......
  • 记录C语言实现的单向链表
    利用C语言实现的单向链表接口函数。#include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefvoid*OSMutex_t;//duration:-1forever;0nowait;nmillionseconds.//return0ifsuccess.staticintOSMutex_lock(OSMutex_tmutex,intdurat......
  • wechaty撸一个属于自己的微信机器人(Python版接入文心一言)
    前言说明:机器人的框架找了很久,由于很多框架都不能使用了或者封号率极高,最后选择了wewechaty,wechaty是可以使用ipad协议,主要是以node写的,因为打算机器人接入爬虫项目,所以特意用了python版本,对于python版网上教程太少且模糊且时间过于久远,所做以此文为采坑记录。前期准备:tok......
  • 做网站后台学什么语言好?
    在做网站后台开发时,有许多不同的编程语言可供选择。以下是几种常用的后台开发语言:PHP:PHP是一种用于Web开发的流行语言,特别适用于构建动态网站。它具有广泛的支持和丰富的开发资源,易于学习和使用。Python:Python是一种多用途的编程语言,适用于各种领域,包括网站开发。它具有简洁易读的......