关于原始特征、有效特征、特征提取、特征选取

一:特征:

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

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。

 

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

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
特征工程是机器学习中非常重要的一步,它涉及到如何选择、提取、转换和组合原始数据中的特征,以便于算法能够更好地理解和利用这些特征,从而提高模型的性能。下面是一些常用的特征工程方法: 1. 特征选择:从原始数据集中选择最有用的特征,以提高模型的准确性和效率。可以使用基于统计学的方法(如方差分析、卡方检验、互信息等)或基于模型的方法(如Lasso、Ridge、Elastic Net等)来进行特征选择。 2. 特征提取:从原始数据中提取新的特征,以便于算法更好地理解和利用这些特征。可以使用基于数学的方法(如主成分分析、线性判别分析、核方法等)或基于信号处理的方法(如小波变换、傅里叶变换等)来进行特征提取。 3. 特征转换:对原始特征进行转换,以便于算法更好地理解和利用这些特征。可以使用基于数学的方法(如多项式特征、对数变换、指数变换等)或基于非线性的方法(如核方法、局部线性嵌入等)来进行特征转换。 4. 特征组合:将不同的特征进行组合,以提高模型的准确性和效率。可以使用基于数学的方法(如特征交叉、特征平方等)或基于模型的方法(如决策树、神经网络等)来进行特征组合。 在进行特征工程时,要考虑到数据的特点和问题的需求,选择适合的特征工程方法。同时,要注意特征工程过程中的数据泄漏问题,避免使用测试集中的信息来进行特征工程,以免导致评估结果偏高。 在Python中,可以使用很多库来进行特征工程,例如scikit-learn、pandas等。其中,scikit-learn提供了很多特征选择、特征提取特征转换的方法,可以很方便地进行特征工程。以下是一些常用的特征工程代码示例: ```python import numpy as np import pandas as pd from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA # 加载数据 data = pd.read_csv('data.csv') # 选择特征 X = data.drop(['label'], axis=1) y = data['label'] # 特征选择 selector = SelectKBest(f_classif, k=10) X_new = selector.fit_transform(X, y) # 特征标准化 scaler = StandardScaler() X_scaled = scaler.fit_transform(X) # 特征降维 pca = PCA(n_components=2) X_pca = pca.fit_transform(X) ``` 在上面的例子中,我们首先加载了数据,然后使用`SelectKBest`方法选择最好的10个特征,使用`StandardScaler`方法对特征进行标准化,使用`PCA`方法对特征进行降维。你可以根据数据和问题的需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值