python - 有没有办法从使用 sklearn 进行多元线性回归的预测中获取解释变量的值?
问题描述
我试图了解是否有一种方法,使用sklearn.linear_model.LinearRegression()
来获取解释变量的值,给定X
.
例如 - 查看汽车的 MPG。我可以使用多个解释变量构建模型,然后(成功地)预测给定 X 集的 MPG。但是,我可以做相反的事情并给出Y
然后得到预测X
值吗?
抱歉,如果不是很清楚!
解决方案
当使用线性回归逼近Y
与某些点相关的一些值时X
,我们正在寻找的是最接近最小二乘意义上的点的线性函数 (f(x) = ax + k)。因此,您没有得到Y
,而是得到了最接近您的输入的线性函数。
你能做相反的事情,那就是构建一个预测 $X$ 而不是 $Y$ 的函数。考虑sklearn.linear_model.LinearRegression中的示例,我们将对其进行一些调整。
>>> import numpy as np
>>> from sklearn.linear_model import LinearRegression
>>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
>>> # y = 1 * x_0 + 2 * x_1 + 3
>>> y = np.dot(X, np.array([1, 2])) + 3
>>> # Changing y <-> X
>>> reg = LinearRegression().fit(y, X)
>>> # Changing y <-> X
>>> reg.score(y, X)
0.8269230769230769
>>> reg.coef_
array([[0.23076923],
[0.38461538]])
>>> reg.intercept_
array([-0.46153846, -1.26923077])
>>> reg.predict(np.array([[16.]]))
array([[3.23076923, 4.88461538]])
这可以让您根据车辆的 MPG 预测解释变量。尽管这项工作考虑到这种方法可能会给您带来非常糟糕的结果,因为您正试图通过该空间内的一条线来接近多维空间内的点云。在尝试使用您的模型预测任何内容之前,请先查看您的分数。
推荐阅读
- r - 将数字格式化为特定位数和自定义标点符号
- c++ - 是否可以用 C++ 中的另一个线程终止一个线程?
- php - php 文件,公共函数,数组,添加一些 css
- javascript - Firefox 扩展:允许打开新标签页
- asp.net - 无法在其他脚本之前加载 jquery
- angular - 连接丢失时文档中缺少重新连接功能
- asp.net-core-2.0 - aspnet core azure function not starting with string array in local.settings.json
- excel - 如何在Excel中对指定数字以上的金额求和
- testing - Using multiple `--tests`
- node.js - Nodejs Multer diskStorage not working - why destination targeting temp folder and not uploading