您的位置:首页 > 编程语言 > Python开发

【深度学习基础-12】多元回归分析基础及进阶-python代码实现

2019-01-14 10:46 971 查看
版权声明:本文为博主原创文章,未经允许,不得转载!欢迎留言附带链接转载! https://blog.csdn.net/qq_15698613/article/details/86425055

目录

1 多元线性回归基本理论

1.1 multiple regression

1.2 多元回归模型

1.3 多元回归方程

1.4 估计多元回归方程

1.5 估计流程(与简单线性回归类似)

1.6 估计方法

1.7 例子

2 使用python实现上述过程,并预测,x1=102,x2=6时的结果

3 进阶:如果自变量x中有不同种类怎么解决?

1 多元线性回归基本理论

1.1 multiple regression

     多个自变量x

1.2 多元回归模型

1.3 多元回归方程

1.4 估计多元回归方程

1.5 估计流程(与简单线性回归类似)

1.6 估计方法

 

1.7 例子

  x1 x2 y
1 100 4 9.3
2 50 3 4.8
3 100 4 8.9
4 100 2 6.5
5 50 2 4.2
6 80 2 6.2
7 75 3 7.4
8 65 4 6.0
9 90 3 7.6
10 90 2 6.1

                                                                  

假设计算出来的b0=-0.869 , b1 = 0.0611 ,  b2 = 0.923,理解,x1加1,则y变化0.0611

2 使用python实现上述过程,并预测,x1=102,x2=6时的结果

[code]from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model

dataPath = r"F:/python/实验/diliver.csv"
data =genfromtxt(dataPath,delimiter=',')

print("数据:")
print(data)

x = data[:, :-1]
y = data[:, -1]

print(x)
print(y)

regr = linear_model.LinearRegression()

regr.fit(x, y)

print("从b1开始输出参数预测")
print(regr.coef_)
print("b0的结果,截面:")
print(regr.intercept_)

#假如x1=102,x2=6,预测新值
xp = [[102, 6]]
print(xp)
yp = regr.predict(xp)
print("预测出来的值:")
print(yp)

运行结果:

3 进阶:如果自变量x中有不同种类怎么解决?

  x1 x2 分类 y
1 100 4 1 9.3
2 50 3 0 4.8
3 100 4 1 8.9
4 100 2 2 6.5
5 50 2 2 4.2
6 80 2 1 6.2
7 75 3 1 7.4
8 65 4 2 6.0
9 90 3 2 7.6

 分类型变量不能直接将分类作为一个参数直接加入,因为1,2,0都没有实际意义,只是用来区分种类

将上述表格的分类进行变换,将种类个数变为列数,如果属于哪一类就为1,其它为0

  x1 x2 0 1 2 y
1 100 4 0 1 0 9.3
2 50 3 1 0 0 4.8
3 100 4 0 1 0 8.9
4 100 2 0 0 1 6.5
5 50 2 0 0 1 4.2
6 80 2 0 1 0 6.2
7 75 3 0 1 0 7.4
8 65 4 0 0 1 6.0
9 90 3 0 0 1 7.6

 

[code]#本程序是用来多元线性回归分析中,自变量含有类别时如何处理
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model

dataPath = r"F:/python/实验/PreDiliver.csv"
data =genfromtxt(dataPath,delimiter=',')

print("数据:")
print(data)

x = data[:, :-1]
y = data[:, -1]

print(x)
print(y)

regr = linear_model.LinearRegression()

regr.fit(x, y)

print("从b1开始输出参数预测:b1,b2,b3,b4,b5")
print(regr.coef_)
print("b0的结果,截面:")
print(regr.intercept_)

#假如x1=102,x2=6,第1类,预测新值
xp = [[102, 6, 0, 1, 0]]
print(xp)
yp = regr.predict(xp)
print("预测出来的值:")
print(yp)

结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: