演示建模過程:
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 輸入...