复杂对象的分类

时间:2013-05-28 19:42:01

标签: sql algorithm classification

我有一组对象:

class someObject {
   float weight; //can be from 0.0 to 1000000.0
   enum type {A, B, C};
   int code; //can be from 0 to 1000
}

CREATE TABLE `someObjects` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `weight` float NOT NULL,
  `type` enum('A','B','C') COLLATE utf8_unicode_ci NOT NULL,
  `code` int(11) NOT NULL,
  PRIMARY KEY (`id`)
)

该集合包含1,000个此类对象。

如何通过以下规则将此集合拆分为 9 对象组:

  • 物体应该通过重量;
  • 彼此非常接近
  • 每个组应包含大约相等数量的类型,3 x (A,B和C);
  • 具有相同代码的对象必须位于相同的组中。

是否可以仅使用 SQL 解决此问题?

我应该使用SQL或PHP或C ++选择什么分类算法?

1 个答案:

答案 0 :(得分:0)

根据您的规则,创建1000个对象组很容易,这些对象无视您正在寻找的分组类型。但也许数据的特征意味着你的规则确实有意义,在这种情况下,要获得一个很好的答案,你需要在某种程度上需要包含额外的信息。

当我过去解决这些问题时,我通常设法获得K-Means clustering to work。但是我从来没有尝试过在SQL中这样做,但尝试它会很有趣。