- 实验目的
• 1、理解无监督学习中PCA、NMF降维算法原理:
• 2、掌握Sklearn实现基于PCA、NMF方法及应用
- 实验内容与要求
主成分分析(PrincipalComponentAnalysis,PCA)是最常用的一种降维方法,通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理等。PCA可以把具有相关性的高维变量合成为线性无关的低维变量称为主成分。主成分能够尽可能保留原始数据的信息。
PCA的作用主要有两个方面:一是降维,将高维数据集转化为低维数据集,以便于可视化和分析;二是提取特征,通过将数据投影到主要方差所在的子空间,PCA能够提取出数据集中的关键特征,从而更好地了解数据的分布和结构。
原理:矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推。
【sklearn中主成分分析】
在sklearn库中,可以使用sklearn.decomposition.PCA加载PCA进行降维,主要参数有: ncomponents:指定主成分的个数,即降维后数据的维度·svd solver:设置特征值分解的方法,默认为'auto’,其他可选有'ful','arpack','randomized'.
【PCA实现高维数据可视化】
目标:已知鸢尾花数据是4维的共三类样本。使用PCA实现对鸢尾花数据进行降维,实现在二维平面上的可视化。
- 实验程序与结果
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import pandas as pd
import argparse
import matplotlib.font_manager as fm
def main(n_components):
# 获取鸢尾花数据集
iris = load_iris()
Y = iris.target # 数据集标签 ['setosa', 'versicolor', 'virginica']
X = iris.data # 数据集特征 四维,花瓣的长度、宽度,花萼的长度、宽度
# 数据标准化