线性映射方法
以下方法为基于线性映射处理线性数据的方法。
主成分分析(PCA)
关于PCA的原理以及实现在PCA主成分分析已经详细叙述,这里不做叙述。
因子分析
关于因子分析的愿意以及实现在因子分析(Factor Analyse)推导以及R语言实现已经详细叙述,这里不做叙述。
流形学习
核化线性(KPCA)降维
是一种非线性映射的方法,核主成分分析是对PCA的一种推广。KPCA主要利用了核函数,即对于当前非线性不可分数据,将其映射至更高维的空间至线性可分,再进行降维,而其中利用核函数可求得内积,进而得到样本在特征向量上的投影。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets,decomposition,manifold
def load_data():
iris=datasets.load_iris()
return iris.data,iris.target
def test_KPCA(*data):
X,Y=data
kernels=['linear','poly','rbf','sigmoid']
for kernel in kernels:
kpca=decomposition.KernelPCA(n_components=None,kernel=kernel)
kpca.fit(X)
print("kernel=%s-->lambdas:%s"%(kernel,kpca.lambdas_))
def plot_KPCA(*data):
X,Y=data
kernels = ['linear', 'poly', 'rbf', 'sigmoid']
fig=plt.figure()
colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)
for i,kernel in enumerate(kernels):
kpca=decomposition.KernelPCA(n_components=2,kernel=kernel)
kpca.fit(X)
X_r=kpca.transform(X)
ax=fig.add_subplot(2,2,i+1)
for label,color in zip(np.unique(Y)