Paper Reading: Cost-sensitive deep forest for price prediction

news/2024/11/13 14:58:24/文章来源:https://www.cnblogs.com/linfangnan/p/18174159

目录
  • 研究动机
  • 文章贡献
  • 本文方法
    • 改进的 K-means 离散化
    • 代价敏感深度森林
  • 实验结果
    • 汽车共享价格数据集实验
    • 房屋租赁数据集实验
    • 房地产销售数据集实验
  • 优点和创新点

Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。

论文概况 详细
标题 《Cost-sensitive deep forest for price prediction》
作者 Chao Ma, Zhenbing Liu, Zhiguang Cao, Wen Song, Jie Zhang, Weiliang Zeng
发表期刊 Pattern Recognition
发表年份 2020
期刊等级 中科院 SCI 期刊分区(2023年12月最新升级版)1 区,CCF-B
论文代码 文中未公开

作者单位:

  1. School of Informatics, Xiamen University, China
  2. School of Electronic Engineering and Automation, Guilin University of Electronic Technology, China
  3. Department of Industrial Systems Engineering and Management, National University of Singapore, Singapore
  4. Institute of Marine Science and Technology, Shandong University, China
  5. School of Computer Science and Engineering, Nanyang Technological University, Singapore
  6. School of Automation, Guangdong University of Technology, China

研究动机

价格预测是机器学习和模式识别技术的重要任务,在多个相关领域都得到了广泛的研究。价格预测方法大致可以分为两类,第一类方法以时间序列的形式预测价格的趋势,第二种方法侧重于根据单个物品的特征来预测其价格。本文专注于第二种类型的价格预测任务,大多数现有的价格预测工作采用基于回归的方法来预测价格的具体值。然而对于许多现实世界的应用程序,预测一个类别(或范围)的价格要实际得多。虽然深度森林被认为是许多分类任务的最佳解决方案,但它不能直接应用于价格预测任务。传统的深度森林通常将所有的错误分类成本等同对待,然而虑到价格预测的特点,需要通过考虑每个错误分类的成本来改进传统的深度森林。从而使错误分类将被迫更接近真实的价格类别,同时保持令人满意的准确性。

文章贡献

针对价格预测问题的特点,本文提出了一种代价敏感的深度森林价格预测方法 CSDF。通过代价敏感方案对远离真实价格类别的错误分类施加更高的成本,期望降低错误分类的成本并将其推向真实价格范围。此外为了进一步提高整体性能,通过修改传统的 K-means 方法,开发了一种改进的 K-means 离散化方法来预先定义价格的类别。基于多个真实数据集的实验结果表明,与传统深度森林和其他基准相比,本文提出的代价敏感深度森林可以显著降低成本,同时保持较好的准确性。

本文方法

改进的 K-means 离散化

在价格预测中,价格的分布往往是不均匀的。在统计学中经常使用变异系数 CV 衡量一个分布的变异水平,CV 定义为标准差除以均值,CV 越大则变分水平越高。在离散化中通常采用区间内样例数的变异系数 CVN 和区间范围的变异系数CVR 来进行评价,一般来说 CVN 越小表示不平衡类越少,CVR 越小表示区间范围越均匀。K-means 离散化在 CVN 和 CVR 方面往往表现出相对较好的性能,因为它在生成聚类时考虑了数据的方差和均值。
如果数据集包含过多的异常值,增加间隔的数量会降低 CVN、增加 CVR。本文提出一种改进的 K-means 来进一步提高离散化性能,为了获得低 CVN 和较少间隔的 CVR,本文将异常值过多的间隔合并到相邻的间隔中,并采用 isolation forest 来选择这些间隔。首先将异常区间定义为随着区间数量的增加而不发生变化的区间,然后定义了三种类型的最异常区间:范围最大的区间、样本数最少的区间、密度最小的区间。基于它们的修正 K-means 分别称为 KMR、KMN 和 KMD,传统 K-means 则称为 KM。修改后的 K-means 的总体步骤如下:

  1. 将间隔数设置为最小的来运行传统 K-means;
  2. 将间隔数增加 1,直到找到最异常的间隔;
  3. 将异常间隔中的所有价格设置为密集部分方向上的最近价格;
  4. 基于从步骤 3 获得的新价格重复前 3 个步骤,直到步骤 2 中的间隔数等于所需数;
  5. 将步骤 4 开始的最终间隔设置为修正的 K-means。

代价敏感深度森林

不同类别的样本被错误分类时,深度森林算法对其代价的评估是等同的。为了在价格预测中解决这个问题,本文提出了一个代价敏感的深度森林 CSDF,它为每个错误分类分配特定的代价,同时保持准确性。首先定义一个代价矩阵,基于 K-means 或其改进变体进行离散化,选择区间的中值作为中心。然后将两个中心的距离视为这两个类的距离,将其视为将一个类的样本误分类为另一个类的代价。假设 cij 是将 i 类样本误分类为 j 类的代价,代价矩阵 C 使用如下公式表示,其中 cij=cji、cii=0。

给定一个类标号为 y 的样本,通过优化目标函数得到预测的类标签 y-。其中 Ij 表示预测值为 j 而真实标签为 i 的情况,P(y-j|y) 表示给定真标签时预测的后验概率,分类任务的成本就是对所有样本进行分类的平均代价。

CSDF 的总体架构如下图所示,每个基分类器都是代价敏感的。类向量通过 k 个基分类器的类向量的平均值计算得到,对于某一层的输入为前一层的原始特征向量与输出的拼接。CSDF 第一层的输入为原始特征向量,通过该层的输出根据代价矩阵计算代价。如果代价显著降低,则将原始特征向量与该层的输出连接起来,作为下一层的输入。下一层按照上面的描述进行训练和评估,这个过程不断迭代,直到代价没有显著降低,将代价停止下降的这一层的结果作为 CSDF 的输出。

实验结果

汽车共享价格数据集实验

汽车共享价格数据集来源于 P2P 汽车共享平台 START car Life,该数据集由中国三个城市的 116145 项汽车信息组成。选择汽车的 19 个属性作为特征,如下图所示。

下图展示了数据集的价格分布,大部分的价格值都在 1000 以下,高于 1000 的价格值在很大范围内是稀疏分布的。本文将价格预测作为一个分类任务,采用离散化方法将价格划分为区间,并将区间作为标签。随机分层抽取 70% 的数据作为训练集,剩余的数据用于测试。

根据价格分布将区间数设置为 4~19,并采用上述所有离散化方法实现。图(a)展示了 EPI、EOH2、KM 的 CVN 和 CVR,其中 KM 的 CVN 和 CVR 较低,优于 EPI 和 EOH。图(b)展示了 K-means 和修改后的 K-means 的 CVN 和 CVR,所有修改后的 K-means 的 CVN 和 CVR 都随着区间数的增加而减小,并且在大多数情况下都小于 K-means 的 CVN 和 CVR,这验证了修改后的K -means 的有效性。

将 CSDF 和 DF 的性能进行比较,其代价分别如下图所示。可见对于所有离散化方法,CSDF 的大部分代价都低于 DF 的代价,同时这两种方法在修正 K-means 上的代价都比其他离散化方法要小。

下图展示了 CSDF 和 DF 的精度,可以看到两种方法的精度值随着类别数量的增加而下降。结果表明 CSDF 可以显著降低 DF 的分类成本,使误分类更接近真实区间,同时保持与 DF 几乎相同的精度。

房屋租赁数据集实验

接着在房屋租赁价格数据集上验证 CSDF 方法的性能,该数据集包括 66735 个房屋记录,具有 16 个特征。随机分层抽取 70% 的数据项作为训练集,剩余 30% 用于测试。下图显示了整个数据集的价格分布,可以看到大多数价格值低于 300,而高于 300 的价格值在很大范围内稀疏分布。考虑到房价的区间约为汽车共享价格的三分之一,将房屋租赁价格的区间数设置为 3~9。

首先比较 K-means 和修改的 K-means 的 CVN 和 CVR,从下图中可以看出修改的 K-means 的 CVN 和 CVR 都小于 K-means,说明修改过的 K-means 使区间更加均匀和平衡。

接着比较 DF 和 CSDF 在代价和精度方面的差异,代价的对比结果如下图所示,可见 CSDF 的大部分代价都低于 DF。

精度的对比结果如下图所示,可见 CSDF 的精度在开始时与 DF 几乎相同,随着间隔数的增加,CSDF 的精度略高于 DF。

房地产销售数据集实验

在房地产销售的价格数据集上进一步评估本文的方法,该数据集包括 1460 个具有 79 个特征的房地产样本。随机分层抽取 70% 的样本作为训练集,剩余 30% 用于测试。下图显示了整个数据集的价格分布,可以看到大部分的价格值都在 40 万以下,将房屋销售数据的区间(即类别)的数量设置为 3~12。

首先对离散化的 K-means 和修改的 K-means 进行评估,如下表所示,可以看到四种方法的 CVN 和 CVR 都是相同的。

然后比较 RF、RoF、DF 和 CSDF 的分类准确率,如下图所示,可见随着区间数的增加所有精度值都有所下降,但 DF 和 CSDF 的总体精度都是最好的。

DF 和 CSDF 的成本的比较如下表所示,除了区间数 11 之外,CSDF 的成本均低于 DF,这进一步证明了 CSDF 在降低价格预测成本方面的有效性。

综上所述,CSDF 在汽车共享、房屋租赁和房地产销售的价格预测方面取得了更好的整体表现,具有较高的准确率和较低的成本,具有较强的泛化能力。

优点和创新点

个人认为,本文有如下一些优点和创新点可供参考学习:

  1. 针对价格预测问题中的数据不平衡,本文将代价敏感学习和深度森林模型进行结合,使其可以基于代价进行训练;
  2. 本文将 k-means 和 isolation forest 结合进行改进,实现了低 CVN 和 CVR 的离散化效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/775714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EtherCAT从站重启及状态检测

VAR nSlaveState:ETC_SLAVE_STATE;pSlave:POINTER TO ETCSlave; END_VAR(* 示例1 :检查单个从站状态 *) InoSV630N(xSetOperational:= TRUE, wState=> nSlaveState);(* 示例2 :检查所有从站的链表 *) pSlave:=EtherCAT.FirstSlave; WHILE pSlave<>0 DOpSlave^(…

Java图片处理Thumbnailator

原文链接:https://zhuanlan.zhihu.com/p/604121848Thumbnailator是Google开源的优秀图片处理的第三方Java类库,比JDK自带的库要好用的多。 官网Github地址 Maven依赖 目前最新版本是0.4.19<dependency><groupId>net.coobird</groupId><artifactId>thu…

局域网这客户端连接MySQL数据库,含(CMT X进阶屏连接MySQL数据库)

1:首先安装MySQL服务器,服务器端安装的是Server version: 8.0.37 MySQL Community Server - GPL版本 2. 修改MySQL配置文件允许远程访问找到并编辑MySQL配置文件my.ini,该文件通常位于C:\ProgramData\MySQL\MySQL Server <version>\my.ini。 使用文本编辑器(VsCode)…

EtherCAT主站重启及状态检测

VARxReset: BOOL;xReset_R:R_TRIG;xETC_StateOK:BOOL; END_VAR(*注:FB 实例声明 当设备仅有 1 个 EtherCAT 主站时,实例化名称应该是 ETHERCAT;如汇川 AM600/AM400 系列 当设备有 2 个 EtherCAT 主站时,实例化名称应该是 ETHERCAT_C 或者 ETHERCAT_D;如汇川 AC800 系列等*…

接口结果判断(Jemeter断言)

操作 与CSV结合起来跑多组用例减少手动测试 补充:CSV文件不仅可以写请求参数而且可以写响应结果 展示效果

fastapi 的uvicorn配置日志

目前从flask框架转fastapi,之前flask框架日志很好用。这次学习了fastapi的日志使用,第一种是自定义日志,这个不讲了,自己封装就好,第二种是使用uvicorn自带日志, Uvicorn 是 fastapi 框架的默认ASGI服务器,它提供了强大的异步能力和高性能。一、配置输出格式化 uvicorn …

MySQL 学习笔记 进阶(锁 下,InnoDB引擎 上)

锁锁-表级锁-表锁介绍表级锁,每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低。应用在MyISAM,InnoDB,BDB等存储引擎中。 对于表级锁,主要分为以下三类:表锁 元数据锁(meta data lock,MDL) 意向锁表锁对于表锁,分为两类:表共享读锁(read lock) 表…

伙伴匹配系统踩坑日记1

伙伴匹配系统踩坑日记1 前端初始化 文档参考https://cn.vitejs.dev/guide/输入指令后报错解决方法参考https://blog.csdn.net/qq_26018335/article/details/126201219 yarn安装默认在c盘所以其global和cache配置在c盘,输入以下指令查看默认配置在哪个盘 yarn global dir只要在…

OpenAI 向部分用户开放 GPT-4o 高级语音模式;AI 视频生成工具 Vidu 全球上线丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点…

如何设计可扩展的RPC协议

如何设计可扩展且向后兼容的RPC协议 为什么不直接用现成的HTTP协议? RPC的职责是负责应用间的通信,所以性能要求相对更高。而HTTP协议的数据包相对于请求数据本身要大很多,有很多冗余内容(如换行回车等),会影响性能。另外HTTP协议是无状态的协议,每次请求都要重新建立连接…

DataX - [02] 安装部署

题记部分 一、安装部署 (1)下载DataX:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz(2)解压到合适的目录:tar -zxvf datax.tar.gz -C /home/ecs-user/module/(3)进入b…