使用Python解决数据分析中的相关性分析

news2024/10/1 23:35:28

目录

  • 1.相关系数基础
    • 1.1 使用==Pandas==计算皮尔逊相关系数
    • 1.2 计算物品A与其他物品的相关系数
    • 1.3 用户间的相关系数
    • 1.4 获取相关系数矩阵
  • 2. 相似度计算的Python实现
    • 2.1 欧式距离
    • 2.2 余弦相似度
    • 2.3 皮尔逊相关系数的手动实现
  • 3. 总结

在数据分析中,相关系数是衡量两个变量之间线性关系的重要指标。本文将深入探讨如何在Python的Pandas库中计算和应用相关系数,并结合实际示例,展示不同相似度计算方法的实现。

1.相关系数基础

相关系数可以帮助我们了解变量之间的关系强度和方向。最常用的相关系数是皮尔逊相关系数,它的值介于-1和1之间。值为1表示完全正相关,-1表示完全负相关,0则表示无相关性。

1.1 使用Pandas计算皮尔逊相关系数

我们首先创建一个数据框(DataFrame)来模拟用户对不同物品的评分:

import pandas as pd

df = pd.DataFrame([[5, 4, 4], [1, 2, 2], [5, 2, 1]], columns=['物品A', '物品B', '物品C'], index=['用户1', '用户2', '用户3'])
df

在这里插入图片描述

1.2 计算物品A与其他物品的相关系数

可以使用corrwith方法计算物品A与其他物品的皮尔逊相关系数:

A = df["物品A"]
corr_A = df.corrwith(A)
print(corr_A)

在这里插入图片描述

1.3 用户间的相关系数

类似地,可以计算用户之间的相关系数:

user_corr = df.corrwith(df.iloc[0], axis=1)  # 计算用户1与其他用户的皮尔逊相关系数
print(user_corr)

在这里插入图片描述

1.4 获取相关系数矩阵

使用corr()方法,可以快速获取整个数据框的相关系数矩阵:

corr_matrix = df.corr()
print(corr_matrix)

在这里插入图片描述

2. 相似度计算的Python实现

除了相关系数,计算物品或用户之间的相似度也非常重要。以下是几种常用的相似度计算方法。

2.1 欧式距离

欧式距离是衡量两个点之间直线距离的一种方法,可以通过以下方式计算:

import numpy as np

# 计算第一行与第二行的欧氏距离
euclidean_distance = np.linalg.norm(df.iloc[0] - df.iloc[1])
print("物品A与物品B的欧氏距离为:", euclidean_distance)

在这里插入图片描述

2.2 余弦相似度

余弦相似度用于衡量两个向量的夹角,常用于文本和推荐系统中:

from sklearn.metrics.pairwise import cosine_similarity

item_similarity = cosine_similarity(df)
cos_df = pd.DataFrame(item_similarity, columns=["物品A", "物品B", "物品C"], index=["物品A", "物品B", "物品C"])
print(cos_df)

在这里插入图片描述

2.3 皮尔逊相关系数的手动实现

除了Pandas,Scipy库也可以计算皮尔逊相关系数:

from scipy.stats import pearsonr

X = [1, 3, 5, 7, 9]
Y = [9, 8, 6, 4, 2]
corr = pearsonr(X, Y)
print("皮尔逊相关系数r的值为:", corr[0], "显著性水平P值为:", corr[1])

在这里插入图片描述

3. 总结

本文介绍了如何在Python中计算相关系数及相似度,可用于数据预处理分析部分。通过实际的代码示例,展示了皮尔逊相关系数、欧式距离和余弦相似度的计算方式。这些技术在数据分析和推荐系统中具有重要应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用案例 | HK-MSR数据记录仪如何计算滑雪时膝盖上的应力?

计算滑雪时膝盖上的应力 阿尔卑斯山高山滑雪运动员在滑雪时对膝盖产生的压力有多大?Thea Waldleben,现任瑞士青年速降赛冠军,在她的 "Maturaarbeit"(考试项目)中回答了这个问题。通过使用HK-MSR数据记录仪&…

Python OpenCV精讲系列 - 边缘检测深入理解(十三)

💖💖⚡️⚡️专栏:Python OpenCV精讲⚡️⚡️💖💖 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计,从基础概念入手,逐步深入到图像处理、特征检测、物体识…

地质工程专业职称申报条件详细解读

一、初级(助理)地质工程工程师评审条件: 1、理工类或者地质工程类专业毕业 2、专科毕业满3年或本科毕业满1年 3、研究生毕业,从事本专业技术工作,当年内考核认定 二、中级地质工程工程师评审条件: 1、理工…

解决远程连接AlpineLinux Mysql/MariaDB 无法连接的问题

&#x1f525;博客介绍&#xff1a; EvLast &#x1f3a5;系列专栏&#xff1a; << C项目>> <<数据结构与算法>> << 算法入门>> &#x1f3a5; 当前专栏:<< C项目>> 专题 : 解决开发中的日常Bug &#x1f44d;&#x1f44…

服务端的 Session 详解

0x01&#xff1a;Session 简介 Session 是在 Cookie 的基础上发展的&#xff0c;其主要功能和 Cookie 一样&#xff0c;都是为了解决 HTTP 无状态的痛点&#xff0c;和 Cookie 不同的是&#xff0c;它是将大部分数据存储在了服务端&#xff0c;而只给用户一个 SESSID&#xff…

django学习入门系列之第十点《A 案例: 员工管理系统21》

文章目录 16 Ajax(订单案例)16.9 编辑想要去数据库中获取数据时:对象/字典将具体内容的错误信息传入到前端&#xff08;Ajax&#xff09;将数据库数据传入前端&#xff08;Ajax&#xff09;清空新建订单的数据 16.10 编辑后保存 往期回顾 16 Ajax(订单案例) 16.9 编辑 点击编辑…

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测 目录 TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料预测效果

Python第一篇:Python解释器

一&#xff1a;python解释器 python解释器是一款程序&#xff0c;用于解释、执行Python源代码。 一般python解释器都是c python使用c编写的&#xff0c;还有j python用java编写的。 二&#xff1a;python下载 三&#xff1a;使用示例 python进入控制台&#xff0c;python。 三…

【react案例】实现评论列表

1. 需求 展示评论列表实现删除功能 2.1 只有自己的评论才展示删除按钮 2.2 点击删除按钮&#xff0c;删除当前评论tab切换&#xff08;点击对应tab&#xff0c;对tab文案高亮处理&#xff09;评论高亮评论排序&#xff08;最新、最热&#xff09; 2. 实现思路 useState维护评…

基于vue框架的大同传统文化非物质文化宣传管理系统jzo9d(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,非遗类型,文化遗产 开题报告内容 基于Vue框架的大同传统文化非物质文化宣传管理系统开题报告 一、研究背景 在全球化加速的今天&#xff0c;传统文化的保护与传承面临着前所未有的挑战。大同&#xff0c;作为中国历史文化名城&a…

职场能力强的人都在做什么---今日头条

【职场里,能力强的人都在做哪些事... - 今日头条】https://m.toutiao.com/is/ikn6kt9q/ 知识雷达 2024-09-21 16:33 目录 职场里,能力强的人都在做哪些事呢? 1、复盘; 2、多角度思考;3、记录信息; 4、永远积极主动;5、主动获取信息差; 6、明确人和人的关系;7、…

STM32杂项

STM32杂项 1.启动过程2.中断3.GPIO4.Systick5.串口printf6.独立看门狗 记录单片机在工作中遇到的问题和特殊情况。 1.启动过程 M3/M4/M7内核复位后&#xff0c;做的第一件事&#xff1a; 1.从地址0x0000 0000处取出堆栈指针MSP的初始值&#xff0c;该值就是栈顶地址。 2.从地址…

2024必备中英互译利器全知道

现在英语目前还是学习最广泛的第二语言&#xff0c;所以很多资料都有英文的版本。如果外语不好&#xff0c;那中英互译翻译工具就能帮我们解决这个问题。今天我们一起来探讨下有哪些好用的翻译工具。 1.福昕在线翻译 链接直达>>https://fanyi.pdf365.cn/doc 这个工具…

【linux】进度条

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.屏幕缓冲区换行&#xff08;LF, \n&#xff09;和回车&#xff08;CR, \r&#xff09;换行回车在屏幕缓冲区中的作用代码块1&#xff1a;代码块2&#xff1a; 02.进度条优化版…

SpringBoot3+Swagger3(最新版springdoc-openapi教程)

第一步&#xff1a;引入springdoc-openapi依赖 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version></dependency> 第二步&#xff1a; 配置…

打开ffmpeg编码器的时候报错:avcodec_open2()返回-22

[h264_v4l2m2m 0x555555617a00] Could not find a valid device [h264_v4l2m2m 0x555555617a00] cant configure encoder 前言&#xff1a;先做一个操作&#xff0c;查找编码器的时候&#xff0c;使用名字查找的方式&#xff1a; const AVCodec *avcodec_find_encoder_by_n…

ubuntu数据硬盘故障导致系统启动失败

背景&#xff1a; 系统盘损坏或者/etc/fatab误修改导致开机启动挂载失败系统无法启动 解决方法 重启

BFS 解决最短路径问题, 迷宫中离入口最近的出口,最小基因变化,单词接龙,为高尔夫比赛砍树

文章目录 1926. 迷宫中离入口最近的出口433. 最小基因变化127. 单词接龙675. 为高尔夫比赛砍树 1926. 迷宫中离入口最近的出口 边权为1的最短路径问题 我们要知道上下左右都是可以走的 &#xff08;用队列&#xff09;走过的地方不要在走了&#xff0c;这样会进入死循环&#x…

零信任内网安全访问

随着互联网的持续发展&#xff0c;便捷的共享方式极大地提高了企业的生产力和工作效率&#xff0c;但随之也给企业内网带来了极大的安全隐患。企业内网承载大量的核心资产和机密数据&#xff0c;一旦受到攻击可能会造成大量损失&#xff0c;因此&#xff0c;如何通过零信任内网…

快手一面:给定一棵二叉树,要求将其转换为其镜像?

目录标题 题解&#xff1a;二叉树的镜像&#xff08;Invert Binary Tree&#xff09;问题描述示例解题思路代码实现详细分析复杂度分析优点注意事项&#x1f495; 题解&#xff1a;二叉树的镜像&#xff08;Invert Binary Tree&#xff09; 问题描述 给定一棵二叉树&#xff…