本来这是一个不可能的事,用的r2_score进行计算的,发现有的时候负值有的时候大于1
后来换了一下,自己手动写计算r2,还是出现这样的,甚至数值特别大
def R2(y_test,y_pred):
SStot=np.sum((y_test-np.mean(y_test))**2)
SSres=np.sum((y_test-y_pred)**2)
r2=1-SSres/SStot
return r2
后来想了一下,这在公式上面不可能出现的事情,但是,在计算机好像是可以发生的,因为计算机的可以溢出
我之前是用的int32,可能不够用,可能导致本来是正数的值由于超出了范围就变成了负数
后来换了int64就没有出现这个错误的了