Python和科学计算认证群组  - 讨论区

标题:多变量的线性回归问题

2013年01月09日 星期三 01:17

已知 x = np.array([...])

y = np.array([...])

z = np.array([...])

如何利用 方程 z=cy+ax+b 线性回归出 参数: a, b,c 和 相关系数R^2 .

感谢!

 

2013年01月09日 星期三 14:35

import numpy as np
from sklearn import linear_model
clf = linear_model.LinearRegression()

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
z = 0.2*x - 0.5*y + 1.2 + np.random.rand(N)*0.02

clf.fit(np.c_[x, y], z)
print clf.coef_, clf.intercept_

2013年01月11日 星期五 21:17

为什么这个 linear_model.LinearRegression() 回归的结果不稳定?

我稍微改了下:

import numpy as np

from sklearn import linear_model

clf = linear_model.LinearRegression()

 

N = 10

 

x = np.arange(N)

y = np.arange(N)

 

z = 0.2*x + 0.5*y + 1.2

 

clf.fit(np.c_[x, y], z)

 

print clf.coef_, clf.intercept_

 

当N = 10 , 50, 100,200, ... 时;结果分别依次如下:

[ 0.35  0.35] 1.2

[ 0.06256389  0.63743611] 1.2

[ 0.19425507  0.50574493] 1.2

[-0.04398223  0.74398223] 1.2

 

另外如何输出 相关系数R^2 ?

2013年01月12日 星期六 07:22

你的x和y是一样的,这样的话只要两个系数加起来是0.7就都是正确的。

2013年01月13日 星期日 20:13

明白了,多谢斑竹!

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号