首页 > 解决方案 > 分类 - 获取准确的标签值以检查与另一个类的接近程度(Python)

问题描述

我正在使用 3 种算法在 python 中进行文本分类:kNN、朴素贝叶斯和 SVM。我有 3 节课——简单、中等和困难。准确度相当不错。有没有办法检查新文本的确切值?标签编码后 0 是容易的,1 是中等的,2 是困难的。因此,例如基于新文本,它被归类为中等,但我想知道它与简单/困难有多接近。我的一些代码片段:

Train_X, Test_X, Train_Y, Test_Y = model_selection.train_test_split(
    df['tokens'], df['class'], test_size=0.3, random_state=42)

Encoder = LabelEncoder()
Train_Y = Encoder.fit_transform(Train_Y)
Test_Y = Encoder.fit_transform(Test_Y)

Tfidf_vect = TfidfVectorizer(max_features=35)
Tfidf_vect.fit([' '.join(arr) for arr in df['tokens']])
Train_X_Tfidf = Tfidf_vect.transform([' '.join(arr) for arr in Train_X])
Test_X_Tfidf = Tfidf_vect.transform([' '.join(arr) for arr in Test_X])
Naive = naive_bayes.MultinomialNB()
Naive.fit(Train_X_Tfidf, Train_Y)
predictions_NB = Naive.predict(Test_X_Tfidf)
print(round(accuracy_score(predictions_NB, Test_Y)*100, 2))

现在,当我使用 Naive.predict() 时,我得到 0、1 或 2。有没有办法获得 EXACT 值,例如 0,5897237489,即 1,但我发现它比 2 更接近 0

标签: pythonpython-3.xclassificationtext-classificationnaivebayes

解决方案


推荐阅读