Классификация решения НЛП выше доверительного порога - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть фрейм данных all_data, который содержит два столбца: Event_Summary: текстовое описание события и Impact - классификация.Я использовал SVM для автоматической классификации этих данных - см. Код ниже:

train, test = train_test_split(all_data, test_size=0.2)

count_vect = CountVectorizer(stop_words='english', analyzer = "word")
X_train_counts = count_vect.fit_transform(train.Event_Summary)

tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts)
X_train_tf = tf_transformer.transform(X_train_counts)

y_train = train["Impact"]
y_test = test["Impact"]

X_test_counts = count_vect.transform(test.Event_Summary)
tf_transformer = TfidfTransformer(use_idf=False).fit(X_test_counts)
X_test_tf = tf_transformer.transform(X_test_counts)

parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = svm.SVC(gamma="scale")
clf = GridSearchCV(svc, parameters, cv=5)
clf.fit(X_train_tf, y_train)

pred = clf.predict(X_test_tf)
score = np.mean(pred == y_test)*100

Результат составляет около 70%, что довольно мало, учитывая, что есть только две категории.Из-за этой низкой оценки я хотел бы классифицировать описание только в том случае, если алгоритм находится выше определенного порога достоверности, что это правильная катогаризация (оставляя неопределенные значения для заполнения вручную).

Является ли этовозможно с python / sklearn и если да, то есть ли у кого-нибудь совет, как это сделать?Также, если у кого-то есть рекомендации относительно того, как я могу сделать свою модель более точной?

1 Ответ

0 голосов
/ 08 февраля 2019

Вы не узнаете, каков показатель доверия, если вы не запустите классификатор.Таким образом, вы можете запустить классификатор, посмотреть на счет и затем решить, какой из них будет автоматически принят, а какие пройдут ручную проверку.

Относительно вашего второго вопроса о том, как повысить точность, есть несколько вещей, которые вы можете сделать.

  1. Попробуйте использовать более сложные методы, такие как вложение слов, для векторизации ваших данных.С ним вы наверняка увидите лучшие результаты.
  2. Попробуйте использовать разные классификаторы, чтобы увидеть, какой из них дает наилучшие результаты.

Кроме того, можно посмотреть на функцию predict_proba, чтобы получить уверенность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...