'''
機器學習之線性回歸
已有資料是:電視廣告的投入(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 其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標...