【问题标题】:How can I deploy my features in a Machine Learning algorithm?如何在机器学习算法中部署我的功能?
【发布时间】:2020-05-08 13:26:25
【问题描述】:

我对 ML 还很陌生,所以我有一个非常初级的问题。如果有人为我澄清一下,我将不胜感激。

假设我有一组标记为负面和正面的推文。我想进行一些情绪分析。

我提取了3个基本特征:

  1. 情感图标
  2. 感叹号
  3. 强度词(非常,真的等)。

我应该如何将这些功能与 SVM 或其他 ML 算法一起使用?

换句话说,我应该如何在 SVM 算法中部署提取的特征? 我正在使用 python,并且已经知道我应该如何运行 SVM 或其他算法,但是我不知道提取的特征之间的关系以及它们在每个算法中的作用!

根据一些专家的回答,我更新了我的问题:

首先,我想感谢您的时间和有价值的解释。我认为我的问题正在解决……所以按照你所说的,每个 ML 算法可能需要一些向量化的特征,我应该找到一种方法将我的特征表示为向量。我想通过一个基本的例子来解释我从你的解释中得到了什么。

假设我将表情图标(例如 3 个图标)作为一项功能:

1-因此,我应该用一个具有 3 个值的向量来表示这个特征。

2-矢量化特征可以以这种方式初始化:[0,0,0](每个值代表一个图标 = :) 和 :( 和 :P )。

3-接下来我应该浏览每条推文并检查推文是否有图标。例如 [2,1,0] 表明该推文有::) 2 次,和 :( 1 次,并且 :p 没有时间。

4-检查完所有推文后,我将得到一个大小为 n*3 的大向量(n 是我推文的总数)。

其他功能应完成 5-Stages 1-4。

6-然后我应该使用 m 个 SVM 模型(m 是我的特征的数量)合并所有这些特征,然后通过多数投票或其他方法进行分类。 或者应该通过连接所有向量来创建一个长向量,并将其提供给 SVM。

如果有任何误解,请纠正我吗?如果不正确,我将删除它,否则我应该让它保留,因为它对于像我这样的初学者都很实用...... 非常感谢……

【问题讨论】:

  • 我应该每次都用一个特征训练我的数据集吗?我读了几篇文章,他们只是说:我们应该提取特征并将它们部署到我们的算法中,但是如何?
  • 基本特征充当推文特征空间中的坐标。对于监督学习,您需要将您认为是训练数据的推文标记为正面或负面,然后使用 SVM 或其他方法
  • 非常感谢。但我的问题是我不明白我应该何时以及如何使用这些功能?!!
  • 例如,在情感分析任务中,我们都知道表情字典是一个基本特征,是推文情感的线索。但我不知道如何将这条线索应用到我的算法中
  • 我会枚举情感图标并将它们用作整数以及感叹号的数量和强度词的数量,以便每条推文都有一个 3x1 特征向量'(10, 0, 0)'例如连同它的标签(0 - 正面,1 - 负面)

标签: python machine-learning sentiment-analysis feature-selection


【解决方案1】:

基本上,为了让事情非常“简单”和“浅”,所有算法都采用某种数字向量来表示特征

真正的工作是找到如何将特征表示为产生最佳结果的向量,这取决于特征本身和使用的算法

例如,要使用基本上找到分离平面的 SVM,您需要将特征投影到一些产生足够好的分离度的向量集上,例如,您可以像这样对待您的特征:

  • 情感图标 - 创建一个代表该推文中所有图标的向量,将每个图标定义为从1n 的索引,因此推文由[0,0,0,2,1] 表示表示第 4 和第 5 个图标分别出现在他的身体 2 和 1 次

  • 感叹号 - 您可以简单地计算出现次数(更好的方法是表示有关它的更多信息,例如句子中的位置等......)

  • 强度词 - 您可以使用与情感图标

  • 相同的方法

基本上每个特征都可以在SVM模型中单独使用来区分好坏

您可以使用 3 个 SVM 模型合并所有这些特征,然后通过多数投票或其他方法进行分类

您可以通过连接所有向量来创建一个长向量,并将其提供给 SVM

这只是一种方法,您可以对其进行调整或使用其他方法来更好地适应您的数据、模型和目标

【讨论】:

  • 您还希望在 0 和 1 之间标准化这些特征
  • 首先,我想感谢您的时间和有价值的解释。我认为我的问题正在解决……所以按照你所说的,每个 ML 算法可能需要一些向量化的特征,我应该找到一种方法将我的特征表示为向量。我想通过一个基本的例子来解释我从你的解释中得到了什么:
  • 假设我有表情图标(例如 3 个图标)作为一项功能。 1-因此,我应该用一个具有 3 个值的向量来表示这个特征。 2-矢量化特征可以以这种方式初始化:[0,0,0](每个值代表一个图标 = :) 和 :( 和 :P )。 3-接下来我应该浏览每条推文并检查推文是否有图标。例如 [2,1,0] 表明该推文有::) 2 次,并且 :( 1 次,并且 :p 没有时间。4-检查所有推文后,我将有一个大小为的大向量n*3(n 是我的推文总数)。5-Stages 1-4 应该用于其他功能。
  • 6-然后我应该使用 m 个 SVM 模型(m 是我的特征数)合并所有这些特征,然后通过多数投票或其他方法进行分类。或者应该通过连接所有向量来创建一个长向量,并将其提供给 SVM。如果有任何误解,您能纠正我吗?如果它不正确,我将删除它,否则我应该让它保留,因为它对于像我这样的任何初学者都很实用......非常感谢......
猜你喜欢
  • 2015-02-07
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 2019-10-15
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多