支持向量机(SVM)的功能

时间:2019-02-03 09:22:38

标签: scikit-learn classification svm svd

我必须使用支持向量机对一些文本进行分类。在我的训练文件中,我有5个不同的类别。首先,我必须使用“词包”功能进行分类,然后使用SVD功能进行分类,方法是保留90%的总方差。

我正在使用python和sklearn,但我不知道如何创建上述SVD功能。

我的火车组用制表符(\ t)分隔,我的文本在“内容”列中,类别在“类别”列中。

1 个答案:

答案 0 :(得分:0)

tf-idf / PCA / SVM工作流程的高级步骤如下:

加载数据(在您的情况下会有所不同):

propertyName

预处理功能和训练分类器:

from sklearn.datasets import fetch_20newsgroups
categories = ['alt.atheism', 'soc.religion.christian']
newsgroups_train = fetch_20newsgroups(subset='train', categories=categories)
train_text = newsgroups_train.data
y = newsgroups_train.target

最后,对from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.decomposition import PCA from sklearn.svm import SVC vectorizer = TfidfVectorizer() X_tfidf = vectorizer.fit_transform(train_text) pca = PCA(.8) X = pca.fit_transform(X_tfidf.todense()) clf = SVC(kernel="linear") clf.fit(X,y) 数据集执行相同的预处理步骤并进行预测。

PS

如果愿意,可以将预处理步骤合并为test

Pipeline

并在以后将其用于处理测试数据。