朴素贝叶斯和支持向量机 (NBSVM) 分类

数据挖掘 支持向量机 朴素贝叶斯分类器
2022-03-10 22:41:17

我对数据科学比较陌生,并且对 NBSVM 有疑问。我有两个类的问题和文本数据(报纸的头条新闻)。我想使用 NBSVM 来预测标题的标签是 0 还是 1。

我如何理解它,我现在必须如何进行:

  1. 将标题转换为文档术语矩阵
  2. 计算对数计数比。据我了解,这些是一个类的单个文档的概率(即文档属于 0 类或 1 类的概率)。如果我在这里错了,请纠正我。
  3. 然后,对数计数比率作为 SVM 的输入。它插入比率并设置两个类之间的边界。当新数据到来时,SVM 会告诉您数据属于哪个类。

这是正确的吗?请注意,这只是一个理论过程,而不是实现。

1个回答

您使用 sklearn "CountVectorizer" 和 "TfidfVectorizer" 将文本数据转换为向量

    tfidf = TfidfVectorizer(sublinear_tf=True, min_df=5, norm='l2', encoding='latin-1', ngram_range=(1, 2), stop_words='english')
X_train, X_test, y_train, y_test = train_test_split(df['text'], df['class'], random_state = 0)

# vector representations of the text 
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(X_train)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)

# Building a SVM model
svmmodel = LinearSVC().fit(X_train_tfidf, y_train)