【python】PCA计算权重

您所在的位置:网站首页 simulink噪声滤波器 【python】PCA计算权重

【python】PCA计算权重

2023-09-08 15:47| 来源: 网络整理| 查看: 265

【python】PCA计算权重

将分步骤基于python实现PCA计算权重,代码在pycharm中执行。

文章目录 【python】PCA计算权重1.引入库2.读取数据3.数据标准化4.PCA(主成分分析)4.确定权重5.对权重结果进行归一化 总结

1.引入库

将需要的库导入pycharm

import numpy as np import pandas as pd from sklearn.decomposition import PCA from sklearn import preprocessing 2.读取数据

filename为文件名,将数据转换为dataframe格式

# 数据导入 csv_file = "filename.csv" csv_data = pd.read_csv(csv_file, low_memory=False) # 防止弹出警告 csv_df = pd.DataFrame(csv_data) 3.数据标准化

这里还可以选用StandardScaler、MaxAbsScaler、Normalizer进行标准化

scaler = preprocessing.MinMaxScaler().fit(csv_df) X_scaler = pd.DataFrame(scaler.transform(csv_df)) 4.PCA(主成分分析)

这里用的是sklearn里的pca库

# 主成分分析建模 pca = PCA(n_components=None) # n_components提取因子数量 # n_components=‘mle’,将自动选取主成分个数n,使得满足所要求的方差百分比 # n_components=None,返回所有主成分 pca.fit(X_scaler) pca.explained_variance_ # 贡献方差,即特征根 pca.explained_variance_ratio_ # 方差贡献率 pca.components_ # 成分矩阵 k1_spss = pca.components_ / np.sqrt(pca.explained_variance_.reshape(-1, 1)) # 成分得分系数矩阵 4.确定权重 # 确定权重 # 求指标在不同主成分线性组合中的系数 j = 0 Weights = [] for j in range(len(k1_spss)): for i in range(len(pca.explained_variance_)): Weights_coefficient = np.sum(100 * (pca.explained_variance_ratio_[i]) * (k1_spss[i][j])) / np.sum( pca.explained_variance_ratio_) j = j + 1 Weights.append(np.float(Weights_coefficient)) print('Weights',Weights) 5.对权重结果进行归一化 Weights=pd.DataFrame(Weights) Weights1 = preprocessing.MinMaxScaler().fit(Weights) Weights2 = Weights1.transform(Weights) print('Weights2',Weights2) 总结

本文运用主成分分析法确定权重,主要利用了sklearn的pca库,比较简单易懂。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3