精华内容
下载资源
问答
  • 特征选取

    2019-09-21 08:26:28
    特征选取的方式  文档频率 信息增益(决策树中的信息熵) 户信息量 λ2测试 转载于:https://www.cnblogs.com/ChenAlong/p/5228961.html...
    • 特征选取的方式
      •   文档频率
      •       信息增益(决策树中的信息熵)
      •       户信息量
      •      λ测试

    转载于:https://www.cnblogs.com/ChenAlong/p/5228961.html

    展开全文
  • 图像特征选取检测.rar

    2020-03-01 01:53:12
    大概花了三四天写的程序,里面有个ImageAreaLearnToSetDlg文件,VC写的用鼠标按键响应选取图像或视频里面的矩形区域特征,即选取需要检测的特征,onLbuttonDown,onMouseMove等函数里面实现,只作单区域特征选取,...
  • 一:特征: 特征分为原始特征、有效特征。 1.1 原始特征: 可以通过测量直接得到的特征。...有代表性、分类性能好的特征(通常是采用特征提取、特征选取方法获得的)。 特点: ①类内稳定,即类内差异小,...

    一:特征:

    特征分为原始特征、有效特征。

    1.1 原始特征:

    可以通过测量直接得到的特征

    原始特征通常有很大冗余,如果直接将原始特征作为分类特征送入分类器,不仅使分类器复杂、计算量大,且分类错误率不一定小,因此有必要减少特征数目,以获取少而精的分类特征。

    1.2 有效特征:

    有代表性、分类性能好的特征通常是采用特征提取、特征选取方法获得的)。

    特点:

    ①类内稳定,即类内差异小,同一类具有稳定性(在特征值取值上)。

    ②类间差异大(选择的特征对不同类应有差异),即不同类间特征值差异要比较大。

        要降低误识率,则应使类间差异 > 类内差异。

    ③具有很好的可分性,具有很大识别信息量。

    ④具有可靠性,不是似是而非的、模棱两可的。

    ⑤强独立性,不重复、相关性弱。

    ⑥损失信息量小,数量尽量少。、

    1.3 特征类别:

    从特征类别上特征可以分为物理特征、结构特征、数字特征。

    物理特征:直接的、易感知的的特征,如身高,但未必非常有效。

    结构特征:较抽象的、较易感知的,表达能力较强的特征,如指纹。

    数字特征:为表征对象而设立的特征,抽象的、不易感知的,如ID。有时是物理特征和结构特征的计算结果,有时与对象固有特征没有关系。

     

    二:数据降维:

    在上一节中我们知道了原始特征与有效特征。而在一般模式识别过程中,为了使分类器不过于复杂,通常需要对原始特征进行特征提取得到代表性较强的特征,然后通过特征选取得到对分类最有利的有效特征,从而达到简化计算,降低复杂度的目的。

    2.1 特征提取 Feature Extraction

    通过映射(或变换)的方法获取有效的特征,达到特征空间降维的目的。经过映射后的特征是原始特征的某种组合,通常是线性组合。

    特征提取的方法常用的有PCA(主成分分析法,Principle Component Analysis)、LDA(Fisher判别分析法,Fisher Discriminnant Analysis,FDA)。

    2.2 特征选取 Feature Selection

    从一组特征中挑选出对分类最有利的特征,以达到降低特征空间维数的目的。

    特征选取的方法常用的有Filter method、Wrapper method。

     

    特征提取、特征选取的目的是在不降低或很少降低分类结果性能的情况下,降低特征空间的维数。这么做的主要作用就是:简化计算、简化特征空间结构。

    展开全文
  • 下面从以下几个方面介绍特征重要性:1 特征重要性概念2 特征重要性方法2.1 系数作为特征重要性2.2 决策树特征重要性2.3 排列特征重要性2.4 重要特征选取1 特征重要性概念特征重要性指的是为预测建模中的输入特征分配...

    8cc9c77ac852a117be2403432f719ed8.png

    特征重要性指的是根据输入特征在预测目标变量时的有用程度给它们打分的技术。

    计算特征重要性的方法很多,如统计上的相关系数,线性模型的相关系数、决策树和排列重要性分数。

    下面从以下几个方面介绍特征重要性: 

    • 1 特征重要性概念

    • 2 特征重要性方法

      • 2.1 系数作为特征重要性

      • 2.2 决策树特征重要性

      • 2.3 排列特征重要性

      • 2.4 重要特征选取

    1 特征重要性概念

    特征重要性指的是为预测建模中的输入特征分配分数的一种技术,即表示每个特征在进行预测时的相对重要性。

    在数值预测(回归)和标签预测(分类)中,可以计算特征重要性得分。

    重要性得分在预测建模型中,可以使我们更好的理解数据和模型以及减少输入特征数。

    特征重要性得分在预测建模中具有重要的作用:

    • 提供对数据的洞察。相对得分可以突出哪些特征与目标最相关以及哪些特征与目标最不相关。领域专家可能会对此进行解释,并将其用作收集更多或不同数据的基础。
    • 提供对模型的洞察。多数重要性得分是通过预测模型在数据集上的拟合计算得到的。通过对重要性得分检查,可以深入了解特定模型,以及在进行预测时,哪些特征对模型来说是最重要的,哪些是最不重要的。这可以作为模型支持它的模型解释。
    • 为降维和特征选择提供依据,从而提高预测模型的效率和有效性。这可以通过重要性得分来选择要删除的特征(最低分)或要保留的特征(最高分)来实现。这是一种特征选择,可以简化用于建模的问题,加快建模过程(删除特征称为降维),在某些情况下,还可以提高模型的性能。

    通常,我们希望量化预测因素(特征)和结果之间的关系强度。在筛选时,对预测因素排名(ranking)是很有用的。

    特征重要性得分可用于包裹模型(wrapper model),例如SelectFromModel类[1],来执行特征选择。

    2 特征重要性方法

    首先准备数据:

    from sklearn.datasets import make_classification, make_regression# 创建分类数据集,5个有用特征,5个无用特征
    X_class,y_class=make_classification(n_samples=1000,n_features=10,n_informative=5,n_redundant=5,random_state=1)
    X_reg,y_reg=make_regression(n_samples=1000,n_features=10,n_informative=5,random_state=1)

    2.1 系数作为特征重要性

    线性机器学习算法拟合的模型的预测是输入值的加权和,如线性回归、逻辑回归、加入正则项的岭回归、套索回归和弹性网络。

    所有这些算法都是通过找到一组系数用于加权和,然后用于预测。这些系数可以直接用作特征重要性评分的一种粗略类型。

    下面看一下如何使用系数作为分类和回归的重要特征。我们将在数据集上拟合一个模型来找到系数,然后总结每个输入特征的重要性分数,最后创建一个条形图来了解这些特征的相对重要性。

    # 系数作为特征重要性from sklearn.linear_model import LinearRegression,LogisticRegressionimport matplotlib.pyplot as plt# 定义函数def plot_importance(model,X,y):
        model.fit(X,y)
        importance=model.coef_if importance.ndim==2:importance=importance[0]for i,v in enumerate(importance):
            print('Feature: %0d, Score: %.5f'%(i,v))  
        plt.bar([*range(len(importance))],importance)    
        plt.show()# 1 线性回归特征重要性# 在回归数据集上拟合线性回归模型,并检索coeff_属性,该属性包含为每个输入变量找到的系数# 这些系数可以为粗略的特征重要性评分提供依据。这假设输入变量具有相同的比例,或者在拟合模型之前已经进行了比例调整。
    model = LinearRegression()
    plot_importance(model,X_reg,y_reg) # 选出了5个重要特征# 2 逻辑回归# 输入数据已进行比例调整
    model = LogisticRegression()
    plot_importance(model,X_class,y_class) # 看不出哪个重要#这是类0和1的分类问题。系数是正的和负的。#正的分数表示预测类别1的特征,负的分数表示预测类别0的特征。

    1bcddd9e7b68e897b35f3e64806342ca.png
    c0bdd78482dc59cf933c2eb6dff80d48.png

    2.2 决策树特征重要性

    决策树算法,如分类和回归树(CART),在用于选择分割点的准则如基尼指数或熵的减少的基础上提供重要性得分。

    # 决策树、随机森林,XGBoost重要性from sklearn.tree import DecisionTreeClassifier,DecisionTreeRegressorfrom sklearn.ensemble import RandomForestClassifier,RandomForestRegressorfrom xgboost import XGBRegressor,XGBClassifier# 定义函数def plot_importance(model,X,y):
        model.fit(X,y)
        importance=model.feature_importances_if importance.ndim==2:importance=importance[0]for i,v in enumerate(importance):
            print('Feature: %0d, Score: %.5f'%(i,v))  
        plt.bar([*range(len(importance))],importance)    
        plt.show()# 1 CART特征重要性# 1.1 回归
    model = DecisionTreeRegressor()
    plot_importance(model,X_reg,y_reg) # 选出了3个重要特征# 1.2 分类
    model = DecisionTreeClassifier()
    plot_importance(model,X_class,y_class) # 选出了4个重要特征# 2 随机森林# 2.1 回归
    model = RandomForestRegressor()
    plot_importance(model,X_reg,y_reg) # 选出了2-3个重要特征# 2.2 分类
    model = RandomForestClassifier()
    plot_importance(model,X_class,y_class) # 选出了2-3个重要特征# 3 XGBoost# 3.1 回归
    model = XGBRegressor()
    plot_importance(model,X_reg,y_reg) # 选出了2-3个重要特征# 3.2 分类
    model = XGBClassifier()
    plot_importance(model,X_class,y_class) # 选出了7个重要特征

    1f48a1e767debd7750948ecca99a4806.png
    cba2e7fcab951497191122dc07bf77d8.png
    12b2d86575e4befcdd69aa57b86c877b.png
    ce10a07ff847fe0038cd3765da6c7f50.png
    c5a009cad05e318bd9f1d18248105021.png
    c8328564adbfa1fa4a1c54d3b246732f.png

    2.3 排列特征重要性

    排列特征重要性(permutation feature importance )[2]是一种计算相对重要性分数的技术,独立于所使用的模型。

    首先模型对数据进行拟合,该模型自身不支持特征重要性评分。然后,该模型对数据集进行预测,但是数据集中的某一个特征的值被打乱。对数据集中的每个特征都重复此操作。然后整个过程重复3,5,10或更多次。每个输入特征的平均重要性分数(以及给定重复的分数分布)作为结果。

    该方法可用于回归和分类,但需要提供一个性能指标作为重要性评分的基础,如回归的均方误差和分类的准确率。

    # 排列特征重要性# 模型选用不支持特征选择的KNNfrom sklearn.inspection import permutation_importancefrom sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor# 定义函数def plot_importance(model,X,y,scoring):
        model.fit(X,y)
        results=permutation_importance(model,X,y,scoring=scoring)
        importance=results.importances_meanif importance.ndim==2:importance=importance[0]for i,v in enumerate(importance):
            print('Feature: %0d, Score: %.5f'%(i,v))  
        plt.bar([*range(len(importance))],importance)    
        plt.show()# 1 回归
    model = KNeighborsRegressor()
    plot_importance(model,X_reg,y_reg,scoring='neg_mean_squared_error'# 选出了2-3个重要特征# 2 分类
    model = KNeighborsClassifier()
    plot_importance(model,X_class,y_class,scoring='accuracy'# 选出了2-3个重要特征

    1baad709ec9e47bd7174d5a01771927e.png
    45fb6ac4d3974fc6b5bfd87fb22060c7.png

    2.4 重要特征选取

    特征重要性得分可以用来解释数据,但也可以直接用来排序和选择对预测建模最有用的特征。

    用下面的列子进行说明。

    # 1 用所有特征建模并评估模型表现from sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom sklearn.feature_selection import SelectFromModel
    X_train,X_test,y_train,y_test=train_test_split(X_class,y_class,test_size=0.33,random_state=1)
    model=LogisticRegression(solver='liblinear')
    model.fit(X_train,y_train)
    yhat=model.predict(X_test)
    accuracy=accuracy_score(y_test,yhat)
    print('Accuracy: %.2f'%(accuracy*100))# 2 从模型中进行特征选择
    fs=SelectFromModel(RandomForestClassifier(n_estimators=200),max_features=5)# 特征选择方法对训练数据进行拟合,然后计算所有输入特征的重要性得分并排序最后选取特征# learning relationship from training datda
    fs.fit(X_train,y_train)# transform train input data
    X_train_fs=fs.transform(X_train)# transform test input data
    X_test_fs=fs.transform(X_test)
    model=LogisticRegression(solver='liblinear')
    model.fit(X_train_fs,y_train)
    yhat=model.predict(X_test_fs)
    accuracy=accuracy_score(y_test,yhat)
    print('Accuracy: %.2f'%(accuracy*100))# Accuracy: 84.55# Accuracy: 84.55

    可以看到模型在数据集上取得了相同的性能,尽管只有一半的输入特征。正如预期的那样,随机森林计算出的特征重要性得分允许我们对输入特征进行排序,并删除那些与目标变量无关的特征。

    参考资料

    [1]

    SelectFromModel类: https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectFromModel.html

    [2]

    排列特征重要性: https://scikit-learn.org/stable/modules/permutation_importance.html

    31aa4fceadc998bfcd5cabb351a86a59.png

    展开全文
  • 特征选取的优秀方法

    2013-06-06 14:54:31
    一种基于群组多维特征选取的方法在公司财务分析中的应用
  • feature selection特征选取matlab实现原程序feature selection特征选取matlab实现原程序feature selection特征选取matlab实现原程序feature selection特征选取matlab实现原程序feature selection特征选取matlab实现...
  • 文介绍了文本分类的概念和向量空间模型,分类系统的性能评价参数与粗 糙集基本理论本分类特征选取技术研究
  • 提出一种新的特征选取算法,实验表明,该特征选取算法与一般特征选取算法(如F-Score算法)相比,对同一测试数据集计算的结果具有相同的降序排列结果,而且有更好的特征刻画量化指标,分界线更明显,表明新的特征...
  • 针对资源分配网络(RAN)算法存在隐含层节点受初始学习...实验结果表明,新的RAN学习算法具有学习速度快、网络结构紧凑、分类效果好的优点,而且,在语义特征选取的同时实现了降维,大幅度减少文本分类时间,有效提高了系...

空空如也

空空如也

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

特征选取