我有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 进行,如果可以,是否有人对如何执行此操作有建议?另外,如果有人建议我如何使我的模型更准确?
米脂
相关分类