1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python综合评价模型(四)主成分分析法

Python综合评价模型(四)主成分分析法

时间:2020-11-21 02:35:51

相关推荐

Python综合评价模型(四)主成分分析法

文章目录

第一步 导入第三方库和案例数据第二步 标准化数据第三步 训练模型第四步 计算主成分个数方式1 按特征值计算主成分个数方式2 按累积贡献率计算主成分个数 第五步 计算主成分系数第六步 计算主成分得分第七步 计算综合得分第八步 导出综合评价结果 下期预告: P y t h o n 综合评价模型(五)德尔菲法 \textcolor{RoyalBlue}{下期预告 : Python综合评价模型(五)德尔菲法} 下期预告:Python综合评价模型(五)德尔菲法 关注公众号“ T r i H u b 数研社”发送“ 230305 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230305”获取案例数据和代码} 关注公众号“TriHub数研社”发送“230305”获取案例数据和代码

主成分分析法是通过降维把多个评价指标转化为少数几个综合指标从而对评价对象进行综合评价的方法

提取的主成分的个数一般不超过5-6个

提取的主成分的累积贡献率一般不低于80-85%

第一步 导入第三方库和案例数据

import numpy as npimport pandas as pdfrom sklearn.decomposition import PCA

#按指定路径导入数据,以“地区”为索引(文件路径需按实际情况更换)data = pd.read_excel(r'C:/Users/AROUS/Desktop/综合评价数据.xlsx', index_col = '地区')data

第二步 标准化数据

#定义z-score标准化函数def z_score(x): return (x - x.mean()) / x.std()

#使用z-score标准化函数标准化数据data_z = data.apply(z_score, 0)data_z

第三步 训练模型

pca = PCA().fit(data_z)

第四步 计算主成分个数

方式1 按特征值计算主成分个数

#输出特征值pca.explained_variance_

#计算特征值大于1的主成分个数n_components = (pca.explained_variance_ > 1.0).sum()n_components

方式2 按累积贡献率计算主成分个数

#输出方差贡献率pca.explained_variance_ratio_

#输出累积方差贡献率pca.explained_variance_ratio_.cumsum()

#计算累积方差贡献率大于0.8的主成分个数n_components = np.argmax(pca.explained_variance_ratio_.cumsum() >= 0.8) + 1n_components

第五步 计算主成分系数

#n_components参数用于设置需保留的主成分个数,默认为None(即保留全部主成分),案例保留2个主成分pca = PCA(n_components = n_components).fit(data_z)ponents_

第六步 计算主成分得分

F1=0.3967×生产总值+0.2874×从业人员+0.3074×固定资产+0.4011×利用外资+0.3789×进出口额+0.3864×新品出口+0.3846×市场占有+0.2527×对外依存

F2=-0.2064×生产总值-0.5209×从业人员-0.4819×固定资产-0.0094×利用外资+0.3104×进出口额+0.1216×新品出口+0.2104×市场占有+0.5461×对外依存

col_name = ['F{}'.format(i+1) for i in range(n_components)]pca_transform = pd.DataFrame(pca.transform(data_z), columns = col_name, index = data.index)data = pd.concat([data, pca_transform], axis=1)data

第七步 计算综合得分

#使用方差贡献率作为主成分权重w = pca.explained_variance_ratio_w

data['主成分分析法得分'] = data.iloc[:, -2:].dot(w)data

第八步 导出综合评价结果

data.to_excel('主成分分析法综合评价结果.xlsx', index = True)

下期预告: P y t h o n 综合评价模型(五)德尔菲法 \textcolor{RoyalBlue}{下期预告 : Python综合评价模型(五)德尔菲法} 下期预告:Python综合评价模型(五)德尔菲法

关注公众号“ T r i H u b 数研社”发送“ 230305 ”获取案例数据和代码 \textcolor{RoyalBlue}{关注公众号“TriHub数研社”发送“230305”获取案例数据和代码} 关注公众号“TriHub数研社”发送“230305”获取案例数据和代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。