R和R_square
一、数学中的R平方:
数学算法
1、R:一般用来度量数据之间的线性相关性,通常分为三种:Spearman,Pearson和kendall,在SPSS中也能直接使用,R的定义如下图公式(1)所示:
(1)R数学公式
2、R_square:
R_square起源于数学统计上,在一个线性模型中,我们通常使用它去评估该模型线性拟合度的高低,对于R_square的定义如下图公式(2)所示,其中
SST:总平方和(类似于方差)
SSR:回归平方和(SST-SSE)
SSE:残差平方和(实际值与模型预测值/观察值之间样本总的差异)
(2)R平方数学公式
二、机器学习中的R平方:
机器学习
机器学习中,预测模型一般分为两类:回归与分类,R_square一般用于回归中评估模型的好坏程度,其值越接近1,代表模型性能越好,小于0时,通常表示模型效果非常差。
三、Python中的R平方:
Python语言
1、R:直接按照公式使用Python编程语言编程
#R程序
import numpy as np
import math
def computeCorrelation(X, Y):
xBar = np.mean(X)
yBar = np.mean(Y)
SSR = 0
varX = 0
varY = 0
for i in range(0, len(X)):
diffXXBar = X[i] - xBar
diffYYBar = Y[i] - yBar
SSR = (diffXXBar * diffYYBar)
varX = diffXXBar ** 2
varY = diffYYBar ** 2
SST = math.sqrt(varX * varY)
return SSR / SST
testX = [] #X值
testY = [] #Y值
print(computeCorrelation(testX, testY))
2、R_square程序
通常使用工具包python工具包sklearn里面的metrics:
#R_square程序
from sklearn.metrics import r2_score
y_pred = [] #模型预测值/观察值
y_true = [] #
R2 = r2_score(y_pred, y_true)
print(R2)