Naive Bayes用于分类列

时间:2018-05-23 13:56:25

标签: python machine-learning nlp bayesian text-classification

Hello StackExchange社区,

我有一个Naive Bayes的独特用例,我正在尝试训练我的模型,以根据输入列名的先前数据识别输出列名。

基本上,我的数据如下所示:

 1. Output Column  |   Input Columns  
 2. Col1        |       ABC DEF GHI 
 3. Col2        |       JKL MNO QPR
 4. Col3        |       STU VWX

这是表明

的历史数据

我们在名为“ABC”的列中收到了数据,我们将数据映射到“Col1” 我们在名为“DEF”的列中收到了一个数据,我们将数据映射到“Col1” 我们在一个名为“JKL”的列中收到了一个数据,我们将数据映射到“Col2” 等等...

我重新安排了以下数据,并使用Naive Bayes的文本分类(类似于垃圾邮件分类器)训练我的模型。

1. Output Column   |   Input Columns
 2. Col1           |         ABC
 3. Col2           |         JKL
 4. Col3           |         STU
 5. Col1           |         DEF
 6. Col2           |         MNO
 7. Col3           |         STU

依旧......

对于预测,我将向训练模型提供输入列,并询问输入应属于哪个输出列类,以及概率分数。

你认为我解决这个问题的方法是正确的吗?通过大约100行数据,我得到了准确的预测,但概率得分很低(约40%)。

这里的任何反馈都会受到赞赏,因为这个ML模型可以帮助我们完成自动化任务。

代码:

vectorizer = CountVectorizer()
counts = vectorizer.fit_transform(training_data['Input Column'].values)
classifier = MultinomialNB()
targets = training_data['Output Column'].values

classifier.fit(counts, targets)

for index, row in test_data.iterrows():
    panel=row['SourcePanel']
    panel=[panel]
    example_counts = vectorizer.transform(panel)
    predictions = classifier.predict(example_counts)
    probability = classifier.predict_proba(example_counts)
    df=pd.DataFrame(classifier.predict_proba(example_counts), columns=classifier.classes_)
    print("The source panel attribute ", panel, " maps to Target entity Attribute", df[predictions], "probability")

0 个答案:

没有答案