機器學習之線性回歸

2021-09-26 14:06:58 字數 2492 閱讀 2681

'''

機器學習之線性回歸

已有資料是:電視廣告的投入(x)、產品銷售量(y)

'''import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import linearregression

import os

import pickle

#儲存模型

from sklearn.externals import joblib

#讀取csv檔案

data = pd.read_csv(

'data/advertising.csv'

)#顯示出前5條資料

print

(data.head())

#每列是什麼

print

(data.columns)

#通過資料視覺化分析資料

# plt.figure(figsize=(16,9))

# plt.scatter(data['tv'],data['sales'],c='red')

# plt.xlabel('money spent on tv ads')

# plt.ylabel('sales')

# plt.show()

#訓練線性回歸模型

x = data[

'tv'

].values.reshape(-1

,1)y = data[

'sales'

].values.reshape(-1

,1)'''

coef_ 存放回歸係數

intercept_則存放截距

'''reg = linearregression(

)reg.fit(x,y)

#儲存模型

s = pickle.dumps(reg)

#恢復模型

clf2 = pickle.loads(s)

#**print

(clf2.predict([[

200]])

)print

('投入一億元的電視廣告, 預計的銷售量為億'

.format

(clf2.predict([[

200]])

[0][

0]))

print

(reg.coef_[0]

[0])

print

('a = '

.format

(reg.coef_[0]

[0])

)print

('b = '

.format

(reg.intercept_[0]

))print

('線性模型為:y = x + '

.format

(reg.coef_[0]

[0], reg.intercept_[0]

))#視覺化訓練好的線性回歸方程模型

'''predict(x):**方法,將返回**值y_pred

'''predictions = reg.predict(x)

plt.figure(figsize=(16

,9))

plt.scatter(data[

'tv'

], data[

'sales'

], c =

'black'

)#畫那一條線

plt.plot(data[

'tv'

], predictions,c =

'blue'

, linewidth=2)

plt.xlabel(

"money spent on tv ads"

)plt.ylabel(

"sales"

)plt.show(

)#做**

# predictions = reg.predict([[100]])

# print('投入一億元的電視廣告, 預計的銷售量為億'.format( predictions[0][0]) )

結果:

tv  sales

0 230.1 22.1

1 44.5 10.4

2 17.2 9.3

3 151.5 18.5

4 180.8 12.9

index(['tv', 'sales'], dtype='object')

[[16.53992164]]

投入一億元的電視廣告, 預計的銷售量為16.54億

0.047536640433019764

a = 0.047537

b = 7.0326

線性模型為:y = 0.047537x + 7.0326

[finished in 15.3s]

機器學習之線性回歸

訓練樣例 x y 輸入變數 特徵 x ps n 1行,1 列 輸出變數 目標變數 y訓練樣例總數 m 特徵維度 n第 i 個訓練樣例 x i y i 所有訓練樣例的輸入變數組成的矩陣 x ps m行,n 1 列,每行是 x i t 所有訓練樣例的輸出變數組成的矩陣 y ps m行,1 列 下表是某地...

機器學習之線性回歸

線性回歸就是用線性方程去擬合一組資料,x 的最高端是1,用方程可以表示為 h x 0 1x1 n xn我們令 x0 1則上式可以改寫為 h x i 0n ixi tx 既然是擬合的模型,則肯定會存在不符合該模型的點,第 i 個點的真實值與模型 的值之間的差稱為誤差 e h x i y i 假設總共有...

機器學習之線性回歸

線性回歸分析 regression analysis 其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標...