如何在这种情况下构建决策树?

在我的应用中,我有Item对象。

一个Item具有以下属性:

  • 基础名称(剑、盾等)
  • 稀有度(普通、魔法、稀有、独特)
  • 最多6个从大约400个中选取的mods(可以减少,因为其中很多是不常见或无用的)。大多数mods有数值(如+100最大生命值)。物品的价值很大程度上也取决于这些数值,而不仅仅是mods的存在与否。
  • 价格

我的目标是输入一个物品并获得价格估算。

我不确定如何为此构建决策树,特别是因为mods的列表非常庞大。

我考虑过类似这样的方法,但我想即使经过修剪,这也会产生一个巨大的树。

tree

关于如何构建这个树以预测物品价格,有什么建议吗?


回答:

首先要明确的是,你的问题被定义为回归问题,因为你估算的值是数值(价格)。在分类问题中,你估算的是一个实例的类别,而类别是有限的。决策树用于“决定”一个实例属于哪个类别,因此显然是用于分类的,你不能用它来解决你的问题。

所以,现在你知道你的问题是回归问题,并且有很多用于回归问题的方法。我建议你看看以下这些:

  • 线性回归
  • 回归树
  • 模型树

这些方法不仅在预测方面有强大功能,而且构建的模型也相对容易理解。这意味着通过检查模型,你将能够理解为什么某些物品便宜而另一些昂贵。

你可以在名为Weka的机器学习套件中找到所有这些方法。但在使用之前,你需要先准备数据。这不仅意味着将其转换为正确的文件格式,更重要的是,决定如何表示数据。前两个属性是所谓的名义属性,目标属性是数值属性,所以在.arff格式中它们应该看起来像这样:

@attribute base_name {sword, shield, ... }@attribute rarity {normal, magic, rare, unique}@attribute price numeric

如果我正确理解了问题,mods要么开启要么关闭,所以我会用以下方式表示它们:

@attribute mod1 {0,1}@attribute mod2 {0,1}...@attribute mod400 {0,1}

这也意味着,你必须准备所有400个数据,其中大部分将是零,最多有6个一,表示使用、开启或你如何称呼的mods。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注