主成分分析法

主成分分析法主要用于数据降维,将多个指标通过相互间的比较(方差)包装,最终取占主导地位的几个。

基本步骤

指标标准化 -> 求相关系数矩阵 -> 求协方差特征根特征向量 -> 确定主成分及解释

基本原理

一般在求解主成分时,判断依据是累计方差贡献值大于80%或者特征根大于1

实现条件

1.相关性检验

相关性检验一般采用KMO和Bartlett方法:

2.综合变量互不相关

互不相关就说明要使方差尽可能大。

取主成分

import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

plt.rcParams["font.family"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

# 1. 生成模拟信用评分数据集
# 数据集包含客户的4个特征:年收入、信用卡余额、贷款金额和信用评分
np.random.seed(42)
n_samples = 100

# 年收入(单位:美元),随机生成范围 20k 到 100k
income = np.random.randint(20000, 100000, size=n_samples)

# 信用卡余额(单位:美元),随机生成范围 0 到 10k
credit_card_balance = np.random.randint(0, 10000, size=n_samples)

# 贷款金额(单位:美元),随机生成范围 0 到 50k
loan_amount = np.random.randint(0, 50000, size=n_samples)

# 信用评分(范围 300 到 850)
credit_score = np.random.randint(300, 850, size=n_samples)

# 组合成 DataFrame
df = pd.DataFrame({
    'Income': income,
    'Credit Card Balance': credit_card_balance,
    'Loan Amount': loan_amount,
    'Credit Score': credit_score
})

print("原始数据集的前5行:")
print(df.head())

# 2. 数据标准化处理
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)

# 3. 使用 PCA 进行降维,将 4 维数据降至 2 维
pca = PCA(n_components=2)
df_pca = pca.fit_transform(df_scaled)

# 创建 DataFrame 保存降维结果
df_pca = pd.DataFrame(data=df_pca, columns=['PC1', 'PC2'])

# 4. 分析主成分的重要性
explained_variance = pca.explained_variance_ratio_
print(f"\n主成分1解释的方差比例: {explained_variance[0]:.2f}")
print(f"主成分2解释的方差比例: {explained_variance[1]:.2f}")

# 5. 可视化降维后的数据
plt.figure(figsize=(8, 6))
plt.scatter(df_pca['PC1'], df_pca['PC2'], s=50, edgecolor='k')
plt.xlabel('主成分1 (PC1)')
plt.ylabel('主成分2 (PC2)')
plt.title('信用评分数据的 PCA 降维结果')
plt.grid(True)
plt.show()

# 6. 查看 PCA 的主成分(特征向量)
print("\n主成分(特征向量):")
print(pca.components_)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值