# 創建數據集,把數據寫入到numpy數組
import numpy as np #引用numpy庫,主要用來做科學
import matplotlib.pyplot as plt #引用matplotlib庫,主要用來畫圖
data=np.array([[152,51],[156,53],[160,54],[164,55], [168,57],[172,62],[176,62],[180,65], [184,69],[188,72]]) # 打印數組的大小
print(data.shape) # 從data中提取出身高和體重,分別存放在x,y變量中
x,y=data[:,0].reshape(-1,1),data[:,1]
注意: data[:,0]中添加了一個reshape的函數,主要的原因是在之后調用fit函數的時候對特征矩陣x是要求是矩陣的形式。
from sklearn import datasets, linear_model # 引用 sklearn庫,主要為了使用其中的線性回歸模塊 # TODO 1. 實例化一個線性回歸的模型 regr = linear_model.LinearRegression() # TODO 2. 在x,y上訓練一個線性回歸模型。 如果訓練順利,則regr會存儲訓練完成之后的結果模型 regr.fit(x, y) # TODO 3. 畫出身高與體重之間的關系 plt.scatter(x, y, color='red') # 畫出已訓練好的線條 plt.plot(x, regr.predict(x), color='blue') # 在二維空間中畫出身高和體重的分布圖 plt.xlabel('height(cm)') plt.ylabel('weight(kg)') plt.show # 利用已經訓練好的模型去預測身高為163的人的體重 print ("Standard weight for person with 163 is %.2f"% regr.predict([[163]]))
結果