相关性分析

相关性分析

参考资料:https://zhuanlan.zhihu.com/p/59543716
数据分析:https://zhuanlan.zhihu.com/p/108491355?from_voters_page=true

一、二维数据

1.图形观测法
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 随机生成一组数据(X,Y)
data = pd.DataFrame(np.random.randn(200,2)*100, columns=['X','Y'])  
# 绘制散点图
plt.figure(figsize = (6,6))  # 图片像素大小
plt.scatter(data.X, data.Y,color="blue")  # 散点图绘制
plt.grid()  # 显示网格线
plt.show()  # 显示图片

关系图

2.科学计算

对数据进行假设检验,获得p值<0.05(或者0.01),得到结论:总体的数据呈现相关性然后进行相关性分析,得到r值
相关系数
公式
在这里插入图片描述

import numpy as np
import pandas as pd
import scipy.stats as stats

data = pd.DataFrame(np.random.randn(200,2)*100, columns=['X','Y'])
r,p = stats.pearsonr(data.X,data.Y)  # 相关系数和P值
print('相关系数r为 = %6.3f,p值为 = %6.3f'%(r,p))

二、多维数据

可以得到两两之间的相关性系数r 和变量之间的散点分布图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats

# 导入数据
data = pd.DataFrame(np.random.randn(200,4)*100, columns = ['A','B','C','D'])
# 相关性计算
print(data.corr())
# 绘图
fig = pd.plotting.scatter_matrix(data,figsize=(6,6),c ='blue',marker = 'o',diagonal='',alpha = 0.8,range_padding=0.2)  # diagonal只能为'hist'/'kde'
plt.show()

三、Apriori关联分析算法

找频繁项集

association_rules(df, metric=“confidence”,
min_threshold=0.8,
support_only=False):
参数介绍:
df:这个不用说,就是 Apriori 计算后的频繁项集。metric:可选值[‘support’,‘confidence’,‘lift’,‘leverage’,‘conviction’]。
里面比较常用的就是置信度和支持度。这个参数和下面的min_threshold参数配合使用。
min_threshold:参数类型是浮点型,根据 metric 不同可选值有不同的范围,
metric = ‘support’ => 取值范围 [0,1]
metric = ‘confidence’ => 取值范围 [0,1]
metric = ‘lift’ => 取值范围 [0, inf]
support_only:默认是 False。仅计算有支持度的项集,若缺失支持度则用 NaNs 填充。

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori

#设置数据集
dataset = [['牛奶','洋葱','肉豆蔻','芸豆','鸡蛋','酸奶'],
        ['莳萝','洋葱','肉豆蔻','芸豆','鸡蛋','酸奶'],
        ['牛奶','苹果','芸豆','鸡蛋'],
        ['牛奶','独角兽','玉米','芸豆','酸奶'],
        ['玉米','洋葱','洋葱','芸豆','冰淇淋','鸡蛋']]
		
te = TransactionEncoder()
#进行 one-hot 编码
te_ary = te.fit(records).transform(records)
df = pd.DataFrame(te_ary, columns=te.columns_)
#利用 Apriori 找出频繁项集
freq = apriori(df, min_support=0.05, use_colnames=True)
#导入关联规则包
from mlxtend.frequent_patterns import association_rules
#计算关联规则
result = association_rules(freq, metric="confidence", min_threshold=0.6)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值