# -*- coding: utf-8 -*-
"""
Created on Fri Oct 11 19:25:11 2019
"""
from sklearn import datasets, linear_model # 引用 sklearn庫(kù),主要為了使用其中的線性回歸模塊
# 創(chuàng)建數(shù)據(jù)集,把數(shù)據(jù)寫(xiě)入到numpy數(shù)組
import numpy as np # 引用numpy庫(kù),主要用來(lái)做科學(xué)計(jì)算
import matplotlib.pyplot as plt # 引用matplotlib庫(kù),主要用來(lái)畫(huà)圖
data = np.array([[152,51],[156,53],[160,54],[164,55],
[168,57],[172,60],[176,62],[180,65],
[184,69],[188,72]])
# 打印出數(shù)組的大小
print(data.shape)
# TODO 1. 實(shí)例化一個(gè)線性回歸的模型
model=linear_model.LinearRegression()
# TODO 2. 在x,y上訓(xùn)練一個(gè)線性回歸模型。 如果訓(xùn)練順利,則regr會(huì)存儲(chǔ)訓(xùn)練完成之后的結(jié)果模型
x,y=data[:,0].reshape(-1,1),data[:,1]
regr=model.fit(x,y)
# TODO 3. 畫(huà)出身高與體重之間的關(guān)系
plt.scatter(x,y,color="red")
# 畫(huà)出已訓(xùn)練好的線條
plt.plot(x, regr.predict(x), color='blue')
# 畫(huà)x,y軸的標(biāo)題
plt.xlabel('height (cm)')
plt.ylabel('weight (kg)')
plt.show() # 展示
# 利用已經(jīng)訓(xùn)練好的模型去預(yù)測(cè)身高為163的人的體重
print ("Standard weight for person with 163 is %.2f"% regr.predict([[163]]))