【问题标题】:Clustering algorithms for machine learning sample机器学习样本的聚类算法
【发布时间】:2016-08-30 01:26:11
【问题描述】:

我有一个 1830*6800 的矩阵,如下所示:

1830行是不同的创业公司ID,列是6800个不同的投资人。现在我想找出那些成功筹集到足够资金的公司和那些没有那么幸运获得足够资金的公司之间的相似之处。

我正在考虑使用 k-means 聚类和谱聚类,将聚类数设置为 2 以拥有 2 个不同的组(即成功和失败)。但是 k-means 给了我几乎所有的 0,这意味着所有行都在同一个簇中。

谁能给我一些想法,如何选择更适合这种情况的算法?它不一定是集群。

【问题讨论】:

  • 单元格中的值是什么?
  • 值是 1 或 0。 1 代表成功从其中一位投资者那里获得资金,0 代表失败。
  • 你的数据有多稀疏?如果你总结你的总数据框,你会得到什么?
  • 所以实际上原始矩阵是 1830 * 140000000,我运行随机投影以降维到 1830*6800。原始矩阵非常稀疏,因为大多数行只能有 10-1000 个投资者,而总共有 140000000 个投资者

标签: algorithm machine-learning cluster-analysis gaussian


【解决方案1】:

在这里,随机投影可能弊大于利。 而是删除例如所有投资于一家公司的投资者,所有没有投资者的公司,重复。

但总而言之,我会说你在这里有一个无望的任务。

集群对您没有帮助。您无法获得成功或失败的集群。您更有可能获得东海岸或西海岸集群;或不同的领域。 如果您的目标是成功/失败,那么集群是错误的工具。

此外,您的数据充满了异常,k-means 无法很好地处理它们。这可能就是为什么几乎所有东西都在同一个集群中的原因。

您可以尝试的最好方法是频繁项集,它将(取决于您如何应用它)识别投资于相同公司的投资者群体,以及倾向于拥有相同投资者的公司群体。

【讨论】:

  • 那么,你认为我应该尝试哪些频繁项集?可以举几个例子吗?
【解决方案2】:

我认为您使用的数据不正确。如果有 140,000,000,000 名投资者,那么您有一个极其稀疏的矩阵。每列都有数据吗?如果没有,请将其删除。你说你的数据是:

“1 或 0。1 表示成功从其中一位投资者那里获得资金,0 表示失败。”

那么你的绝大多数单元格应该是空的,因为我无法想象一家初创公司试图从 6,800 名投资者那里获得资金 - 确保你的数据对于那些积极申请资金的公司来说仅为 0。

另外,您如何定义成功?是不是很多投资人?金额?我认为作为结构化数据,您的数据不会为您提供您正在寻找的答案。

【讨论】:

  • 你的意思是我应该只有 0 和空值? 0 表示成功融资,而 null 表示失败?但我认为这不会有任何区别,因为 1 和 0 与 0 和 null 基本相同
  • 而成功的定义并不是我所知道的。也许是投资者的数量,我不知道。这是一个真实世界的数据,你可以认为没有设定标准。这就是为什么它被称为无监督学习,它不像有监督学习那么容易。
  • 不,你应该有 1 表示成功,0 表示失败,如果他们没有尝试,则为 null。将 0 作为默认值与将其设置为 null 有很大不同。你在这里真正聚集的是投资者模式。谁投资了同一家公司。对我来说,这与您上面提出的问题不同。
  • 好的,但是原始数据只有0和1。假设我们有 null 和 0 和 1,你认为在这种情况下我应该使用什么算法?
  • 我认为你应该使用 k-means,如果 k-means 不起作用,它会告诉你要么你的数据不好,要么你问错了问题,或者没有良好的聚类。
猜你喜欢
  • 2016-12-04
  • 2017-10-27
  • 2012-03-14
  • 2016-03-17
  • 2011-08-01
  • 2018-09-05
  • 2015-10-06
  • 2014-06-23
  • 2017-08-21
相关资源
最近更新 更多