Python是一種廣泛應用于科學計算和數據分析的高級編程語言。對于許多統計學和機器學習問題,我們需要計算相關性系數。而R方(R2)就是常用的相關性指標之一。
R2越接近1,模型的擬合度就越好。在Python中,我們可以使用scikit-learn包來計算R2。
from sklearn.metrics import r2_score # 創建兩個數組 y_true = [3, -0.5, 2, 7] y_pred = [2.5, 0.0, 2, 8] # 計算R2 r2 = r2_score(y_true, y_pred) print("R2值:", r2)
上面的代碼首先導入了scikit-learn中的r2_score函數,然后創建了兩個數組作為參考和預測值。最后通過調用r2_score函數來計算R2。
除了使用scikit-learn包之外,我們還可以手動計算R2。以下是手動計算R2的代碼:
import numpy as np def r_squared(y_true, y_pred): # 計算平均值 mean_y = np.mean(y_true) # 計算總平方和 ss_tot = 0 for i in range(len(y_true)): ss_tot += (y_true[i] - mean_y) ** 2 # 計算殘差平方和 ss_res = 0 for i in range(len(y_true)): ss_res += (y_true[i] - y_pred[i]) ** 2 # 計算R2 r2 = 1 - (ss_res / ss_tot) return r2 # 測試手動計算R2 y_true = [3, -0.5, 2, 7] y_pred = [2.5, 0.0, 2, 8] r2 = r_squared(y_true, y_pred) print("手動計算R2值:", r2)
手動計算R2需要計算平均值、總平方和和殘差平方和。最后通過這些數值計算R2。這個計算方法對于小數據集來說是非常簡單和有效的。
總而言之,Python提供了多種計算R2的方法,包括使用scikit-learn包和手動計算。選擇哪種方法取決于你的數據集大小和需求。希望這篇文章能夠幫助你更好地理解Python計算R2的方法。