在决策树中查找连续数据阈值的方法

我在Weka中使用决策树,并且我有一些连续数据,所以当我使用Weka时,它会自动为我找到阈值,但出于某些原因我想自己实现决策树,所以我需要知道使用什么方法来找到阈值以离散化我的连续数据?


回答:

ID3C4.5 使用启发式方法来离散化连续数据。该方法为每个变量(特征)找到一个二元切割。你可以递归地应用相同的方法,从连续数据中获得多个区间。

假设在某个树节点上,所有实例属于集合S,你正在处理变量A和特定的边界(切割)T,由T诱导的分区的类信息熵,记作E(A,T,S),由以下公式给出:

             |S1|                 |S2|E(A, T, S) = ---- Entropy(S1) +   ---- Entropy(S2)              |S|                 |S|

其中|S1|是第一分区中的实例数量;|S2|是第二分区中的实例数量;|S| = |S1|+|S2|

对于给定的特征A,在所有可能的分区边界中最小化熵函数的边界T_min被选为二元离散化边界。

例如,你可能有一个变量Length,其所有可能的值为:

Length = {2.1, 2.8, 3.5, 8.0, 10.0, 20.0, 50.0, 51.0}

那么你的T可以是:

T = {2.1, 2.8, 3.5, 8.0, 10.0, 20.0, 50.0, 51.0}

其中你在每个可能的Length值处进行切割。你也可以在相邻的Length值的中间点处进行切割,例如,

T = {2.45, 3.15, 5.75, 9.0, 15.0, 35.0, 50.5}

在离散化时,你将遍历所有可能的T值,并评估哪个值能获得最小的E(A, T, S)。就是这样。

更多细节请参见这篇论文,其中还描述了其他可选方法:

  • ChiMerge离散化方法。
  • 基于学习向量量化(LVQ)的方法
  • 基于直方图的方法。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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