主成分分析实例

article/2025/5/16 20:55:33

目录

  • 实例描述
  • 步骤
    • 确定主成分
    • 计算得分
    • 解读结果

实例描述

某面馆有各种种类的汤面,为了得知受欢迎程度,进行了在【面】、【汤】、【配料】3个维度的打分。现利用主成分分析法对数据挖掘。

步骤

确定主成分

  • 加载包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#中文文字显示问题
from pylab import mpl
# 指定默认字体
mpl.rcParams['font.sans-serif'] = ['FangSong'] 
# 解决保存图像是负号'-'显示为方块的问题
mpl.rcParams['axes.unicode_minus'] = False 
  • 读取数据
df_org = pd.read_excel("拉面.xlsx", sheetname="拉面")

在这里插入图片描述

  • 标准化数据
df_std = (df_org - df_org.mean())/df_org.std()
  • 获得相关系数矩阵
df_corr = df_std.corr()

在这里插入图片描述

  • 计算特征值和特征向量
eig_value,eig_vector=np.linalg.eig(df_corr)
#特征值排序
eig=pd.DataFrame({"eig_value":eig_value})
eig=eig.sort_values(by=["eig_value"], ascending=False) 
#获取累积贡献度
eig["eig_cum"] = (eig["eig_value"]/eig["eig_value"].sum()).cumsum()
#合并入特征向量
eig=eig.merge(pd.DataFrame(eig_vector).T, left_index=True, right_index=True)

在这里插入图片描述

  • 提取主成分
#假设要求累积贡献度要达到70%,则取2个主成分
#成分得分系数矩阵(因子载荷矩阵法)
loading = eig.iloc[:2,2:].T
loading["vars"]=df_std.columns

在这里插入图片描述

计算得分

  • 确定分析精度
    从累积贡献度可以看到,前2个主成分的累积贡献度达到了79%,就是本次的分析精度。
  • 计算主成分得分
    标准化数据 ·因子载荷矩阵
score = pd.DataFrame(np.dot(df_std,loading.iloc[:,0:2]))

在这里插入图片描述

解读结果

  • 查看变量在新坐标系中的位置。
plt.plot(loading[0],loading[1], "o")
xmin ,xmax = loading[0].min(), loading[0].max()
ymin, ymax = loading[1].min(), loading[1].max()
dx = (xmax - xmin) * 0.2
dy = (ymax - ymin) * 0.2
plt.xlim(xmin - dx, xmax + dx)
plt.ylim(ymin - dy, ymax + dy)
plt.xlabel('第1主成分')
plt.ylabel('第2主成分')
for x, y,z in zip(loading[0], loading[1], loading["vars"]):plt.text(x, y+0.1, z, ha='center', va='bottom', fontsize=13)
plt.grid(True)
plt.show()

影响力与正负数无关,只看绝对值。
可以看到 变量中【汤】对第1主成分影响较大;【配料】对第2主成分影响略大于【面】。

在这里插入图片描述

  • 查看每个数据在新坐标系中的位置
plt.plot(score[0],score[1], "o")
xmin ,xmax = score[0].min(), score[0].max()
ymin, ymax = score[1].min(), score[1].max()
dx = (xmax - xmin) * 0.2
dy = (ymax - ymin) * 0.2
plt.xlim(xmin - dx, xmax + dx)
plt.ylim(ymin - dy, ymax + dy)
plt.xlabel('第1主成分')
plt.ylabel('第2主成分')
for x, y,z in zip(score[0], score[1], score.index):plt.text(x, y+0.1, z, ha='center', va='bottom', fontsize=13)
plt.grid(True)
plt.show()

由于第1主成分的所有系数都是负值,所以其得分负向越大,该数据对应的第1主成分得分越高。
可以看到4号数据第1主成分得分最高,说明它的【汤】最受欢迎;同理,1号数据第2主成分得分最高,其【配料】评价最高。

在这里插入图片描述

  • 备注
    此案例为了表明具体算法过程。实际应用中,可使用被封装的PCA包:
from sklearn.decomposition import PCA

http://chatgpt.dhexx.cn/article/EXqGXsVG.shtml

相关文章

因子分析模型(主成分解)、及与主成分分析模型的联系与区别(附详细案例)

* * * * * * * * 因子分析是主成分分析的推广和发展,它也是多元统计分析中将为的一种方法. 因子分析是研究相关阵和或协方差阵的内部依赖关系,它将多个变量综合为少数几个因子,以再现原始变量与因子之间的相关关系. 因子分析的思想一般…

PCA主成分分析实战案例

遇到的问题: X df.loc[:,0:4].values#提取第0-3列 y df.loc[:,4].values #提取第4列报错: TypeError: cannot do slice indexing on Index with these indexers [0] of type int修改代码为: X df.iloc[:,0:4].values#提取第0-3列 y df…

主成分分析法概述、案例实例分析

http://hi.baidu.com/weizican/blog/item/9e816926f2977521d5074257.html 主成分分析法 主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。在实证问题研究中,为了全面、系统地分析问题,我们必须考虑…

清风数学建模学习笔记——主成分分析(PCA)原理详解及案例分析

主成分分析 本文将介绍主成分分析(PCA),主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。 一般来说,当…

多元统计及R语言案例分析 (主成分和因子分析对学生成绩神秘联系分析)

嗨喽! 大家好,我是“流水不争先,争得滔滔不绝”的翀,18双非本科生一枚,正在努力!欢迎大家来交流学习,一起学习数据分析,希望我们一起好好学习,天天向上,目前是小社畜一枚…

超详细SPSS主成分分析计算指标权重(一)

一、指标权重计算确定的困惑 相信很多写过或者正在写指标处理类论文的朋友都曾对如何计算指标权重充满困惑,到底是用熵值法,还是主成分分析法?或者其他各种看起来奥妙无穷却难以上手操作的神奇方法?好不容易确定要选用主成分分析…

一文读懂 主成分分析 与 因子分析

2023-2-20更新:  修改了一些文字错误,优化了排版,增加了一些拓展内容,祝大家学业有成!(期待三连😁😁) 目录 一、 主成分分析二、因子分析三、多元共线性问题简介3.1 多…

主成分之综合竞争力案例分析

一、案例背景 1.案例说明 研究调查100家公司2010-2013年关于财务方面的具体数据,这些财务指标维度分别为盈利能力、偿债能力、运营能力、发展能力以及公司治理。其中每个维度分别有几个分析项,但是有些指标是越大越好,有些指标是越小越好。…

数据分析,主成分分析例题

已知协方差矩阵求X的各主成分以及主成分的贡献率 主成分分析 原理:找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,且彼此之间互不相关 统计方法:主成分分析(主分量分析&…

主成分分析PCA案例及原理

1. 主成分分析PCA案例 https://blog.csdn.net/goodshot/article/details/78080220 http://www.cnblogs.com/zhangchaoyang/articles/2222048.html 附: 使用上方链接的解释: 2. 主成分分析(PCA)原理总结http://www.cnblogs.com/pinard/p/623…

主成分分析简单例子

一、数据降维 对于现在维数比较多的数据,我们首先需要做的就是对其进行降维操作。降维,简单来说就是说在尽量保证数据本质的前提下将数据中的维数降低。降维的操作可以理解为一种映射关系,例如函数,即由原来的二维转换成了一维。处…

spss分析方法-主成分分析

spss分析方法-主成分分析(转载) 主成分分析利用的是“降维”的思想,利用原始变量的线性组合组成主成分。在信息损失较小的前提下,把多个指标转化为几个互补相关的综合指标。下面我们主要从下面四个方面来解说: 实际…

主成分分析案例

去百度文库上一搜,是很老的题目了。这里所做的只是准备工作,为后面更多的数据处理做准备。 例题 1.对原始资料矩阵进行标准化处理 zef_data xlsread(chengshi.xls); z zscore(zef_data) z 1.1977 0.7149 0.6674 1.1390 0.9189 3.111…

快速搞定PCA(主成分分析)(原理 代码 案例)

目录 一、基本介绍 1.1原理 1.2主成分分析的几何解释 1.3主要步骤 1.4主成分个数的选取原则 二、主成分分析代码 2.1MATLAB代码 2.2Python代码 三、实用案例 一、基本介绍 1.1原理 主成分分析是最常用的线性降维方法,通过某种线性投影,将高维的数…

【机器学习】主成分分析实现案例 (PCA)

一、说明 这篇文章的目的是提供主成分分析(PCA)的完整和简化的解释。我们将逐步介绍它是如何工作的,这样每个人都可以理解并使用它,即使是那些没有强大数学背景的人。 PCA是网络上广泛覆盖的机器学习方法,并且有一些关…

什么是主成分分析?经典案例解析变量降维

1、作用 主成分分析将多个有一定相关性的指标进行线性组合,以最少的维度解释原数据中尽可能多的信息为目标进行降维,降维后的各变量间彼此线性无关,最终确定的新变量是原始变量的线性组合,且越往后主成分在方差中的比重也小&…

比较两篇文章的相似性方法

对于这个题目,开始毫无头绪,后来经过查阅资料现在讲方法总结如下: 1、利用余弦定理 我们知道向量 a,b之间的夹角可用余弦定理求得: 如果夹角的余弦值越小,那么夹角也越大。如果2个向量相等,那么其值为1。利…

Python案例分析|文本相似度比较分析

本案例通过设计和实现有关文本相似度比较的类Vector和Sketch,帮助大家进一步掌握设计Python类来解决实际问题的能力。 01、文本相似度比较概述 通过计算并比较文档的摘要可实现文本的相似度比较。 文档摘要的最简单形式可以使用文档中的k-grams(k个连…

计算机如何判断两篇文章相似性

这个仍然是极客时间上,关于《索引技术核心20讲》的一篇笔记同时结合自己的理解加了点料,这个专栏虽然只有20讲,但是真不错,老师解答问题还是很积极,回答字数经常比问题字数多。有兴趣的朋友可以到我星球(在…

ai写文章检测原理(文章相似度检测)

小编来了!今天要和大家聊一聊关于ai写文章检测原理的评测对比。究竟哪种方法更加高效准确呢?让我们一起来看看吧! 概括:本文将从多个角度对ai写文章检测原理进行评测对比,包括算法准确性、速度、自动化程度、用户体验…