降维算法PCA和SVD

维度概念

  • 对于数组Series来讲,维度就是shape返回几个数字就是几维

shape(2,) 不区分行列,返回的是一维的结果,2行或2列
shape(3,4) 返回的是二维数据,3行 4列
shape(2,3,4) 返回的是三维数据,2张 3行 4 列 的表

  • 一张表中:行表示的是 样本,列表示的是特征

对于 每一张表,维度 是特征的数量,除了索引外,一个特征就是一个一维,两个特征就是二维

  • 降维算法的降维,指的是 降低 特征矩阵中特征的数量

方差越小,表示特征包含的信息量 越低 ,即取方差大的特征向量

矩阵分解

  • 找出 n个新的特征向量,让数据压缩到少量 特征上,且总信息不损失太多

sklearn中的降维算法

  • 包含在模块 decomposition中
  • 降维算法 是创造 特征
  • 重要参数

n_components 降维后 所需要的维度

  • PCA降维
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
# 加载数据
iris = load_iris()
y = iris.target
X = iris.data
X.shape

import pandas as pd
# 调用 PCA
pca = PCA(n_components=2)
x_dr =pca.fit_transform(X)
# 看看数据情况
x_dr[y == 0,0]
# 看看标签
iris.target_names

# 降维后 数据可视化
colors = ['red','black','orange']
plt.figure()
for i in [0,1,2]:
    plt.scatter(x_dr[y==i,0]
               ,x_dr[y==i,1]
                ,c=colors[i]
                ,label = iris.target_names[i]
               )
plt.legend()
plt.title('PCA of IRIS dataset')
plt.show()
PCA降维后可视化.png

你可能感兴趣的:(降维算法PCA和SVD)