余温|维度爆炸?Python实现数据压缩如此简单


余温|维度爆炸?Python实现数据压缩如此简单
余温|维度爆炸?Python实现数据压缩如此简单作者 | 萝卜
来源 | 早起Python(ID: zaoqi-python)
用Python基于主成分分析常见的三个应用场景中 , 其中有一个是「数据描述」 , 以描述产品情况为例 , 比如著名的波士顿矩阵 , 子公司业务发展状况 , 区域投资潜力等 , 需要将多变量压缩到少数几个主成分进行描述 , 压缩到两个主成分是最理想的 , 这样便可在一张图内表现出来 。
但这类分析一般做主成分分析是不充分的 , 能够做到因子分析更好 。 但因子分析的知识点非常庞杂 , 所以本文将跳过原理 , 直接通过案例再次「实战PCA分析」 , 用于主成分分析到因子分析的一个过渡 , 目标有两个:

  • 能够通过主成分分析结果来估计生成的主成分所表示的含义
  • 借以引出因子分析的优势和学习的必要性是本文的目标

余温|维度爆炸?Python实现数据压缩如此简单需求说明公司希望从事数据分析岗位的你仅用两个短句就概括出以下数据集所反映出的经济现象 。
余温|维度爆炸?Python实现数据压缩如此简单用几个长句都不一定能够很好的描述数据集的价值 , 更何况高度凝练的两个短句 , 短短九个指标就已经十分让人头疼了 , 如果表格再宽一些呢 , 比如有二三十个变量?
余温|维度爆炸?Python实现数据压缩如此简单Python实战本节我们将使用Python对上面的数据进行分析 。
数据探索import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
plt.rc('font', **{'family': 'Microsoft YaHei, SimHei'})
# 设置中文字体的支持
plt.rcParams['axes.unicode_minus'] = False
# 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei') # 解决Seaborn中文显示问题
df = pd.read_csv('城市经济.csv')
df

余温|维度爆炸?Python实现数据压缩如此简单在做主成分分析前 , 都应该进行变量间相关性的探索 , 毕竟如果变量是独立的 , 则不可压缩 。
plt.figure(figsize=(8, 6))
sns.heatmap(data=http://kandian.youth.cn/index/df.corr, annot=True) # annot=True: 显示数字
发现变量间的相关性较高 , 有变量压缩的必要性
余温|维度爆炸?Python实现数据压缩如此简单PCA建模数据标准化使用中心标准化 , 即将变量都转化成z分数的形式 , 避免量纲问题对压缩造成影响
from sklearn.preprocessing import scale
data = http://kandian.youth.cn/index/df.drop(columns='area') # 丢弃无用的类别变量
data = http://kandian.youth.cn/index/scale(data)
初步建模需要说明的是第一次的n_components


推荐阅读