python 进行一元线性回归并输出相关结果_Python实现一元线性回归实战
回歸是一種有監(jiān)督的學(xué)習(xí)方式,需要根據(jù)歷史數(shù)據(jù)對(duì)未知數(shù)據(jù)做出預(yù)測(cè)。
在此,以房屋面積預(yù)測(cè)房屋價(jià)格為例:
首先,讀入數(shù)據(jù):
代碼如下:
import pandas as pd
import numpy as np
from io import StringIO
from sklearn import linear_model
import matplotlib.pyplot as plt
# 房屋面積與價(jià)格歷史數(shù)據(jù)(csv文件)
csv_data = 'square_feet,price\n150,6450\n200,7450\n250,8450\n300,9450\n350,11450\n400,15450\n600,18450\n'
# 讀入dataframe
df=pd.read_csv(StringIO(csv_data))
# print(df)
其次,建立線性回歸模型,并對(duì)數(shù)據(jù)進(jìn)行擬合,代碼如下:
# 建立線性回歸模型
regr=linear_model.LinearRegression()
# 擬合
regr.fit(df['square_feet'].values.reshape(-1, 1), df['price'])
# 用values方法將Series對(duì)象轉(zhuǎn)化成numpy的ndarray,再用ndarray的reshape方法。
# 注意此處.reshape(-1, 1),因?yàn)閄是一維的!
得到模型的截距和斜率:
# 直線的截距,斜率
a,b=regr.coef_,regr.intercept_
兩種方式進(jìn)行預(yù)測(cè):
第一種方式是根據(jù)得到的模型直接進(jìn)行的計(jì)算,第二種方式是根據(jù)回歸模型的預(yù)測(cè)方法Predict進(jìn)行的預(yù)測(cè),通過運(yùn)行代碼可知兩種方法得到的結(jié)果一致。
# 給出待預(yù)測(cè)面積
area=238.5
# 方式1:根據(jù)直線方程計(jì)算的價(jià)格
print(a*area+b)
# 方式2:根據(jù)predict方法預(yù)測(cè)的價(jià)格
print(regr.predict(area))
繪圖,分別繪制散點(diǎn)圖和擬合的直線:
# 畫圖
# 1.真實(shí)的點(diǎn)(繪制的散點(diǎn)圖)
plt.scatter(df['square_feet'],df['price'],color='blue')
# 2.擬合的直線
plt.plot(df['square_feet'],regr.predict(df['square_feet'].values.reshape(-1,1)),color='red',linewidth=4)
plt.show()
至此,一元線性回歸模型就創(chuàng)建完成了!
對(duì)于模型的學(xué)習(xí),建議大家在了解了算法的原理之后要?jiǎng)邮謱?shí)戰(zhàn),畢竟機(jī)器學(xué)習(xí)或者數(shù)據(jù)挖掘重在實(shí)戰(zhàn),我們最終是要做出模型來進(jìn)行決策的。多動(dòng)手,你會(huì)發(fā)現(xiàn)原本枯燥的原理、算法會(huì)變得清晰,自己也會(huì)更加感興趣!
總結(jié)
以上是生活随笔為你收集整理的python 进行一元线性回归并输出相关结果_Python实现一元线性回归实战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是腓总神经
- 下一篇: 前列腺按摩保养的方法