私は、RBFカーネルを持つSVMクラシファイアのための最も有益な(ベスト)機能のトップ10を取得しようとしています。私はプログラミングの初心者なので、私はオンラインで見つけたいくつかのコードを試しました。残念ながら、何も働かない。私はいつもエラー:ValueError: coef_ is only available when using a linear kernel
を得る。トップ10の特徴rbfカーネルを使用したSVC
これは私がテストした最後のコードです:
scaler = StandardScaler(with_mean=False)
enc = LabelEncoder()
y = enc.fit_transform(labels)
vec = DictVectorizer()
feat_sel = SelectKBest(mutual_info_classif, k=200)
# Pipeline for SVM classifier
clf = SVC()
pipe = Pipeline([('vectorizer', vec),
('scaler', StandardScaler(with_mean=False)),
('mutual_info', feat_sel),
('svc', clf)])
y_pred = model_selection.cross_val_predict(pipe, instances, y, cv=10)
# Now fit the pipeline using your data
pipe.fit(instances, y)
def show_most_informative_features(vec, clf, n=10):
feature_names = vec.get_feature_names()
coefs_with_fns = sorted(zip(clf.coef_[0], feature_names))
top = zip(coefs_with_fns[:n], coefs_with_fns[:-(n + 1):-1])
for (coef_1, fn_1), (coef_2, fn_2) in top:
return ('\t%.4f\t%-15s\t\t%.4f\t%-15s' % (coef_1, fn_1, coef_2, fn_2))
print(show_most_informative_features(vec, clf))
はRBFカーネルで分類器からトップ10の機能を得るために誰か決してしていますか?または、最高の機能を視覚化する別の方法は?