使用具有类的权重的训练集对数据进行分类

时间:2017-02-20 03:09:18

标签: python scikit-learn text-mining text-classification

我有一个包含3个变量的数据集:

 <tr *ngFor ="let userAccount of UserAccounts">
          <td  class="table-borderless" colSpan="4" class="text-right"><b>Tax</b></td>
          <app-userAccount>{{userAccount.taxes}}</app-userAccount>       
      </tr>

数据中有900个作业,每个作业都有几行任务,任务根据它们与作业的相关性进行加权(0-100)。任务在某些工作中很常见。

我还有另一个包含以下变量的数据集:

job title (classes) , task (text), task importance (0-100)

在第二个数据集中,每个人都解释了他们的工作描述。 我想使用第一个数据集作为训练数据来预测第二个数据集中作业的职称。

我想用scikit学习。我的主要问题是如何在训练数据集中加入类的权重以及该数据集用于预测第二个数据集中类的概率的最佳模型是什么?

1 个答案:

答案 0 :(得分:0)

首先,您需要预先处理您的训练数据集并从任务文本中提取功能(例如,您可以使用简单的词包,unigram,bigram,tf-idf或更复杂的功能NLP)标记文本(您可以使用标准文本挖掘技术,如删除停用词,词干等)。例如,如果使用简单的BOW功能,训练数据集中的示例行可能如下所示:

word1 word2 ... wordn jobtitle
  3     0         1   XXXXXX

这里的功能是任务文本中出现的单词,计数反映出现次数,每行对应一个作业标题。

现在,在这个数据集上训练一个分类器(例如,Naive Bayes,SVM,RandomForest,Boosting,Multinomial Logit,Decision Tree等),你需要尝试其中几个(通过在保持的验证中测试它们的性能)数据集)以查看哪一个最适合您的验证数据集。

分类器学习近似f的函数jobtitle=f(word1, word2,...,wordn)

接下来,要使用分类器对测试数据集进行预测,您需要再次预处理数据,将其转换为与训练数据集完全相同的结构。这次您需要从作业描述中标记和提取功能。示例测试数据集可能如下所示:

  word1 word2 ... wordn 
      1     2         0

此处的功能与训练数据集中显示的单词相同,现在计数将是测试数据集中作业描述中出现的次数。现在,您可以要求训练有素的分类器预测测试数据集中每行的作业标题以及从训练数据集中学习的函数f的相关概率。