SVC.coef_和样本中有不同数量的功能

时间:2016-09-24 09:08:16

标签: python machine-learning svm data-analysis

我下载了数据。

news = datasets.fetch_20newsgroups(subset='all', categories=['alt.atheism', 'sci.space'])
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(newsgroups.data)
y = news.target
print(X.shape)

X的形状为(1786, 28382)

接下来,我训练了模型并获得了coef_ shape

clf = svm.SVC(kernel='linear', random_state=241, C = 1.0000000000000001e-05)
clf.fit(X, y)
data = clf.coef_[0].data
print(data.shape)

形状为(27189,)

为什么功能的数量不同?

1 个答案:

答案 0 :(得分:1)

所以总之一切都很好,你的体重矩阵在clf.coef_。并且它具有有效的形状,它是一个常规的numpy数组(如果数据稀疏则为scipy稀疏数组)。你可以对它进行所有需要的操作,索引等等。你尝试了什么,.data字段是属性,它包含数组的内部存储,它可以有不同的形状(因为它可能会忽略一些冗余等),但关键是你不应该为了你的目的使用numpy数组的这个内部属性。它适用于低级方法,而不仅仅是读出