一、多元線性回歸分析(Multiple regression)
1.與簡(jiǎn)單線性回歸相比較,具有多個(gè)自變量x
2.多元回歸模型
其中是誤差值,與簡(jiǎn)單線性回歸分析中的要求特點(diǎn)相一致。其余的系數(shù)和截距為參數(shù)。
3.多元回歸方程
4.估計(jì)多元回歸方程(點(diǎn)估計(jì))
5.估計(jì)方法
使方差和最小,即
從而得到一個(gè)唯一的超平面。
二、自變量里沒有類別數(shù)據(jù)的實(shí)例
2.1數(shù)據(jù):
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.1
2.2代碼
from numpy import genfromtxt #將導(dǎo)入的數(shù)據(jù)轉(zhuǎn)換為numparry(即SK包中可以進(jìn)行運(yùn)算的矩陣類型的數(shù)據(jù))
from sklearn import linear_model#SK包里的數(shù)據(jù)集和線性模型
import numpy as np
dataPath = r"Delivery.csv"#r后面的內(nèi)容默認(rèn)為一個(gè)完整的字符串,忽略里面的\
deliveryData = genfromtxt(dataPath,delimiter=',')
print("data")#將已經(jīng)輸入的數(shù)據(jù)打印出來查看
print(deliveryData)
x= deliveryData[:,:-1]#提取所有的行和除倒數(shù)第一列之外的所有的列
y = deliveryData[:,-1]#提取所有行和最后一列的數(shù)據(jù)
print(x)#打印x的數(shù)據(jù)
print(y)#打印y的數(shù)據(jù)
lr = linear_model.LinearRegression()#定義一個(gè)模型變量名lr,調(diào)用sklearn包中線性模型線性回歸分析方法
lr.fit(x, y)#利用上述模型對(duì)lr中的x,y數(shù)據(jù)進(jìn)行建模
print(lr)
print("coefficients:")
print(lr.coef_)#獲取到的截面的參數(shù)值
print("intercept:")
print(lr.intercept_)#獲取到的截距的參數(shù)值
xPredict = np.array([102,5]).reshape(1,-1)
yPredict = lr.predict(xPredict)#對(duì)所給出的x的預(yù)測(cè)值進(jìn)行預(yù)測(cè)
print("predict:")
print(yPredict)#打印預(yù)測(cè)的結(jié)果
運(yùn)行結(jié)果:
data
[[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.1]]
[[100. 4.]
[ 50. 3.]
[100. 4.]
[100. 2.]
[ 50. 2.]
[ 80. 2.]
[ 75. 3.]
[ 65. 4.]
[ 90. 3.]
[ 90. 2.]]
[9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6 6.1]
LinearRegression()
coefficients:
[0.0611346 0.92342537]
intercept:
-0.8687014667817126
predict:
[9.98415444]
Process finished with exit code 0
三、自變量中含有類別型的數(shù)據(jù)
3.1數(shù)據(jù)
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,0,0,1,6.1
3.2代碼文章來源:http://www.zghlxwxcb.cn/news/detail-462782.html
from numpy import genfromtxt #將導(dǎo)入的數(shù)據(jù)轉(zhuǎn)換為numparry(即SK包中可以進(jìn)行運(yùn)算的矩陣類型的數(shù)據(jù))
import numpy as np
from sklearn import linear_model #SK包里的數(shù)據(jù)集和線性模型
datapath=r"Delivery_Dummy.csv" #r后面的內(nèi)容默認(rèn)為一個(gè)完整的字符串,忽略里面的\
deliveryData = genfromtxt(datapath,delimiter=",")
x = deliveryData[1:,:-1]#提取所有的行和除倒數(shù)第一列之外的所有的列
y = deliveryData[1:,-1]#提取所有行和最后一列的數(shù)據(jù)
print(x)
print(y)
mlr = linear_model.LinearRegression()#定義一個(gè)模型變量名lr,調(diào)用sklearn包中線性模型線性回歸分析方法
mlr.fit(x, y)#利用上述模型對(duì)lr中的x,y數(shù)據(jù)進(jìn)行建模
print(mlr)
print("coef:")
print(mlr.coef_)#獲取到的截面的參數(shù)值
print("intercept")
print(mlr.intercept_)#獲取到的截距的參數(shù)值
xPredict = np.array([90,2,0,0,1]).reshape(1,-1)
yPredict = mlr.predict(xPredict)#對(duì)所給出的x的預(yù)測(cè)值進(jìn)行預(yù)測(cè)
print("predict:")
print(yPredict)#打印預(yù)測(cè)的結(jié)果
運(yùn)行結(jié)果:文章來源地址http://www.zghlxwxcb.cn/news/detail-462782.html
[[ 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. 0. 0. 1.]]
[4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6 6.1]
LinearRegression()
coef:
[ 0.05446701 0.62208122 -0.10896785 0.5572758 -0.44830795]
intercept
0.44678510998308685
predict:
[6.14467005]
Process finished with exit code 0
到了這里,關(guān)于基于Python的多元線性回歸分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!