Machine learning 基于标签的行业分类

Machine learning 基于标签的行业分类,machine-learning,scikit-learn,classification,cluster-analysis,Machine Learning,Scikit Learn,Classification,Cluster Analysis,我有一个关于公司的数据集(100万个条目),所有公司都根据他们的行为进行标记 例如,亚马逊可能会贴上“零售;电子商务;SaaS;云计算”的标签,而谷歌则会贴上“搜索引擎;广告;云计算”的标签 因此,现在我想分析一组公司,例如所有在线市场,如亚马逊、eBay、etsy等。但我找不到一个标签,但我必须使用一组标签来量化一家公司成为市场的可能性 例如,“零售”、“购物”、“电子商务”等标签是很好的标签,但也可能有一些小型咨询机构或软件开发公司为在线市场咨询/构建软件,并有“咨询;零售;电子商务”或“软

我有一个关于公司的数据集(100万个条目),所有公司都根据他们的行为进行标记

例如,亚马逊可能会贴上“零售;电子商务;SaaS;云计算”的标签,而谷歌则会贴上“搜索引擎;广告;云计算”的标签

因此,现在我想分析一组公司,例如所有在线市场,如亚马逊、eBay、etsy等。但我找不到一个标签,但我必须使用一组标签来量化一家公司成为市场的可能性

例如,“零售”、“购物”、“电子商务”等标签是很好的标签,但也可能有一些小型咨询机构或软件开发公司为在线市场咨询/构建软件,并有“咨询;零售;电子商务”或“软件开发;电子商务;电子商务工具”等标签,我想将其排除在外,因为它们不是在线市场

我想知道从我的数据集中识别所有在线市场的最佳方法是什么。什么样的机器学习算法适合于选择我所寻找的行业中的最大数量的公司,同时排除那些显然不属于该行业的公司

我考虑过监督学习,但我不确定,因为有几个问题:

  • 需要贴标签,这意味着我必须通过数千家公司,在多个行业(市场、金融、时尚等)对它们进行标记,因为我对20-30个行业都感兴趣
  • 有1000多个标签与这些公司相关。我将如何定义我的功能?每个标签1个特征将导致大规模维度
对于这种情况,是否有最佳做法

更新: 应该可以将公司分配到多个集群,例如,亚马逊应该被标识为“市场”,但也应该被标识为“云计算”或“在线流媒体”

我使用tf idf和kmeans来识别构成集群的标记,但我不知道如何将可能性/分数分配给公司,以根据标记指示公司在集群中的适合程度

更新: 虽然tf idf与kmeans的结合提供了相当整洁的集群(这意味着集群内的公司实际上是相似的),但我也尝试使用高斯混合模型(GMM)计算属于集群的概率,这导致了完全混乱的结果,集群内的公司或多或少是随机的,或者来自少数几个不同的行业

不知道为什么会这样

更新: 找到了错误。我在GMM之前应用了PCA来降维,然而,这显然导致了随机结果。去除PCA显著改善了结果


然而,我的GMM的后验概率为0。或1。99.9%的时间都是这样。是否有一个参数(我使用的是sklearn)需要调整,以获得更有价值的概率,并且更加集中?因为现在所有<1.0的东西都不再是集群的一部分,但也有少数异常值的后验值为1.0,因此被分配到一个行业。例如,一家拥有“Baby;Consumer”的公司被分配到“Consumer Electronics”集群,尽管2个标签中只有1个可能暗示这一点。所以我想得到<1的概率。这样我就可以基于交叉验证定义一个阈值。

您可以研究聚类技术,它可以根据标记相似性形成公司组。谢谢!这就是我最初尝试的。虽然识别形成此类行业的标签集群非常有效,但我不知道如何使用这些集群标签来识别属于it的所有公司,因为公司可以属于多个集群(请参阅上面我的帖子的更新)。我需要一种基于标签的二元分类来识别一家公司是否属于某个集群,然后支持向量机可能会有所帮助。它们非常适合于二元分类。聚类分析也可能很有价值,但正如您所指出的,您需要一种解释聚类的方法。@Wuser 92关于
高斯混合模型
?因为像亚马逊这样的公司可以是多个行业的一部分,所以你需要一些混合会员的东西。这是GMM提供的。谢谢大家的想法@伊凡西瓦克:我刚刚试过这个,但由于一些我不明白的原因,GMM的结果真的很糟糕。虽然k-means实际上对所有事物都进行了很好的聚类,这意味着一个集群中的所有公司都有相似的标签,但GMM集群(例如,即使是组件后验概率最大的10家公司)完全混乱了(例如,电信、健康、移动支付、电子商务公司最终进入了前10名)。你有没有想过是什么原因造成的?你可以研究一下聚类技术,它可以根据标签的相似性来组成公司群。谢谢!这就是我最初尝试的。虽然识别形成此类行业的标签集群非常有效,但我不知道如何使用这些集群标签来识别属于it的所有公司,因为公司可以属于多个集群(请参阅上面我的帖子的更新)。我需要一种基于标签的二元分类来识别一家公司是否属于某个集群,然后支持向量机可能会有所帮助。它们非常适合于二元分类。聚类分析也可能很有价值,但正如您所指出的,您需要一种解释聚类的方法。@Wuser 92关于
高斯混合模型
?因为像亚马逊这样的公司可以是多个行业的一部分,所以你需要一些混合会员的东西。这是GMM提供的。谢谢大家的想法@伊凡西瓦克:我刚刚试过这个,但由于一些我不明白的原因,GMM的结果真的很糟糕。虽然k-means实际上很好地聚集了所有东西,但是