← 返回题库
初级

USArrests数据集PCA双标图

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import numpy as np
data = pd.read_csv('https://liangdaima.com/static/data/statistics/USArrests.csv', index_col=0)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(data)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
loadings = pca.components_.T * np.sqrt(pca.explained_variance_)
plt.figure(figsize=(10, 8))
plt.scatter(X_pca[:, 0], X_pca[:, 1], alpha=0.7)
for i, col in enumerate(data.columns):
    plt.arrow(0, 0, loadings[i, 0]*3, loadings[i, 1]*3, head_width=0.1, head_length=0.1, fc='red', ec='red')
    plt.text(loadings[i, 0]*3.2, loadings[i, 1]*3.2, col, fontsize=12, color='red')
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.title('USArrests PCA双标图')
plt.grid(True)
plt.show()
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码