特征工程-特征处理(三)

特征处理

特征工程-特征处理(三)_第1张图片

连续型变量处理(二)

多特征

  1. 降维
    • PCA
      PCA是一种常见的数据分析方式,通过数据分解,将高维数据降低为低维数据,同时最大程度保持数据中保存的信息。

      from sklearn.decomposition import PCA
      A = np.array([[84,65,61,72,79,81],[64,77,77,76,55,70],[65,67,63,49,57,67],[74,80,69,75,63,74],[84,74,70,80,74,82]])
      pca = PCA(n_components=2)
      pca.fit(A)
      pca.transform(A)
      array([[-16.14860528, -12.48396235],
             [ 10.61676743,  15.67317428],
             [ 23.40212697, -13.607117  ],
             [ -0.43966353,   7.77054621],
             [-17.43062559,   2.64735885]])
      
    • LDA
      LDA是另一种常见的数据分解方法,与PCA不同的是,LDA算法的思想是将数据投影到低维空间之后,使得同一类数据尽可能的紧凑,在低维空间中保持紧凑。

      from gensim.models.ldamodel import LdaModel
      
  2. 特征选择
    • Filter:

      • 相关系数:通过计算特征时间的相关系数,根据需要,去除冗余特征数据。

      • 卡方检验:通过假设检验,计算卡方值,判断是否接受原假设,留下当前特征。

        x_c^2 = \sum {\frac{(O_i - E_i)^2} {E_i}}
        
      • 信息增益:计算加入各个特征的信息增益,来确定是否需要加入该特征。

        g(D,A) = H(D)-H(D|A)
        

        其中H(D)是训练集D的经验熵,H(D|A)是特征A给定条件的下D的经验条件熵。

    • Wrapper:通过目标函数来判断是否需要加入一个变量,通过迭代产生新的特征子集,并使用模型进行训练学习,得到评价结果

      • 完全搜索:

        • 广度优先搜索(Breadth First Search):主要采用完全搜索策略和距离度量评价函数。使用广度优先算法遍历所有可能的特征子集,选择出最优的特征子集。
        • 分支界限搜索(Branch & Bound):主要采用完全搜索和距离度量。B&B从所有的特征上开始搜索,每次迭代从中去掉一个特征,每次给评价函数的值一个限制条件。因为评价函数满足单调性原理(一个特征子集不会好于所有包含这个特征子集的更大的特征子集),所以如果一个特征使得评价函数的值小于这个限制,那么就删除这个特征。类似于在穷举搜索中进行剪枝。
      • 启发式搜索:通过增减数据中的特征,评估增减该特征对结果的影响,来评估是否需要保留该特征。

        • 前向选择:通过随机选择其中一个特征,通过模型训练,保留最优解,后续通过不断增加特征,保留最优解,直至不再需要改进。
        • 后向选择:通过随机减少一个特征,通过模型训练,保留最优解,后续通过减少特征,得到更优解,直至无法进行改进。
      • 随机搜索

        • LVF(Las Vegas Filter):使用一致性度量作为评价函数。使用拉斯维加斯算法随机搜索子集空间,这样可以很快达到最优解。
        • LVW(Las Vegas Wrapper):使用误分类率作为评价函数。使用拉斯维加斯算法随机产生子集,然后计算在这个子集上的评价指标(计算学习器上的误差);
        • 随机产生序列选择算法(RGSS , Random Generation plus Sequential Selection):使用误分类率作为评价函数。随机产生一个特征子集,然后在该子集上执行SFS和SBS算法,用于跳出局部最优值。
    • Embedded

      • 正则化:L1,L2
      • 决策树:信息增益
      • 深度学习

特征生成

通过对于数据和具体场景的理解,构建新的变量,包括但不限于无关特征之间进行交叉组合,加减乘除等

你可能感兴趣的:(特征工程,人工智能,机器学习)