Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带关键字的机器学习_Python_Machine Learning_Scikit Learn_Artificial Intelligence - Fatal编程技术网

Python 带关键字的机器学习

Python 带关键字的机器学习,python,machine-learning,scikit-learn,artificial-intelligence,Python,Machine Learning,Scikit Learn,Artificial Intelligence,所以我对机器学习还比较陌生,对关键词有一些疑问。现在,我正在尝试使用我以前收集的一些电影数据(数据由4个属性组成,一个是描述电影的Being关键字)建立一个机器学习模型。尽管如此,有些电影比其他电影有更多的关键词(例如:蜘蛛侠的关键词是超级英雄、蜘蛛、战斗等等)。每部电影有50到400个关键词,因此我想问你,我是否应该将每个关键词作为一个单独的属性,或者我应该将它们全部添加到关键词下,并用逗号分隔 为了更好地说明我的观点,这里有两个例子: 包括电影关键字作为特定属性 包括电影关键字作为一个属性

所以我对机器学习还比较陌生,对关键词有一些疑问。现在,我正在尝试使用我以前收集的一些电影数据(数据由4个属性组成,一个是描述电影的Being关键字)建立一个机器学习模型。尽管如此,有些电影比其他电影有更多的关键词(例如:蜘蛛侠的关键词是超级英雄、蜘蛛、战斗等等)。每部电影有50到400个关键词,因此我想问你,我是否应该将每个关键词作为一个单独的属性,或者我应该将它们全部添加到关键词下,并用逗号分隔

为了更好地说明我的观点,这里有两个例子:

包括电影关键字作为特定属性

包括电影关键字作为一个属性


非常感谢您的帮助

在这里,柠檬化的概念将出现在图片中,尝试用相同的名称替换类似的关键字,例如,超级英雄、战斗,可以替换为动作关键字,舞蹈、音乐等可以归入其他类别。尽量减少关键字,然后为每个关键字创建单独的列。我希望你明白我的意思

您可能并不真正想要您建议的任何一种方法。我假设您希望您的学习方法能够使用关键字对不同的电影进行比较/分类。让我们看看建议方法的问题:

  • 在第一种方法中,您建议使用“有序”关键字(即关键字1、关键字2等),但如果例如超级英雄和战斗开关的顺序,我们得到了不同的特征向量,即使我们有相同的关键字(见下表)?这不是我们想要的,关键字的顺序不重要

               |   Keyword1     Keyword2
     ------------------------------------
     Movie A   |  Superhero     Fight
     Movie B   |  Fight         Superhero
    
  • 接下来,在第二种方法中,您建议使用列表中的所有关键字。这样,只有具有完全相同关键字的电影才会被认为是相同的。同样,这对于比较电影来说并不理想。如果电影A和电影B共享49个关键词,但有一个不同的关键词,那么学习方法应该能够结合这些信息,说电影非常相似,而不是说它们一点都不相似

相反,您可能希望将关键字本身定义为特征/属性。这样就可以处理上述两个问题,因为顺序无关紧要,我们仍然可以从单个关键字中学习。然后,您的关键字数据集将类似于:

          |   Superhero     Fight     StackOverflow    ...
------------------------------------------------------------
Movie A   |      1            1            0           ...
Movie B   |      1            1            1           ...
指示哪些关键字出现在哪些电影中。这样,几乎任何学习方法都可以轻松地比较电影。注意,我在这里使用二进制值只是表示关键字的存在/不存在,但是根据学习方法的不同,也可以使用其他表示