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
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:通过目标函数来判断是否需要加入一个变量,通过迭代产生新的特征子集,并使用模型进行训练学习,得到评价结果
完全搜索:
启发式搜索:通过增减数据中的特征,评估增减该特征对结果的影响,来评估是否需要保留该特征。
随机搜索
Embedded
通过对于数据和具体场景的理解,构建新的变量,包括但不限于无关特征之间进行交叉组合,加减乘除等