参考文档
https://www.cnblogs.com/xiaohua92/p/5541080.html
前言:
我们训练完模型后,对于连续型随机变量,我们会用
来评判模型训练的效果。这种有个缺点,比如
某轮随机抽样的样本方差特别小,训练出来的loss也可能特别小。
但是这种基本没什么实用价值。
目录:
一 r2_score 原理
二 code 实现
一 r2_sore 原理
样本的方差*样本个数(这个在每轮训练的时候,是确定的)
可以看到当v越小的时候,同样的u,score 越小。
二 code 实现
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 8 14:32:40 2021
@author: chengxf2
"""
import numpy as np
import sklearn
from sklearn.metrics import mean_squared_error , r2_score
'''
u: 实际值和预测值差异平方和
v: 样本方差*m[固定值]
'''
def Score():
#内部实现
y_true =np.array([4,4,4,5])
y_pred =np.array([4,4,8,5])
diff = np.power(y_true-y_pred,2)
u = np.sum(diff)
m = len(y_true)
v = np.var(y_true)*m
me_score = 1-u/v
#直接调用API 实现
api_score = r2_score(y_true, y_pred)
print("\t 调用API结果",api_score,"\t 自己实现结果",me_score)
Score()