首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mlxtend.feature_selection前向选择不适用于支持向量机线性核?

mlxtend.feature_selection前向选择不适用于支持向量机线性核?
EN

Stack Overflow用户
提问于 2021-01-23 23:18:25
回答 1查看 1.2K关注 0票数 0

因此,我正在使用支持向量机( SVM )和mlx趋向包执行一个特性选择。X是一个具有特征的数据,y是目标变量。这是我代码的一部分。

代码语言:javascript
复制
from sklearn.svm import SVC
from mlxtend.feature_selection import SequentialFeatureSelector as SFS

def SFFS(X, y, C_GS, gamma_GS, kernel_GS):
    sfs = SFS(SVC(kernel = kernel_GS, C = C_GS, gamma = gamma_GS),
         k_features = (1, num_of_features),
          forward= True,
          floating = False,
          verbose= 2,
          scoring= 'roc_auc',
          #scoring= 'accuracy',
          cv = 10,
          n_jobs= -1
         ).fit(X, y)

    return sfs

def SFFS_lin(X, y, C_GS, kernel_GS):
    sfs = SFS(SVC(kernel = kernel_GS, C = C_GS),
         k_features = (1, num_of_features),
          forward= True,
          floating = False,
          verbose= 2,
          scoring= 'roc_auc',
          cv = 10,
          n_jobs= -1
         ).fit(X, y)
    return sfs

def featureNames(sfs):
    Feature_Names = sfs.k_feature_names_
    return Feature_Names


sfs_lin = SFFS_lin(X, y, 1,'linear')
#sfs_rbf = SFFS(X, y, 1, 'auto', 'rbf')
names = featureNames(sfs_lin)
print(names)

代码开始运行,但很快就会冻结在这里:

并行(n_jobs=-1):将后端LokyBackend与8个并发工作人员一起使用。并行(n_jobs=-1):28运行中完成28 : 2.5s剩余: 0.0s并行(n_jobs=-1):完成28次运行: 2.5s已完成

2021-01-24 00:01:57特征: 1/28 -得分:0.6146428161908037并行(n_jobs=-1):使用后端LokyBackend与8名并发工人。

当使用rbf内核时,代码运行得很好。如果我通过将前向参数设置为False来更改该函数以执行向后消除,它将运行得很好。

forward=False

它运行得很漂亮。当使用线性核进行前向选择时,似乎出现了冻结问题。这是个愚蠢的虫子还是我错过了一些琐碎的东西?

系统信息:

代码语言:javascript
复制
Python 3.8.5
scikit-learn 0.24.1
mlxtend 0.18.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-25 23:16:44

看来这只是个愚蠢的虫子。

使交叉验证无效

代码语言:javascript
复制
cv = 10

参数为9,则它运行..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65865518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档