0

我有一组对象:

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++?

4

1 回答 1

0

根据您的规则,创建 1000 个对象的集合非常容易,这些对象不符合您正在寻找的分组类型。但也许数据具有意味着您的规则确实有意义的特征,在这种情况下,要获得问题的良好答案,您需要以某种方式合并这些额外信息。

当我过去解决这类问题时,我通常会设法让K-Means 聚类工作。但是我从来没有尝试在 SQL 中这样做,但尝试一下会很有趣。

于 2013-05-28T19:52:27.943 回答