gpt4 book ai didi

python - 带有 rbf 内核的前 10 个功能 SVC

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:32 24 4
gpt4 key购买 nike

我正在尝试获取具有 RBF 内核的 SVM 分类器的前 10 个信息最丰富(最佳)特征。由于我是编程初学者,我尝试了一些在网上找到的代码。不幸的是,没有一个有效。我总是收到错误:ValueError: coef_ 仅在使用线性内核时可用

这是我测试的最后一个代码:

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 个特征吗?或者另一种可视化最佳功能的方式?

最佳答案

我不确定您所要求的对于 RBF 内核是否可行,与您所展示的示例类似(正如您的错误所示,它仅适用于线性内核)。

但是,您始终可以尝试功能消融;一一删除每个功能并测试它如何影响性能。对性能影响最大的 10 个功能是您的“十大功能”。

显然,只有在 (1) 您的特征相对较少和/或 (2) 训练和测试模型不需要很长时间的情况下,这才有可能。

关于python - 带有 rbf 内核的前 10 个功能 SVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com