決定係數:即 R 平方值,也稱判定係數、擬合優度。反應因變量的全部變異能通過回歸關係被自變量解釋的比例。
如R平方為0.8,則表示回歸關係可以解釋因變量80%的變異。換句話說,如果我們能控制自變量不變,則因變量的變異程度會減少 80%。
如某學生在某智力量表上所得的 IQ 分與其學業成績的相關係數 r=0.66,則決定係數 R^2=0.4356,即該生學業成績約有 44%可由該智力量表所測的智力部分來說明或決定。
實現方法:
# Python
from sklearn import linear_model
import numpy as np
def polyfit(x, y):
linear = linear_model.LinearRegression()
linear.fit(x, y)
y_hat = linear.predict(x)
y_mean = np.mean(y)
SSR = 0
SST = 0
for i in range(len(y)):
SSR += (y_hat[i] - y_mean) ** 2
SST += (y[i] - y_mean) ** 2
return SSR / SST
train_x=[1,3,8,7,9]
train_x_2d = [[x] for x in train_x] # 通用的方式,訓練集至少是二維的
train_y=[10,12,24,21,34]
print(polyfit(train_x_2d,train_y))