数据分析:数据预处理之灰度关联分析

灰度关联分析

这个算法其实就是检测其他属性对于主要测的属性的相关性分析,其中最后值在[0,1]之间。

  1. 首先需要进行获取数据,利用pandas就可以读取csv或者excel,甚至用数据库导入就可以获取数据
  2. 其次进行无量纲化,即标准化,可以用均值法,Z-score,max-min等等方法进行标准化
  3. 然后选取主测列和其他列,分析主测列与其他列关系
  4. 依据算法带入公式
  5. 根据算法的结果形成一个数列Series,然后查看一一对应,选取较大关系的属性,可以以0.8或者0.7为阈值,这个阈值视情况而定,不同项目需求不相同阈值
  6. 根据结果删除无关属性
# -*- coding: utf-8 -*-
# Time  :16:56
# AUTHOR : Rexa (YUKAI)
import os
import pandas as pd
import numpy as np
import pandas as pd
x=pd.read_csv("灰色关联分析_样例数据(1).csv")
x=x.iloc[:,1:].T

# 1、数据均值化处理
x_mean=x.mean(axis=1)
for i in range(x.index.size):
    x.iloc[i,:] = x.iloc[i,:]/x_mean[i]

# 2、提取参考队列和比较队列
print(x)
ck=x.iloc[0,:]
print(ck)
cp=x.iloc[1:,:]
print(cp)

# 比较队列与参考队列相减
t=pd.DataFrame()
for j in range(cp.index.size):
    temp=pd.Series(cp.iloc[j,:]-ck)
    t=t.append(temp,ignore_index=True)

#求最大差和最小差
mmax=t.abs().max().max()
mmin=t.abs().min().min()
rho=0.5
#3、求关联系数
ksi=((mmin+rho*mmax)/(abs(t)+rho*mmax))


#4、求关联度
r=ksi.sum(axis=1)/ksi.columns.size

#5、关联度排序,得到结果r3>r2>r1
result=r.sort_values(ascending=False)
# print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值