评价类模型数据预处理(定量指标值的无量纲化处理)

评价类模型数据预处理(定量指标值的无量纲化处理)

一、整体概括

二、代码

#程序文件ex14_1.py
import numpy as np
import pandas as pd
# 得到的是一个数组
a = np.loadtxt('data14_1_1.txt')
b = np.linalg.norm(a,axis=0)  #逐列求2范数
m1 = a.max(axis=0)  #逐列求最大值
m2 = a.min(axis=0)  #逐列求最小值
# 归一化即用原数据除以2范数
R1 = a / b  #全部列向量归一化处理
# 比例变换即将原数据除以最大值
R2 = a / m1 #全部列向量比例变换
# 极差变换即将源数据减去最小值然后除以最大值和最小值的差
R3 = (a-m2) / (m1-m2)  #全部列向量极差变换

R1[:,3] = 1 - a[:,3] / b[3]  #第4列特殊处理
R2[:,3] = m2[3] / a[:,3]     #第4列特殊处理
R3[:,3] = (m1[3]-a[:,3]) / (m1[3]-m2[3])
# %.4f 保留4位小数
np.savetxt('data14_1_2.txt', R1, fmt='%.4f')
f = pd.ExcelWriter('data14_1_3.xlsx')
# 转化成eccel表格
pd.DataFrame(R1).to_excel(f, index=None)  #写入Excel文件方便做表
pd.DataFrame(R2).to_excel(f, 'Sheet2', index=None)
pd.DataFrame(R3).to_excel(f, 'Sheet3', index=None); f.close()

三、“data14_1_1.txt”中的数据

2.0 1500   20000  5500000    0.5    1
2.5 2700   18000  6500000    0.3    0.5
1.8 2000   21000  4500000    0.7    0.7
2.2 1800   20000  5000000    0.5    0.5

五、结果(excel文件不再展示)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值