带有 rbf 内核的 SVC 的 10 大功能

     2023-03-12     24

关键词:

【中文标题】带有 rbf 内核的 SVC 的 10 大功能【英文标题】:Top 10 features SVC with rbf kernel 【发布时间】:2018-01-13 18:55:59 【问题描述】:

我正在尝试为具有 RBF 内核的 SVM 分类器获取前 10 个信息量最大(最佳)的特征。由于我是编程初学者,所以我尝试了一些我在网上找到的代码。不幸的是,没有一个工作。我总是收到错误:ValueError: coef_ is only available when using a linear kernel

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

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 个特征吗?或者以其他方式可视化最佳特征?

【问题讨论】:

【参考方案1】:

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

但是,您可以随时尝试feature ablation;逐个删除每个功能并测试它如何影响性能。对性能影响最大的 10 个功能是您的“前 10 个功能”。

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

【讨论】:

为 sklearn 的 SVC 使用自定义 rbf 内核函数比内置方法快得多

】为sklearn的SVC使用自定义rbf内核函数比内置方法快得多【英文标题】:Usingacustomrbfkernelfunctionforsklearn\'sSVCiswayfasterthanbuilt-inmethod【发布时间】:2021-12-0907:22:30【问题描述】:在使用Scikit-Learn的SVC实现时,我注意到一个相当奇特但... 查看详情

GridSearchCV 是用 rbf 内核和不同程度计算 SVC 吗?

】GridSearchCV是用rbf内核和不同程度计算SVC吗?【英文标题】:IsGridSearchCVcomputingSVCwithrbfkernelanddifferentdegrees?【发布时间】:2017-09-0411:16:09【问题描述】:我正在运行GridSearchCV和OneVsRestClasssifer,使用SVC作为估算器。这是我的Pipeline... 查看详情

带有 Gram 矩阵的预计算 RBF 内核的 Python 实现?

】带有Gram矩阵的预计算RBF内核的Python实现?【英文标题】:PythonimplementationofprecomputedRBFkernelwithGrammatrix?【发布时间】:2018-02-1718:36:10【问题描述】:Python的信息和precomputedkernels示例非常有限。sklearn仅提供linearkernel的一个简单示... 查看详情

在 SVM 中使用带有卡方距离度量的 RBF 内核

】在SVM中使用带有卡方距离度量的RBF内核【英文标题】:UseRBFKernelwithChi-squareddistancemetricinSVM【发布时间】:2017-07-1702:14:45【问题描述】:如何实现标题中提到的任务。我们在RBF内核中是否有任何参数可以将距离度量设置为卡方... 查看详情

内核 SVC 不断收到 RandomSearchCV 中的参数错误

】内核SVC不断收到RandomSearchCV中的参数错误【英文标题】:KernelSVCkeepsgettingerrorsonparametersinRandomSearchCV【发布时间】:2018-12-0322:16:24【问题描述】:*此帖继续hereclassifier=SVC()parameters="kernel":["rbf","linear"],"gamma":scipy.stats.expon(scale=.1 查看详情

SVM 自定义 RBF 内核 IndexError

】SVM自定义RBF内核IndexError【英文标题】:SVMcustomRBFkernelIndexError【发布时间】:2018-03-0716:35:42【问题描述】:我想为我的非线性可分数据实现SVMRBF内核。我将内核定义为:defrbf(va,vb):gamma=0.7returnexp(-gamma*linalg.norm(va-vb)**2)clf=svm.SVC(ke... 查看详情

SVM 内核的速度?线性 vs RBF vs 多边形

】SVM内核的速度?线性vsRBFvs多边形【英文标题】:SpeedofSVMKernels?LinearvsRBFvsPoly【发布时间】:2017-09-1716:04:47【问题描述】:我在Python中使用scikitlearn来创建一些SVM模型,同时尝试不同的内核。代码很简单,形式如下:fromsklearnimpor... 查看详情

SciKit SGD 回归器 RBF 内核逼近

...用SGD回归和RBF近似。有趣的是,与单独使用SGD相比,使用带有RBF的SGD得到的结果更差。我想这将是由于错误的参数值。我 查看详情

支持向量机的RBF核

...achine【发布时间】:2014-09-2418:35:40【问题描述】:非线性内核允许SVM在高维空间中线性地分离非线性数据。RBF内核可能是最流行的非线性内核。有人告诉我,RBF内核是高斯的,因此是无限微分的。有了这个属性,RBF内核可以将数... 查看详情

在 python scikit-learn 中,RBF 内核的性能比 SVM 中的线性差得多

...我怀疑数据是非线性的,所以我还包括了RBF内核。我发现带有RBF内核的SVM比线性SVM差得多。我想知道我 查看详情

用 rbf 核计算 svm 的 w 向量

...2020-05-1803:33:23【问题描述】:我需要找到一种方法来计算带有rbf内核的SVM的w向量。参考libsvm文档,rbf内核定义为:RBF:exp(-gamma*|u-v|^2)我知道你是一个1*n数组(model.sv_coef)而v是m*n矩阵(model.SVs)现在,我不知道如何计算u和v的 查看详情

线性内核与 RBF 内核

】线性内核与RBF内核【英文标题】:LinearKernelvsRBFkernel【发布时间】:2015-01-2202:00:33【问题描述】:我正在阅读以下链接中何时使用线性内核而不是RBF内核部分:http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf第12页。有人可以告诉我... 查看详情

Lasvm 文档和信息 [关闭]

...题描述】:我有数千个用于训练和测试的样本,我想使用带有RBF内核的SVM对它们进行分类。问题是当使用10k或更多数据时,Libsvm的RBF内核实现非常慢。性能缓慢的主要焦点是网格搜索。我读到了Liblinear和Lasvm。但是liblinear不是我... 查看详情

为啥 sklearn 交叉验证的 rbf 内核比线性内核快得多?

】为啥sklearn交叉验证的rbf内核比线性内核快得多?【英文标题】:Whyistherbfkernelmuchfasterthanlinearkernelforsklearncrossvalidation?为什么sklearn交叉验证的rbf内核比线性内核快得多?【发布时间】:2020-11-2916:33:34【问题描述】:我正在对250... 查看详情

为啥使用 SVM 线性内核的代码不能使用 RBF

】为啥使用SVM线性内核的代码不能使用RBF【英文标题】:WhyworkingcodewithSVMLinearKernelnotworkingwithRBF为什么使用SVM线性内核的代码不能使用RBF【发布时间】:2019-12-1910:05:18【问题描述】:当我使用SVM的trainAuto方法时,我得到getKernelType... 查看详情

机器学习sklearn----支持向量机svc核函数性质探索(代码片段)

文章目录前言原始数据集探索核函数性质探究对核函数rbf的表现不佳的思考对rbf进一步的调参前言前面我们了解了在不同的数据分布下,不同核函数的表现效果,但是实际应用中我们的数据往往有很多的特征,导致我... 查看详情

机器学习sklearn----支持向量机svc核函数性质探索(代码片段)

文章目录前言原始数据集探索核函数性质探究对核函数rbf的表现不佳的思考对rbf进一步的调参前言前面我们了解了在不同的数据分布下,不同核函数的表现效果,但是实际应用中我们的数据往往有很多的特征,导致我... 查看详情

sklearn之svm-葡萄酒质量预测

classsklearn.svm.SVC(C=1.0,kernel=’rbf’,degree=3,gamma=’auto_deprecated’,coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,class_weight=None,verbose=False,max_iter=-1,decision_function_shape=’ovr’,random_state=None... 查看详情