def load_action_data(self): return get_item_base_data(self.table_name) # 求皮尔逊相关系数 def sim_pearson(self, p1, p2): # 得到双方都曾评价过的物品列表 si = {item: 1 for item in p1 if item in p2} n = len(si) if n == 0: return 0 # 对所有偏好求和 sum1 = sum(p1[it] for it in si) sum2 = sum(p2[it] for it in si) # 求平方和 sum1sq = sum(pow(p1[it], 2) for it in si) sum2sq = sum(pow(p2[it], 2) for it in si) # 求乘积之和 pSum = sum(p1[it] * p2[it] for it in si) # 计算皮尔逊评价值 num = pSum - (sum1 * sum2 / n) den = sqrt((sum1sq - pow(sum1, 2) / n) * (sum2sq - pow(sum2, 2) / n)) if den == 0: return 0 r = num / den return r
时间: 2023-06-24 15:06:56 浏览: 43
这段代码看起来是一个推荐系统中用来计算皮尔逊相关系数的函数。它接受两个用户的评分数据(p1和p2),找到它们共同评价过的物品列表(si),并计算它们之间的相关性(r)。在计算过程中,它首先计算出每个用户对共同评价过的物品的偏好值的平均值(sum1和sum2),然后计算它们的平方和(sum1sq和sum2sq),以及它们的乘积之和(pSum)。最后,它计算出相关性系数r,并返回它。
相关问题
python怎么计算相关系数_Python三种方法计算皮尔逊相关系数
在Python中,可以使用以下三种方法计算皮尔逊相关系数:
1. 使用NumPy库中的corrcoef函数,示例如下:
```python
import numpy as np
# 生成两个随机数组
x = np.random.rand(10)
y = np.random.rand(10)
# 求相关系数
r = np.corrcoef(x, y)[0, 1]
print("相关系数为:", r)
```
2. 使用SciPy库中的pearsonr函数,示例如下:
```python
from scipy.stats import pearsonr
# 生成两个随机数组
x = np.random.rand(10)
y = np.random.rand(10)
# 求相关系数
r, p = pearsonr(x, y)
print("相关系数为:", r)
```
其中,pearsonr函数返回两个值,第一个是相关系数,第二个是p值。
3. 使用pandas库中的corr函数,示例如下:
```python
import pandas as pd
# 生成两个随机数组,并转化为DataFrame格式
x = pd.Series(np.random.rand(10))
y = pd.Series(np.random.rand(10))
df = pd.DataFrame({'x': x, 'y': y})
# 求相关系数
r = df['x'].corr(df['y'])
print("相关系数为:", r)
```
其中,将两个随机数组转化为DataFrame格式,然后使用corr函数求相关系数。
raw_data.corr(method='pearson')
`raw_data.corr(method='pearson')` 是一个用于计算数据集中各个列之间的皮尔逊相关系数的方法。皮尔逊相关系数是一种衡量两个变量之间线性关系强度和方向的统计量。`method='pearson'` 表示使用皮尔逊相关系数进行计算。
这个方法将返回一个相关系数矩阵,其中包含了数据集中各个列两两之间的相关系数。矩阵的每个元素表示对应列之间的相关性,取值范围在 -1 到 1 之间。值为 1 表示两个变量完全正相关,值为 -1 表示两个变量完全负相关,值为 0 表示两个变量之间没有线性关系。
你可以使用 `raw_data.corr(method='pearson')` 来计算数据集中各个列之间的皮尔逊相关系数,并进一步分析它们之间的关系。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)