1.算法金 | 通透!!十大回归算法模型最强总结2.算法金 | 吴恩达:机器学习的六个核心算法!3.算法金 | 详解过拟合和欠拟合!性感妩媚 VS 大杀四方4.算法金 | 突破最强算法模型,决策树算法!!5.算法金 | 突破最强算法模型!!学会随机森林,你也能发表高水平SCI6.算法金 | 机器学习模型评价、模型与算法选择(综述)7.算法金 | 你真的完全理解 Logistic 回归算法了吗
8.算法金 | 再见,PCA 主成分分析!
9.算法金 | 一文读懂K均值(K-Means)聚类算法10.算法金 | 再见!!!KNN11.算法金 | 读者问了个关于深度学习卷积神经网络(CNN)核心概念的问题12.算法金 | 不愧是腾讯,问基础巨细节 。。。13.算法金 | LSTM 原作者带队,一个强大的算法模型杀回来了14.算法金 | AI 基石,无处不在的朴素贝叶斯算法15.算法金 | A - Z,115 个数据科学 机器学习 江湖黑话(全面)16.算法金 | 一文彻底理解机器学习 ROC-AUC 指标17.算法金 | 一个强大的算法模型,多项式回归!!18.算法金 | 一个强大的算法模型,GP !!19.算法金 | 再见!!!K-means20.算法金 | 选择最佳机器学习模型的 10 步指南21.算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!22.李沐:用随机梯度下降来优化人生!23.算法金 | 一个强大的算法模型:t-SNE !!24.算法金 | 再见!!!梯度下降(多图)25.审稿人:拜托,请把模型时间序列去趋势!!26.算法金 | 奇奇怪怪的正则化27.算法金 | 统计学的回归和机器学习中的回归有什么差别?28.算法金 | K-均值、层次、DBSCAN聚类方法解析29.算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全30.资深博导:我以为数据预处理是常识,直到遇到自己的学生31.算法金 | 必会的机器学习评估指标32.算法金 | 协方差、方差、标准差、协方差矩阵33.算法金 | 线性回归:不能忽视的五个问题34.算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice35.算法金 | 我最常用的两个数据可视化软件,强烈推荐36.算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖37.算法金 | 一个强大的算法模型,GPR !!38.算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环39.算法金 | 时间序列预测真的需要深度学习模型吗?是的,我需要。不,你不需要?40.算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化41.算法金 | 这绝对是不一样的,独一无二的逻辑回归算法体验

大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣]



1. 概念:数据降维的数学方法
定义
- 主成分分析(PCA)是一种统计方法,通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这组新的变量称为主成分。
- 大白话,PCA能够从数据中提取出最重要的特征,通过减少变量的数量来简化模型,同时保留原始数据集中的大部分信息。
特点
- PCA是最广泛使用的数据降维技术之一,能够有效地揭示数据的内部结构,减少分析问题的复杂度。
应用领域
- 图像处理:图像压缩和特征提取。
- 金融数据分析:风险管理、股票市场分析。
- 生物信息学:基因数据分析、疾病预测。
- 社会科学研究:问卷数据分析、人口研究。


2 核心原理:方差最大化
- 方差最大化:
- PCA通过找到数据方差最大的方向来确定主成分,然后找到次大方向,且这些方向必须是相互正交的。
- 这样做的目的是保证降维后的数据能够保留最多的原始数据信息。

- 计算步骤:
- 数据标准化:使得每个特征的平均值为0,方差为1。
- 计算协方差矩阵:反映变量之间的相关性。
- 计算协方差矩阵的特征值和特征向量:特征向量决定了PCA的方向,特征值决定了方向的重要性。
- 选择主成分:根据特征值的大小,选择最重要的几个特征向量,构成新的特征空间。


3 优缺点分析
- 优点:
- 降维效果显著:能够有效地减少数据的维度,同时尽可能地保留原始数据的信息。
- 揭示数据结构:有助于发现数据中的模式和结构,便于进一步分析。
- 无需标签数据:PCA是一种无监督学习算法,不需要数据标签。
- 缺点:
- 线性限制:PCA只能捕捉到数据的线性关系和结构,对于非线性结构无能为力。
- 方差并非信息量的唯一衡量:有时候数据的重要性并不仅仅体现在方差上,PCA可能会忽略掉一些重要信息。
- 对异常值敏感:异常值可能会对PCA的结果产生较大影响。


4 PCA 实战
介绍一个用于主成分分析的 Python 库
PCA的核心是构建在sklearn功能之上,以便在与其他包结合时实现最大的兼容性。
除了常规的PCA外,它还可以执行SparsePCA和TruncatedSVD。
其他功能包括:
- 使用Biplot绘制载荷图
- 确定解释的方差
- 提取性能最佳的特征
- 使用载荷绘制的散点图
- 使用Hotelling T2和/或SPE/Dmodx进行异常值检测
pip install pca
from pca import pca # 导入PCA模块
import numpy as np
import pandas as pd
# Dataset
from sklearn.datasets import load_iris # 导入鸢尾花数据集
# 从鸢尾花数据集中创建DataFrame对象
X = pd.DataFrame(data=load_iris().data, columns=load_iris().feature_names, index=load_iris().target)
# 初始化PCA模型,指定主成分数量为3,并进行数据标准化
model = pca(n_components=3, normalize=True)
# 拟合并转换数据
out = model.fit_transform(X)
# 创建只包含方向的图
fig, ax = model.biplot(textlabel=True, legend=False, figsize=(10, 6))

下面我们使用 sklearn 里面的 PCA 工具,在一组人脸数据上直观感受下,
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_olivetti_faces
from sklearn.decomposition import PCA
# 加载Olivetti人脸数据集
faces_data = fetch_olivetti_faces()
X = faces_data.data
# 可视化原始图像和对应的主成分
n_images = 4 # 每行显示的图像数量
n_rows = 4 # 总共的行数
fig, axes = plt.subplots(n_rows, 2*n_images, figsize=(16, 10), subplot_kw={'xticks':[], 'yticks':[]})
# 使用PCA降维
n_components = 50 # 设置PCA保留的主成分数量
pca = PCA(n_components=n_components, whiten=True, random_state=42)
X_pca = pca.fit_transform(X)
for r in range(n_rows):
for i in range(n_images):
index = r * n_images + i
axes[r, 2*i].imshow(X[index].reshape(64, 64), cmap='gray')
axes[r, 2*i].set_title(f'大侠 {index+1} 图像', fontproperties='SimHei') # 手动设置字体
axes[r, 2*i+1].imshow(pca.inverse_transform(X_pca[index]).reshape(64, 64), cmap='bone')
axes[r, 2*i+1].set_title(f'大侠 {index+1} 主成分', fontproperties='SimHei') # 手动设置字体
plt.tight_layout()
plt.show()
我们保留了前 50 个主成分
通过可视化对比图直观感受下,信息保留了多多少,损失了多少
通过对比图可以看到,某一张人脸的基本信息都保留了下来
如果保留 前 100 个主成分,那就更接近原始图片了
你也可以试下,保留 1 个主成分会怎样?通过保留的信息你还认得出来哪过大侠是哪过吗


[ 算法金,碎碎念 ]
- 最近 【不上班】 这个词频繁出现在朋友圈,貌似很火
- 不上班,站着把钱赚了,大概率不可能的
- 不上班,躺着把钱赚了(别想歪了),更是绝大概率不可能的
- 有些圈子,天然就是靠博眼球来筛选用户,真的很可怕
- 想到了一句话【当大家都有病时,你就不觉得这是病了】
- 在这种圈子呆久了,大概率会沦陷的,别以外自己不会,咱都是普通人
- 大部分人都是普通人,普通人通常都不信概率,而概率恰恰是反映常态 分布的
- 悲剧,卒~
全网同名,日更万日,让更多人享受智能乐趣
烦请大侠多多 分享、在看、点赞,助力算法金又猛又持久、很黄很 BL 的日更下去;我们一起,让更多人享受智能乐趣
同时邀请大侠 关注、星标 算法金,围观日更万日,助你功力大增、笑傲江湖