优秀的编程知识分享平台

网站首页 > 技术文章 正文

支持向量机SVM和逻辑回归算法LR完成文本分类任务

nanyue 2025-03-06 17:56:28 技术文章 5 ℃

人工智能专栏推荐

正文

使用SVM和LR都可以做分类,我们来看一下它们是怎么做到的?本文将使用SVM和LR同时来拟合同一数据训练出SVM模型和LR模型。

我们现在有两个文件,分别是spamTrain.mat训练集数据,和spamTest.mat

测试集数据。我们先对这两文件进行读取,生成训练数据X, y

以及测试数据test_X, test_y

数据已经有了,我们分别来拟合svm模型和LR模型,然后让它们分别来预测我们的预测数据,看它们的各项指标。

全部代码:

代码

#svm
svc = svm.SVC()
svc.fit(X, y)
pred = svc.predict(test_X)
print(metrics.classification_report(test_y, pred))
#逻辑回归
logit = LogisticRegression()
logit.fit(X, y)
pred = logit.predict(test_X)
print(metrics.classification_report(test_y, pred))
代码:
from sklearn import svm
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
import scipy.io as sio
mat_tr = sio.loadmat('spamTrain.mat')
print (mat_tr.keys())
mat_test = sio.loadmat('spamTest.mat')
print (mat_test.keys())
X, y = mat_tr.get('X'), mat_tr.get('y').ravel()
print (X.shape, y.shape)
test_X, test_y = mat_test.get('Xtest'), mat_test.get('ytest').ravel()
print (test_X.shape, test_y.shape)
#svm
svc = svm.SVC()
svc.fit(X, y)
pred = svc.predict(test_X)
print(metrics.classification_report(test_y, pred))
#逻辑回归
logit = LogisticRegression()
logit.fit(X, y)
pred = logit.predict(test_X)
print(metrics.classification_report(test_y, pred))
最近发表
标签列表