2016-07-28 68 views
0

我需要处理很多包含3列的csv文件:日期,电视频道ID,电影ID。分析抽象数据

基于这些专栏,我需要分类每个电影的风格和电视频道id的风格。

我是新来大数据过程,我想知道如果我只有一个ID(我不能使用其他来源搜索ID或生成随机数据来训练我的算法)我如何分类该数据。

我找到的解决方案是定义一些小时的范围,并放置在一些流派范围内的电影。例如:

  • 在01:00-04:00之间播放的电影,流派1;
  • 04:01-06:00之间播放的电影,流派2;

分类电影后,我可以基于它们发挥电影的电视频道分类。

而且我打算做使用的火花呢:)

任何人有另一种解决方案或者有什么建议?这很难,因为这些数据看起来像是抽象的。

谢谢

+0

你能提供一些你试过的代码吗?就目前来看,这个问题太多而无法回答。 – wheaties

+1

从你的解释看来,你仍然在搞清楚业务逻辑!一旦找出业务逻辑,可以考虑如何使用火花。 – rakesh

回答

1

当你说“我需要电影的流派分类”,你的意思是“戏剧”,“喜剧”,“行动”,或“Genre1”,“Genre2”?我想在下面的第二个案例。

不要用手分配一个流派 - 使用聚类算法

首先,我不会指派仅基于当电影播放时的流派。一般来说,我会阻止你手动进行聚类。因为这是聚类算法的作用。那些使用功能来组合个体,这些个体在某种程度上是相互关联的。

在你的情况,有一个棘手的部分:每个数据点/行不是电影。因此,电影可能出现在不同的集群中,意味着有不同的流派。

有几种选择:

  • 无论是电影belons到不同的流派 - 这是很自然的。
  • 根据电影出现频率最高的组,您可以只选择一种流派
  • 如果您决定为每部电影分配多个流派,则可能会考虑阈值:例如,如果电影显示小于N一组次,那么它不属于这个团体(除非是它出现的唯一组)

创建新功能

您应该设计为多的新功能*你可以,帮助聚类以便很好地分离数据并创建均匀聚类。

正如我能想到的,你可以这样做:

  • 添加布尔功能为您考虑每一个时间段(0:00 - 3:59;下午4:00 - 6:00; .. )。这些功能中只有一个是电影播放时的功能之一。其他人为空。

  • 一个特点计数多少次电影已播放(黑衣人更打得比12怒汉))

  • couting的多少通道ID一项功能都玩过这个电影( 星球大战播放上比一些宝莱坞电影更多频道)

  • ...

思考的一个流派如何在所有渠道中呈现/播放,并相应地创建特征。

PS:*不要误解我的意思,尽可能多的特征意味着不仅仅是三个特征,而是所谓的维度诅咒。

+0

你给出了很好的建议,但这个问题并不适合StackOverflow,它更适合[CrossValidated](http://stats.stackexchange.com/)。 –

+0

@IgorQA非常感谢您提供的建议。我只能拥有“Genre1”,“Genre2”等,因为我的CSV文件只有“随机”数字。现在我有一个(愚蠢的)问题,当你说要创建新的功能时,你的意思是在我的群集算法上创建它吗?这是我第一次这样做,我在你的建议前跑了一圈。 – placplacboom

+1

在您的前三个变量中,创建$ N $新功能,例如我提到的功能。然后,在你的总3 + N特征上执行你的聚类算法 –