深度解析数据挖掘中的数据理解和预处理( 四 )


我们首先对两个数据集分别进行变量预处理,然后再根据电影ID将两个数据整合到一起 。下面给出了每个变量的处理方法:
【电影类型】
电影类型是一个分类变量 。在这个变量中我们发现每部电影都不止一个类型,例如“The DarkRises”这部电影就有“”、“Crime”和“”三个类型,并且它们以“|”为分隔符写在了一起 。同时,不同电影之间可能有相同的类型,也可能有不同的类型,例如票房排名第二的电影“”,它的类型是“ | |” 。因此,我们首先需要做的是把每部电影所属的类型逐一取出来,然后将所有出现过的类型分别形成一个0-1哑变量,如果这部电影在某个类型上出现了,则相应变量的取值就是1,否则是0.
通过上面一步,我们知道这个数据集中出现过的所有电影类型一共有11个 。那是不是按照之前所讲的,应该把它转换为10个哑变量呢?这里需要注意的是,所有的电影类型之间并不是互斥的(即有了,就不能有其他的类型),所以我们无需因为共线性的原因去掉其中一个 。也就是说,如果把每一个电影类型单独作为一个独立的变量,可以衍生出11个新的0-1变量,这完全没有问题 。但11个变量未免有点过多,所以我们根据不同电影类型的频数分布情况,只把出现次数明显较多的类型单独拿出来,最终生成了6个0-1型变量,分别为,,,,,。
【MPAA评级】
对于这个分类型变量,我们首先可以看一下数据中它所包含的全部取值,发现一共有“PG”,“PG-13”和“R”三个 。和上面的电影类型(Genre)不同,对于一部电影而言,它只能有一个MPAA取值 。因此,在MPAA变量中,我们需要选择一个作为基准,将另外两个构造成哑变量 。例如,我们以“PG”为基准,构造的两个哑变量分别为PG13和R,如果这两个哑变量的取值同时为0,那就相当于电影的MPAA评级是PG 。
【放映当天是星期几】
这个变量同MPAA评级一样,每部电影只能有一个取值 。如果它在星期一到星期日上都有取值的话,我们可以衍生出6个0-1型哑变量 。因为这里我们更关注周末和非周末对电影票房的影响,而并不关注具体是哪一天,所以我们将其进一步概括成一个变量,即“是否是周末” 。
【放映时长和制作预算】
放映时长和制作预算这两个变量都是取值大于0的数值型变量,我们可以分别检查它们的取值是否在合理的范围内,然后直接保留它们的数值信息 。同时,对“制作预算”而言,假设我们这里关心的不是制作预算的具体数值,而是“小成本电影”和“大成本电影”的票房差异,那我们就可以将这个数值型变量进行分箱处理,转换为一个0-1型的分类变量,即 “是否为小成本电影” 。在决定按照什么标准来划分是否为小成本电影时,我们根据之前文献里的研究结果,将制作预算在100 以下的电影看成是小成本电影 。
上述所有变量的处理过程都可以使用R中最基本的语句(table,rep,which等)完成,由于篇幅限制,小编这里就不列出详细的code了,大家感兴趣的话,可以阅读狗熊会的“R语千寻”系列(戳这里),相信会在R语言的学习上受到更多启发 。最后,我们将所有新生成的变量按照电影ID整合到一起,就大功告成啦 。
五、总结
最后总结一下,小编在这次内容中向大家介绍了拿到数据后的数据理解和预处理工作,内容虽然不难,但同样需要我们认真对待 。就好像生活一样,只有踏踏实实走好前面的路,才有可能迎接后面的高潮迭起!
结语
感谢您的观看,如有不足之处,欢迎批评指正 。
如果有对大数据感兴趣的小伙伴或者是从事大数据的老司机可以加群: