一元線性回歸模型 Python

2021-10-03 04:45:26 字數 2718 閱讀 2549

演示建模過程:

import collections  # collections 是python內建的乙個集合模組

import pandas as pd

import matplotlib.pyplot as plt

# 1 建立資料集

jobdict =

job_orderdict = collections.ordereddict(jobdict) # ordereddict:有序字典

job_df = pd.dataframe(job_orderdict)

job_df.head()

# 2 準備資料

# 提取特徵和標籤

job_x = job_df.loc[:,'工作時間'] # loc是根據index來索引

job_y = job_df.loc[:,'業績']

# 3 分析資料

# 繪製散點圖

plt.scatter(job_x,job_y,color='b')

plt.xlabel('hours')

plt.ylabel('scores')

# 4 構建訓練模型

from sklearn.model_selection import train_test_split # train_test_split(),隨機劃分訓練集和測試集的函式

# (1)建立訓練資料和測試資料

x_train,x_test,y_train,y_test = train_test_split(job_x,job_y,train_size=.8)

# 輸出資料的大小

print('原始資料特徵',job_x.shape,

',訓練資料特徵',x_train.shape,

',測試資料特徵',y_train.shape) # shape 檢視矩陣或者陣列的維數

print('原始資料標籤',job_y.shape,

',訓練資料標籤',x_test.shape,

',測試資料標籤',y_test.shape)

# (2)建立模型

# 將訓練資料特徵轉化為二維陣列,,行*1列

x_train = x_train.values.reshape(-1,1) # values方法將series物件轉化成numpy的ndarray

# 將測試資料特徵轉化為二位資料,,行*1列

x_test = x_test.values.reshape(-1,1)

# 匯入線性回歸模型

from sklearn.linear_model import linearregression # linearregression 擬合乙個帶有係數 w = (w_1, ..., w_p) 的線性模型,使得資料集實際觀測資料和**資料(估計值)之間的殘差平方和最小。

# 建立模型:線性回歸

model = linearregression()

# 訓練模型

model.fit(x_train,y_train) # fit() 就是求得訓練集x的均值啊,方差啊,最大值啊,最小值啊這些訓練集x固有的屬性。可以理解為乙個訓練過程

# 截距 a,回歸係數 b

a = model.intercept_

b = model.coef_

print('最佳擬合線:截距 a=',a,'回歸係數 b=',b)

# 畫圖

# 訓練資料散點圖

plt.scatter(x_train,y_train,color='blue',label='train data')

# 訓練資料的**值

y_train_pred = model.predict(x_train)

# 繪製最佳擬合線

plt.plot(x_train,y_train_pred,color='black',linewidth=1,label='best line')

# 新增圖示標籤

plt.legend(loc=2) # legend 圖例,loc:圖例在圖中的地理位置

plt.xlabel('hours')

plt.ylabel('scores')

# 驗證模型(測試演算法)

rdf = job_df.corr() # corr() 相關係數矩陣,即給出了任意兩個變數之間的相關係數

rdfmodel.score(x_test,y_test) # 用你訓練好的模型在測試集上進行評分(0~1)1分代表最好

# 使用模型

# 訓練資料散點圖

plt.scatter(x_train,y_train,color='blue',label='train data')

# 訓練資料的**值

y_train_pred = model.predict(x_train)

# 繪製最佳擬合線

plt.plot(x_train,y_train_pred,color='black',linewidth=1,label='best line')

# 測試資料散點圖

plt.scatter(x_test,y_test,color='red',label='test data')

# 新增圖示標籤

plt.legend(loc=2) # legend 圖例,loc:圖例在圖中的地理位置

plt.xlabel('hours')

plt.ylabel('scores')

python 一元線性回歸模型

模型中只有乙個自變數和因變數可表示成 數學公式可表示成 其中a為模型的截距項,b為模型的斜率項,就是如何根據自變數x和因變數y求解回歸係數a和b。如果擬合線能夠精確地捕捉到每乙個點 所有的散點全部落在擬合線上 那麼對應的誤差項 誤差平方和的公式可以表示為 公式轉換 求解a和b 樣本量 n incom...

一元線性回歸模型

在回歸模型裡,線性回歸絕對是最簡單的,但這並不妨礙它成為回歸問題上的佼佼者。對於絕大部分的資料分析場景,線性回歸是我們的首選。歸其原因,有幾點 模型簡單且適用於大資料。訓練起來也非常快,資源消耗也少。線性回歸的評估標準?一種最簡單的方法就是測量真實值和 值之間的差異,也叫做誤差。假設一條線很好地擬合...

一元線性回歸模型

按西瓜書公式寫的,比較簡陋,但可以執行幫助理解 import math d 65 6 50,5 120,15 98 12 51,6 66 8 70,10 78 11 75,10 120,8 45 7 該資料集表示 體重,血糖值 體重為x 血糖值為標記 一元線性回歸試圖求得g ax b使g擬合f 輸入...