我正在研究Java中的AdaBoost实现。 它应该适用于2D 3D或10D上的“双”坐标。 我发现的所有Java都是二进制数据(0,1)而不是多维空间。
我目前正在寻找一种方法来表示维度并初始化分类器以进行提升。
我正在寻找有关如何在Java中表示多维空间以及如何初始化分类器的建议。
数据介于[-15,+ 15]之间。目标值为1或2.
答案 0 :(得分:1)
要在空间数据上使用提升的决策树,典型的方法是尝试找到一个"分区点"在某个轴上,最小化两个子树中的残差信息。为此,您可以沿某个轴(例如,x轴)找到一些值,然后将数据点拆分为两组 - 一组x坐标低于该分割点的点,以及一组x坐标为x的点。超过那个分裂点。这样,您可以将实值空间数据转换为0/1数据 - 0值是分割点以下的值,1值是分割点之上的值。因此,该算法与AdaBoost相同,只是在选择要拆分的轴时,您还必须考虑潜在的分裂点。
答案 1 :(得分:1)
如何使用JBoost,我认为它有你想要的东西。
答案 2 :(得分:0)
为什么不为每个对象使用double[]
数组?这是在Java中表示特征向量的常用方法。