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