您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關 Python如何實現普通最小二乘法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
廣義線性回歸模型:
把作為系數向量(coef_);把作為截距(intercept_)
1.普通最小二乘法(Ordinary Least Squares)
線性回歸的目的就是是的預測值與實際值的殘差平方和最小:
import matplotlib.pyplot as plt import numpy as np#載入數據集“datasets”from sklearn import datasets, linear_model#獲取糖尿病的數據集diabetes = datasets.load_diabetes()#使用其中的一個特征,np.newaxis的作用是增加維度diabetes_X = diabetes.data[:, np.newaxis, 2]#將X變量數據集分割成訓練集和測試集diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:]#將Y目標變量分割成訓練集和測試集diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:]#創建線性回歸對象regr = linear_model.LinearRegression()#使用訓練數據來訓練模型regr.fit(diabetes_X_train, diabetes_y_train)#查看相關系數print('Coefficients: \n', regr.coef_)#查看殘差平方的均值(mean square error,MSE)print("Residual sum of squares: %.2f"#%是格式化 % np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))# Explained variance score: 1 is perfect prediction# 解釋方差得分(R^2),最好的得分是1: # 系數R^2=1 - u/v, u是殘差平方,u=(y_true - y_pred) ** 2).sum()# v是離差平方和,v=(y_true - y_true.mean()) ** 2).sum()print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))#畫出測試的點plt.scatter(diabetes_X_test, diabetes_y_test, color='black')#畫出預測的點plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue', linewidth=3)#刪除X軸的標度plt.xticks(())#刪除Y軸的標度plt.yticks(()) plt.show()
普通最小二乘法計算復雜度
這種方法通過對X奇異值分解(singular value decomposition,SVD)來計算最小二乘的解,如果X是(n,p)的矩陣(n大于p),則代價為
感謝各位的閱讀!關于“ Python如何實現普通最小二乘法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。