機器學習——多元線性迴歸分析(multiple regression)及應用
1、多元迴歸分析與簡單線性迴歸區別
多個自變數x
2、多元迴歸模型
,其中,是引數,是誤差值
3、多元迴歸方程
4、估計多元迴歸方程
,一個樣本被用來計算的點估計
5、估計流程(與簡單線性迴歸類似)
6、估計方法
使sum of squares最小,,運算與簡單線性迴歸類似,涉及線性代數和矩陣代數的運算
7、舉例
一家快遞公司送貨,X1:運輸里程;X2:運輸次數;Y:總運輸時間
8、描述引數含義
:平均每多送1英里,運輸時間延長0.0611小時
:平均每多一次運輸,運輸時間延長0.923小時
9、預測
問題:如果一個運輸任務是跑102英里,運輸6次,預計時間是多長?
10、如果自變數裡面有分型別變數(categorical data),如何處理?
11、關於誤差的分佈
12、對第一個表格的資料,快遞公司運輸問題用Python進行程式碼實現
將運輸里程、運輸次數、總運輸時間按列的形式儲存到檔案TransportData.csv檔案中,如下圖:
Python3.5實現程式碼為:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
from numpy import genfromtxt #genfromtxt函式建立陣列表格資料
import numpy as np
from sklearn import datasets,linear_model
#讀取資料,r後邊內容當做完整的字串,忽略裡面的特殊字元
dataPath = r'F:\PythonCode\Regresssion\TransportData.csv'
transportData = genfromtxt(dataPath,delimiter=',') #將路徑下的文字檔案匯入並轉化成numpy陣列格式
print("transportData:",transportData)
X = transportData[:,:-1] #取所有行和除了最後一列的所有列作為特徵向量
Y = transportData[:,-1] #取所有行和最後一列作為迴歸的值
print("X:",X)
print("Y:",Y)
#建立迴歸模型
regr = linear_model.LinearRegression()
regr.fit(X,Y)
print("coefficients:",regr.coef_) #b1,...,bp(與x相結合的各個引數)
print("intercept:",regr.intercept_) #b0(截面)
x_pred = [102,6]
y_pred = regr.predict(x_pred) #預測
print("y_pred:",y_pred)
執行結果:
transportData: [[ 100. 4. 9.3]
[ 50. 3. 4.8]
[ 100. 4. 8.9]
[ 100. 2. 6.5]
[ 50. 2. 4.2]
[ 80. 2. 6.2]
[ 75. 3. 7.4]
[ 65. 4. 6. ]
[ 90. 3. 7.6]
[ 90. 2. 6.4]]
X: [[ 100. 4.]
[ 50. 3.]
[ 100. 4.]
[ 100. 2.]
[ 50. 2.]
[ 80. 2.]
[ 75. 3.]
[ 65. 4.]
[ 90. 3.]
[ 90. 2.]]
Y: [ 9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6 6.4]
coefficients: [ 0.06231881 0.88000431]
intercept: -0.807517256255
y_pred: [ 10.82902718]
13、當自變數中有分類變數(如:車型)時,多元線性迴歸處理
將分類變數轉化成0,1,2等數字來表示。0:小車,1:SUV,2:卡車,轉碼格式為:用一個3維數表示,所用車輛型別為1,其餘車型為0.
將運輸里程、運輸次數、運輸車型、總運輸時間按列的形式儲存到檔案TransportData2.csv檔案中,轉碼格式如下圖:
轉碼格式:(轉化過程,不是最終儲存內容)
將轉碼後的資料儲存在TransportData2.csv檔案中:
對前面的程式碼稍作修改即可:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu
#多元線性迴歸處理自變數中有分類變數
from numpy import genfromtxt #genfromtxt函式建立陣列表格資料
import numpy as np
from sklearn import datasets,linear_model
#讀取資料,r後邊內容當做完整的字串,忽略裡面的特殊字元
dataPath = r'F:\PythonCode\Regresssion\TransportData2.csv'
transportData = genfromtxt(dataPath,delimiter=',') #將路徑下的文字檔案匯入並轉化成numpy陣列格式
print("transportData:",transportData)
X = transportData[:,:-1] #取所有行和除了最後一列的所有列作為特徵向量
Y = transportData[:,-1] #取所有行和最後一列作為迴歸的值
print("X:",X)
print("Y:",Y)
#建立迴歸模型
regr = linear_model.LinearRegression()
regr.fit(X,Y)
print("coefficients:",regr.coef_) #b1,...,b5(與x相結合的各個引數)
print("intercept:",regr.intercept_) #b0(截面)
x_pred = [102,6,0,0,1]
y_pred = regr.predict(x_pred) #預測
print("y_pred:",y_pred)
執行結果:
transportData: [[ 100. 4. 0. 1. 0. 9.3]
[ 50. 3. 1. 0. 0. 4.8]
[ 100. 4. 0. 1. 0. 8.9]
[ 100. 2. 0. 0. 1. 6.5]
[ 50. 2. 0. 0. 1. 4.2]
[ 80. 2. 0. 1. 0. 6.2]
[ 75. 3. 0. 1. 0. 7.4]
[ 65. 4. 1. 0. 0. 6. ]
[ 90. 3. 1. 0. 0. 7.6]
[ 90. 2. 1. 0. 0. 6.4]]
X: [[ 100. 4. 0. 1. 0.]
[ 50. 3. 1. 0. 0.]
[ 100. 4. 0. 1. 0.]
[ 100. 2. 0. 0. 1.]
[ 50. 2. 0. 0. 1.]
[ 80. 2. 0. 1. 0.]
[ 75. 3. 0. 1. 0.]
[ 65. 4. 1. 0. 0.]
[ 90. 3. 1. 0. 0.]
[ 90. 2. 1. 0. 0.]]
Y: [ 9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6 6.4]
coefficients: [ 0.05545649 0.69545199 -0.1734737 0.57081602 -0.39734232]
intercept: 0.197201946472
y_pred: [ 9.62913307]
相關文章
- 機器學習-----線性迴歸淺談(Linear Regression)機器學習
- 多元線性迴歸模型模型
- 【機器學習】--線性迴歸從初識到應用機器學習
- 機器學習-線性迴歸機器學習
- 通俗理解線性迴歸(Linear Regression)
- 機器學習之線性迴歸機器學習
- 機器學習整理(線性迴歸)機器學習
- 資料分析與挖掘 - R語言:多元線性迴歸R語言
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 大資料分析筆記 (4.1) - 線性迴歸分析(Linear Regression)大資料筆記
- Spark2 Linear Regression線性迴歸Spark
- 利用TensorFlow實現多元線性迴歸
- 【機器學習】線性迴歸預測機器學習
- 機器學習5-線性迴歸機器學習
- 【TensorFlow篇】--Tensorflow框架初始,實現機器學習中多元線性迴歸框架機器學習
- 【機器學習】--線性迴歸中soft-max從初始到應用機器學習
- 預測演算法之多元線性迴歸演算法
- 【機器學習】線性迴歸原理介紹機器學習
- 【機器學習】線性迴歸sklearn實現機器學習
- 機器學習實戰(一)—— 線性迴歸機器學習
- 線性迴歸(吳恩達機器學習)吳恩達機器學習
- spark Ml 機器學習之 線性迴歸Spark機器學習
- 機器學習筆記(1):線性迴歸機器學習筆記
- 機器學習——簡單線性迴歸(上)機器學習
- 機器學習——簡單線性迴歸(下)機器學習
- 統計學 迴歸分析( Regression Analysis)
- 機器學習回顧篇(3):線性迴歸機器學習
- 【機器學習】線性迴歸python實現機器學習Python
- 資料分析:線性迴歸
- 線性迴歸(Linear Regression)演算法優缺點演算法
- 【深度學習基礎-13】非線性迴歸 logistic regression深度學習
- Multiple Regression
- 機器學習_最小二乘法,線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 手擼機器學習演算法 - 線性迴歸機器學習演算法
- 機器學習入門:多變數線性迴歸機器學習變數
- 【機器學習筆記】:大話線性迴歸(一)機器學習筆記
- 【機器學習筆記】:大話線性迴歸(二)機器學習筆記
- 機器學習--線性迴歸--梯度下降的實現機器學習梯度