繁体   English   中英

使用决策树对重复进行分类

[英]classify duplication using decision tree

我正在做一个项目。 我使用 python 开发决策树,并将数据集划分为 80% 训练和 20% 测试。 对于测试数据集,我希望决策树对重复进行分类。 我想让决策树读取测试集,如果有一个重复将所有重复分类为 No only oneclass 是的,这可能吗?决策树是否用于对重复进行分类? 如果可能,那么如何?

注意:决策树会对训练数据集进行分类,也希望对重复进行分类。

这是示例:

在此处输入图片说明

谢谢

我在这里看到几个问题:

  1. 决策树监督学习方法,这意味着它们需要标签。 您的问题似乎没有任何标签(这不是分类问题,您将评论归为什么?唯一性不是类别!

  2. 决策树需要在数据中寻找模式,但你的数据中的模式是什么? 它应该如何区分“它正在崩溃”“小图标” 什么特征将这两个句子分开? 再说一次, Uniqueness太宽泛了!

为了解决您的问题,您需要使用无监督学习方法。 首先通过查找类似的注释来检测数据中的重复项。 这可以通过各种方法和库来完成。 这里描述了一些

例如,一种方法是使用cosine_similarity

import numpy as np
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.feature_extraction.text import TfidfVectorizer

comments_df = pd.DataFrame(data = {'Comment': ['Crash', 'It is crashing', 'Always crash', 'Small icon'], 'Unique': ['Y', 'N', 'N', 'Y']})
X = TfidfVectorizer().fit_transform(list(comments_df["Comment"].values))

threshold = 0.4

for i in range(0, X.shape[0]):
  for j in range(i, X.shape[0]):
    if i != j:
      sim_score = cosine_similarity(X[i], X[j])
      if sim_score > threshold:
        print(f"\"{comments_df.iloc[i]['Comment']}\", \"{comments_df.iloc[j]['Comment']}\"")
        print(f"Cos similarity: {sim_score}\n")

输出:

"Crash", "Always crash"
Cos similarity: [[0.6191303]]

您还可以使用spaCy

import spacy
nlp = spacy.load("en_core_web_sm")

comments_df = pd.DataFrame(data = {'Comment': ['Crash', 'It is crashing', 'Always crash', 'Small icon'], 'Unique': ['Y', 'N', 'N', 'Y']})

threshold = 0.4

for i in range(comments_df.shape[0]):
  for j in range(i, comments_df.shape[0]):
    if i != j:

      doc1 = nlp(comments_df.iloc[i]['Comment'])
      doc2 = nlp(comments_df.iloc[j]['Comment'])
      similary_score = doc1.similarity(doc2)

      if similary_score > threshold:
        print(f"\"{comments_df.iloc[i]['Comment']}\", \"{comments_df.iloc[j]['Comment']}\"")
        print(f"Similarity: {similary_score}\n")

这将输出:

"Crash", "Always crash"
Similarity: 0.5155057238138886

"Crash", "Small icon"
Similarity: 0.5194295610092798

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM