如何优雅地计算Pandas数据框中的r平方?

2024-04-19 18:37:10 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个数据帧,我想计算两列之间的r平方

另外,不是r2(df[0],df[1]),我想要的是使用df[0]来拟合df[1]的r2的r2

例如:

In [21]: df = pd.DataFrame(np.random.rand(10, 2))

In [22]: df
Out[22]: 
          0         1
0  0.776080  0.966668
1  0.922351  0.024381
2  0.859104  0.397823
3  0.607491  0.425335
4  0.732265  0.667846
5  0.336950  0.544515
6  0.236403  0.610943
7  0.811736  0.306425
8  0.110440  0.059754
9  0.469844  0.957298

如何计算与列0对应的列1的r2


Tags: 数据indataframedfnprandomoutpd
1条回答
网友
1楼 · 发布于 2024-04-19 18:37:10

如评论中所述,sklearn有一种计算r平方的方法

from sklearn.metrics import r2_score

r2_score(df[0], df[1])

# -1.8462387938183031

但要回答您的问题并用熊猫计算,我们可以使用矢量化方法:

res = df[0].sub(df[1]).pow(2).sum()
tot = df[0].sub(df[0].mean()).pow(2).sum()

r2 = 1 - res/tot

# -1.8462387938183031

相关问题 更多 >