精华内容
下载资源
问答
  • 在用sklearn的时候经常用到feature_importances_ 来做特征筛选,那这个属性到底是啥呢。 分析源码发现来源于每个base_estimator的决策树的 feature_importances_ 由此发现计算逻辑来源于cython文件,这个文件可以...

    在用sklearn的时候经常用到feature_importances_ 来做特征筛选,那这个属性到底是啥呢。

    分析源码发现来源于每个base_estimator的决策树的
    feature_importances_


     

    由此发现计算逻辑来源于cython文件,这个文件可以在其github上查看源代码
    在这里插入图片描述
    而在DecisionTreeRegressor和DecisionTreeClassifier的对feature_importances_定义中


    在这里插入图片描述

    到此决策树的feature_importances_就很清楚了:impurity就是gini值,weighted_n_node_samples 就是各个节点的加权样本数,最后除以根节点nodes[0].weighted_n_node_samples的总样本数
    下面以一个简单的例子来验证下:
    在这里插入图片描述
    在这里插入图片描述
    上面是决策树跑出来的结果,来看petal width (cm)就是根节点,

    featureimportance=(112∗0.6647−75∗0.4956−37∗0)/112=0.5564007189feature_importance=(112*0.6647-75*0.4956-37*0)/112=0.5564007189featurei​mportance=(112∗0.6647−75∗0.4956−37∗0)/112=0.5564007189,
    petal length (cm)的
    featureimportance=(75∗0.4956−39∗0.05−36∗0.1528)/112=0.4435992811feature_importance=(75*0.4956-39*0.05-36*0.1528)/112=0.4435992811featurei​mportance=(75∗0.4956−39∗0.05−36∗0.1528)/112=0.4435992811
    忽略图上gini计算的小数位数,计算结果相同。

     

    #待更新

    展开全文
  • 直接上代码! # 在训练集上训练一个监督学习模型 model = AdaBoostClassifier(base_estimator=DecisionTreeClassifier(max_depth=3),n_estimators=8) ...importances = model.feature_importances_ #...

    直接上代码!

    # 在训练集上训练一个监督学习模型
    model = AdaBoostClassifier(base_estimator=DecisionTreeClassifier(max_depth=3),n_estimators=8)
    model.fit(X_train,y_train)
    
    # 提取特征重要性
    importances = model.feature_importances_
    
    # 绘图
    vs.feature_plot(importances, X_train, y_train)
    

    AdaBoost,随机森林等模型具有’feature_importance_’ 属性,主要是对特征的重要性排序。

    展开全文
  • 在进行机器学习算法中,我们常用的算法就像下面的代码形式类型 经历导入数据-预处理-建模-得分-预测 但是总觉得少了点什么,...值得庆幸的是我们变量重要性指标feature_importances_,但是就目前而言,这个参数好...

    在进行机器学习算法中,我们常用的算法就像下面的代码形式类型
    经历导入数据-预处理-建模-得分-预测
    在这里插入图片描述
    但是总觉得少了点什么,虽然我们建模的目的是进行预测,但是我们想要知道的另一个信息是变量的重要性,在线性模型中,我们有截距和斜率参数,但是其他机器学习算法,如决策树和随机森林,我们貌似没有这样的参数
    值得庆幸的是我们有变量重要性指标feature_importances_,但是就目前而言,这个参数好像只有在决策树和以决策树为基础的算法有。但是考虑到随机森林已经能解决大部分的分类和回归问题,我们就暂且以随机森林算法为例,介绍特征重要性吧

    先考虑一个简单的问题
    在这里插入图片描述
    在这里插入图片描述
    列表中的数据和你元数据的表头是对应的,最大值为1,值越大,越重要
    在这里插入图片描述
    以上只是简单的算法,但是大部分时候,我们会加上交叉验证的网格搜索,那应该怎么办呢
    估计算法主题其实就是best_estimator_,再追加特征重要性参数就可以了。注意在这之间要转化为Dataframe,否则会运行错误。

    在这里插入图片描述
    在这里插入图片描述

    关于其他机器学习算法的特征重要性,大家可以自行寻找其他方法,正在寻找和学习中,需要提醒的是,特征重要性对于变量自相关性不敏感,也就是说,在变量间存在相关性的时候,特征重要性指标可能与实际想要的结果有所偏差,说白了,就是不准。

    展开全文
  • 在利用RFE进行特征筛选的时候...from sklearn.svm import SVR model_SVR = SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto', kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, ...

    在利用RFE进行特征筛选的时候出现问题,源代码如下:

    from sklearn.svm import SVR
    model_SVR = SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',
        kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
    selector = RFE(estimator = model_SVR, step=1)
    selector = selector.fit(df_train_X, df_train_y.values.ravel())
    selector.support_
    selector.ranking_
    

    错误如下:

    ---------------------------------------------------------------------------
    RuntimeError                              Traceback (most recent call last)
    <ipython-input-49-ca6dfcbf43ee> in <module>
         38     kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
         39 selector = RFE(estimator = model_SVR, step=1)
    ---> 40 selector = selector.fit(df_train_X, df_train_y.values.ravel())
         41 selector.support_
         42 selector.ranking_
    
    ~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/sklearn/feature_selection/rfe.py in fit(self, X, y)
        142             The target values.
        143         """
    --> 144         return self._fit(X, y)
        145 
        146     def _fit(self, X, y, step_score=None):
    
    ~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/sklearn/feature_selection/rfe.py in _fit(self, X, y, step_score)
        189                 coefs = getattr(estimator, 'feature_importances_', None)
        190             if coefs is None:
    --> 191                 raise RuntimeError('The classifier does not expose '
        192                                    '"coef_" or "feature_importances_" '
        193                                    'attributes')
    
    RuntimeError: The classifier does not expose "coef_" or "feature_importances_" attributes
    

    经过百度发现问题,原文在stackflow,链接如下:
    KNN with RFECV returns: “The classifier does not expose ”coef_“ or ”feature_importances_“ attributes”

    “knn不提供进行特征选择的逻辑。除非您为KNN定义自己的特性重要性度量,否则您不能使用它(sklearn的实现)来实现这样的目标。据我所知-没有这样的通用对象,所以-scikit learn没有实现它。另一方面,支持向量机,像每一个线性模型-提供这样的信息。”
    也就是用rbf核进行筛选是不可以的,SVR中不提供rbf特征选择的逻辑,对于支持向量回归可以用linear进行筛选

    展开全文
  • 当RFE+linear SVC时,没有问题 clf_1 = SVC(kernel='linear',random_state=0) rfe = RFE(estimator=clf_1, n_features_to_select=12, step=1) rfe.fit(X, y) print(rfe.ranking_) print(rfe.support_) 当RFE+rbf ...
  • 特征重要性--feature_importance

    千次阅读 2020-12-03 23:00:45
    feature_importance的特征重要性There are indeed several ways to get feature "importances". As often, there is no strict consensus about what this word means.In scikit-learn, we implement the importance...
  • I have built a SVM linear model for two types of classes (1 and 0), using the following code:class1.svm.model and I have extracted the weights for the training set using the following code:#extract th...
  • sklearn:sklearn.feature_selection的SelectFromModel函数的简介、使用方法之详细攻略 目录 SelectFromModel函数的简介 1、使用SelectFromModel和LassoCV进行特征选择 2、L1-based feature selection 3、...
  • 文章目录1 四种全局可解释的方法论1.1 过滤法1.1.1 方差过滤方差过滤1.1.2 相关性过滤1.2 嵌入法1.2.1 SelectFromModel - 筛选特征1.2.2 PermutationImportance - 排列重要性1.3 包装法1.4 几种方法对比1.5 额外的...
  • 方差阈值(VarianceThreshold)是特征选择的一个简单方法,去掉那些方差没有达到阈值的特征。默认情况下,删除零方差的特征,例如那些只有一个值的样本。 假设我们一个布尔特征的数据集,然后我们想去掉那些超过...
  • 机器学习之特征选择 (feature_selection)

    千次阅读 2018-10-15 15:42:53
    转载... 目录 特征选择 (feature_selection) Filter 1. 移除低方差的特征 (Removing features with low variance) 2. 单变量特征选择 (Univariate featu...
  • SVM

    2016-10-24 17:57:39
    clf.feature_importances_ ans = clf.predict(x_train) print np.mean(ans == y_train) #可以看出对于train数据来说 准确率可以达到100% ##准确率(正确的判为正确的,正确的没有被判为正确的) precision,...
  • ][机器学习中,哪些特征选择的工程方法? - 知乎]皮皮blogsklearn.feature_selection 模块中的类能够用于数据集的特征选择/降维,以此来提高预测模型的准确率或改善它们在高
  • Feature selection

    2015-12-11 15:19:00
    原文:...The classes in the sklearn.feature_selection module can be used for feature selection/dimensionality reduction on sample sets, either ...
  • 机器学习:特征选择(feature selection)

    万次阅读 多人点赞 2019-03-11 18:35:28
    特征选择 这篇文章是关于机器学习中常用的特征选择的一个小结,整体上包括两部分 ...单变量特征选择 (Univariate feature selection) Wrapper 递归特征消除 (Recursive Feature Elimination) Em...
  • 机器学习分类—svm+bagging(sklearn)

    千次阅读 2019-05-12 20:41:03
    招商银行的Fintech比赛2019年第五题,数据34个数值型特征,7000多个样本,其中只有100多个正例,这个做的很基础,写下来就是自己备忘一下。 1.特征工程 我认为的特征工程主要的步骤是,特征观察,特征分析,特征...
  • 特征选择资源及总结

    2018-10-16 15:40:20
    ...思考: 1)参照该博客中基于随机森林的特征重要性排序并打印代码,修改成基于SVM的特征重要性排序并打印。 文中先基于随机森林分类器训练模型,再将训练完的模型中的特征...
  • 首先,在初始化的特征集上面已经训练好的评估器要么通过coef_属性,要么通过feature_importances_属性获取每个特征的重要性。接着,最不重要的特征将从当前特征集中删除。然后会在修剪集(即刚才删除最不重要特征后...
  • 本文是对 https://scikit-learn.org/stable/modules/feature_selection.html 翻译加个人思考笔记。...引用的方式是from sklearn.feature_selection import VarianceThreshold。 它可以过滤掉不满足一定方...
  • SVM-RFE使用及换kernal及estimator

    千次阅读 2018-12-14 16:53:12
    SVM-RFE与SVM-RFECV都是用于对特征进行缩减,用于找到数目最优的特征数。RFECV基于RFE基础上,添加了交叉验证,使得在每个step中,都可以对现有的特征数目进行评估,以确定比较好的数目。RFE中需要指定n_features_to...
  • 在本篇博客中,主要是通过svm算法,结合前两篇博客,实现对信贷数据分类预测的模型的简历。 代码实现 直接贴代码吧 import pandas as pd import numpy as np from sklearn.ensemble import RandomForestClassifier ...
  • sklearn.feature_selection模块中的类可用于样本集的特征选择/降维,以提高估计量的准确性得分或提高其在超高维数据集上的性能。 文章目录1 SelectFromModel基础使用2 SelectFromModel中不同的特征选择方法2.1 基于...
  • 特征选择 (feature_selection)

    千次阅读 2019-08-05 19:44:56
    特征选择 (feature_selection) 目录 特征选择 (feature_selection) Filter 1. 移除低方差的特征 (Removing features with low variance) 2. 单变量特征选择 (Univariate feature selection) Wrapper ...
  • print(clf.feature_importances) sklearn分类数据 sklearn.datasets.make_classification用来随机产生一个多分类问题。  n_features=n_informative+n_redundant+n_repeated。  n_clusters_per_class 每...
  • sklearn.ensemble 模块)能够用来计算特征的重要程度,因此能用来去除不相关的特征(结合 sklearn.feature_selection.SelectFromModel): Feature importances with forests of trees: 从模拟数据中恢复意义的特征...
  • sklearn_Feature selection(特征选择)

    千次阅读 2018-09-06 19:48:48
    http://sklearn.apachecn.org/cn/0.19.0/modules/feature_selection.html#feature-selection https://www.jianshu.com/p/b3056d10a20f 目录   1.13. 特征选择 1.13.1. 移除低方差特征 1.13.2. 单变量特征...
  • 递归式特征消除:Recursive feature elimination

    万次阅读 多人点赞 2018-01-08 16:57:31
    recursive feature elimination ( RFE )通过学习器返回的 coef_ 属性 或者 feature_importances_ 属性来获得每个特征的重要程度。 然后,从当前的特征集合中移除最不重要的特征。在特征集合上不断的重复递归这个步骤
  • 本文章想通过比较决策树、SVM和随机森林在该数据集上的表现 导入数据,查看缺失值 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns data =pd.read_excel('./...
  • depth = 3) iris = load_iris() x, y = iris.data, iris.target dtree.fit(x, y) # 用决策树方法看特征的重要性 dtree.feature_importances_ """ array([0. , 0. , 0.58561555, 0.41438445]) 发现仅最后两个特征是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,510
精华内容 604
关键字:

svm有没有featureimportances