print(__doc__)# 輸出檔案開頭注釋的內容
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
from sklearn.metrics import mean_squared_error,r2_score
#mean_squared_error**值和真實值之間差的平方再求平均值。
# r^2公式就是1-(殘差平方和/總體平方和)用來反映資料和模型的擬合程度
#匯入diabets 糖尿病資料
'''載入用於回歸模型的資料集
這個資料集中一共有442個樣本,特徵向量維度為10
特徵向量每個變數為實數,變化範圍(-.2 ,.2)
目標輸出為實數,變化範圍 (25 ,346)'''
diabetes = datasets.load_diabetes()
# print(diabetes.data.shape)
# print (diabetes.data.dtype)
# print (diabetes.target.shape)
# print (diabetes.target.dtype)
#只使用乙個特徵
'''為了便於畫圖顯示
僅僅使用一維資料作為訓練用的x
這裡使用np.newaxis的目的是讓行向量變成列向量
這樣diabetes_x每一項都代表乙個樣
此時diabetes_x的shape是(442l, 1l)
如果**是:diabetes_x = diabetes.data[:, 2]
則diabetes_x的shape是(442l,),是乙個行向量
'''diabetes_x = diabetes.data[:,np.newaxis,2]
'''人工將輸入資料劃分為訓練集和測試集
前400個樣本作為訓練用,後20個樣本作為測試用
'''diabetes_x_train = diabetes_x[:-20]
diabetes_x_tset = diabetes_x[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_tset = diabetes.target[-20:]
# 初始化乙個線性回歸模型
regr = linear_model.linearregression()
# 基於訓練資料,對線性回歸模型進行訓練
regr.fit(diabetes_x_train,diabetes_y_train)
diabetes_y_pred = regr.predict(diabetes_x_tset)
#w儲存在其成員變數coef_中
print('coefficients:\n',regr.coef_)
#均方誤差
print('mean squared error %.2f'% mean_squared_error(diabetes_y_tset,diabetes_y_pred))
#解釋方差的分數模型在測試集上的得分,得分結果在0到1之間,數值越大,說明模型越好
print('variance score: %.2f' % r2_score(diabetes_y_tset,diabetes_y_pred))
#plot 輸出 繪製模型在測試集上的效果
plt.scatter(diabetes_x_tset,diabetes_y_tset,color = 'black')
plt.plot(diabetes_x_tset,diabetes_y_pred,color = 'blue',linewidth = 3)
'''plt.plot(x, y, format_string, **kwargs): x為x軸資料,可為列表或陣列;y同理;format_string 為控制曲線的格式字串,
**kwargs 第二組或更多的(x, y, format_string)format_string: 由 顏色字元、風格字元和標記字元組成。
顏色字元:『b』藍色 ;『#008000』rgb某顏色;『0.8』灰度值字串
風格字元:『-』實線;『--』破折線; 『-.』點劃線; 『:』虛線 ; 『』『』無線條
標記字元:『.』點標記 『o』 實心圈 『v』倒三角 『^』上三角
'''plt.xticks(()) #控制圖表的刻度 呼叫時不帶引數,則返回當前的引數值
普通最小二乘法 加權最小二乘法 廣義最小二乘法
所謂回歸分析實際上就是根據統計資料建立乙個方程,用這個方程來描述不同變數之間的關係,而這個關係又無法做到想像函式關係那樣準確,因為即使你重複全部控制條件,結果也還有區別,這時通過讓回歸方程計算值和試驗點結果間差值的平方和最小來建立 回歸方程的辦法就是最小二乘法,二乘的意思就是平方。最小二乘就是指回歸...
最小二乘法 模型 普通最小二乘法的推導證明
在統計學中,普通最小二乘法 ordinary least squares,ols 是一種用於在線性回歸模型中估計未知引數的線性最小二乘法。ols通過最小二乘法原則選擇一組解釋變數的線性函式的引數 最小化給定資料集中觀察到的因變數 被 變數的值 與 變數之間殘差的平方和。我們先以一元線性模型為例來說明...
最小二乘法 模型 普通最小二乘法的推導證明
在統計學中,普通最小二乘法 ordinary least squares,ols 是一種用於在線性回歸模型中估計未知引數的線性最小二乘法。ols通過最小二乘法原則選擇一組解釋變數的線性函式的引數 最小化給定資料集中觀察到的因變數 被 變數的值 與 變數之間殘差的平方和。我們先以一元線性模型為例來說明...