首页 > 其他分享 >Paper Reading: Cost-sensitive deep forest for price prediction

Paper Reading: Cost-sensitive deep forest for price prediction

时间:2024-07-31 18:17:46浏览次数:15  
标签:means CSDF price CVR prediction deep CVN 价格 代价

目录
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 的离散化效果。

标签:means,CSDF,price,CVR,prediction,deep,CVN,价格,代价
From: https://www.cnblogs.com/linfangnan/p/18174159

相关文章

  • PerfXCloud 再度升级,免费开放体验全球顶尖 MOE 大模型 DeepSeek-V2 236B!
     PerfXCloud注册地址:www.perfxcloud.cn今日,在PerfXCloud重磅更新支持llama 3.1 405B之后,其平台再度实现重大升级!目前,已顺利接入被誉为全球最强的MOE大模型DeepSeek-V2,已在PerfXCloud(澎峰云)官网的体验中心对平台用户免费开放体验。DeepSeek-V2 DeepSeek-V2是强大的......
  • Robin-Stocks Python 中的 order_buy_fractional_by_price 问题
    我在Robin-StocksPython包中的order_buy_fractional_by_price函数中遇到问题。在正常市场交易时间内下达以美元为基础的买入订单时,该订单被错误地设置为限价订单。对我来说看起来有问题的代码似乎是导致此问题的原因。我尝试在包管理器中本地修改或删除有问题的代码,但遇......
  • RAG文档解析利器:Deepdoc
    项目结构Deepdoc是RAG框架RAGFLOW中使用的文档解析工具。|--deepdoc |--parser |--resume |--entities |--step_one.py |--step_two.py |--docx_parser.py |--pdf_parser.py |--excel_parser.py |--html_parser.py |--json_par......
  • 7.28-跑deepspeed
    完整代码:https://github.com/chenyinlin1/deepspeed_practice_example官方文档:https://www.deepspeed.ai/getting-started/Deepspeed安装:1、创建虚拟环境deepspeed:condacreate-ndeepspeedpython=3.82、cd/public/software/apps/DeepLearning/whl安装对应版本的torch,t......
  • LLM大模型:deepspeed实战和原理解析
     多年前搞大数据,因为单节点无力存储和计算PB级别的数据,所以hadoop这种分布式存储和计算框架是标配!如今搞大模型,仍然需要对大量样本数据做计算,因为涉及矩阵运算,单机单卡运算效率太低,也涉及到分布式计算了,大模型时代的分布式pre-train和Inference框架就有现成的—deepspeed!......
  • 论文阅读:TKDP: Threefold Knowledge-Enriched Deep Prompt Tuning for Few-Shot Named
    将深度提示调优框架与三重知识(即TKDP)相结合,包括内部上下文知识和外部标签知识和语义知识。引言现有的少样本NER可分为3种:基于词-语义的方法、基于标签-语义的方法和基于提示的方法。基于词语义的方法完全依赖于输入词及其上下文。基于标签语义的方法需要额外利用标签知识。......
  • Vue中deep的用法
    deep:true 的用法在Vue中,watch用来监听数据的变化,并执行相应的回调函数。当监听的对象是一个复杂的数据结构(如对象或数组)时,默认情况下Vue的watch只会监听顶层属性的变化,而不会监听对象内部属性的变化。例子假设您有如下数据结构:data(){return{user:{......
  • 机器学习:详解什么是端到端的深度学习?(What is end-to-end deep learning?)
    什么是端到端的深度学习?深度学习中最令人振奋的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。那么端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它。来看一些例子,以语音......
  • vmware 17.5安装 deepin23-RC2桌面社区版【超超详细图文安装教程】
    1、去官网下载安装包最新版本–深度科技社区(deepin.org)2、新建虚拟机向导,选择典型,点击下一步3、选择刚才下载好的镜像文件,点击下一步4、选择Linux,ubuntu64位5、修改虚拟机安装位置,取一个虚拟机名称6、修改磁盘大小,要大于647、自定义硬件,修改内存和处理器大......
  • DeepSpeed x MiniGPT4Qwen
    #关于DeepSpeed的尝试知乎博客地址:https://zhuanlan.zhihu.com/p/673359684##参考Repo:https://github.com/microsoft/DeepSpeedExampleshttps://github.com/microsoft/DeepSpeedExamples/blob/master/training/HelloDeepSpeed/train_bert_ds.py,代码拷贝到了本项目的:htt......