python - linearRegression() 返回列表中的列表(sklearn)

标签 python list regression

我在 Python ( sklearn ) 中进行多元线性回归,但出于某种原因,系数未作为列表正确返回。相反,返回列表中的列表:

from sklearn import linear_model
clf = linear_model.LinearRegression()
# clf.fit ([[0, 0, 0], [1, 1, 1], [2, 2, 2]], [0, 1, 2])
clf.fit([[394, 3878, 13, 4, 0, 0],[384, 10175, 14, 4, 0, 0]],[3,9])
print 'coef array',clf.coef_
print 'length', len(clf.coef_)
print 'getting value 0:', clf.coef_[0]
print 'getting value 1:', clf.coef_[1]

这将返回列表 [[]] 的列表中的值,而不是列表 []。知道为什么会这样吗?输出:

coef array [[  1.03428648e-03   9.54477167e-04   1.45135995e-07   0.00000000e+00
0.00000000e+00   0.00000000e+00]]
length 1
getting value 0: [  1.03428648e-03   9.54477167e-04   1.45135995e-07   0.0000000
0e+00 0.00000000e+00   0.00000000e+00]
getting value 1:
Traceback (most recent call last):
  File "regress.py", line 8, in <module>
    print 'getting value 1:', clf.coef_[1]
IndexError: index out of bounds

但这行得通:

from sklearn import linear_model
clf = linear_model.LinearRegression()
clf.fit ([[0, 0, 0], [1, 1, 1], [2, 2, 2]], [0, 1, 2])
# clf.fit([[394, 3878, 13, 4, 0, 0],[384, 10175, 14, 4, 0, 0]],[3,9])
print 'coef array',clf.coef_
print 'length', len(clf.coef_)
print 'getting value 0:', clf.coef_[0]
print 'getting value 1:', clf.coef_[1]

输出:

coef array [ 0.33333333  0.33333333  0.33333333]
length 3
getting value 0: 0.333333333333
getting value 1: 0.333333333333

最佳答案

这是通过更新 SciKit-Learn 文件夹中的两个文件来解决的。

代码在这里: https://github.com/scikit-learn/scikit-learn/commit/d0b20f0a21ba42b85375b1fbc7202dc3962ae54f

关于python - linearRegression() 返回列表中的列表(sklearn),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11549486/

相关文章:

python - 使用 ctypes 和线程时出现段错误

python - 使用 Shell 脚本在 mySQL Workbench 模型中添加列

可比较对象列表的 Java 语法

Python-获取给定坐标的图方程

python - 如何使用 GridSearchCV 获得每组参数的预测?

python - 拆分一个字符串并添加到 `tuple`

python - 从可迭代的点生成路径

python - 有没有更好的方法来迭代两个列表,每次迭代从每个列表中获取一个元素?

Java - 转换为未知类型

regression - 梯度下降不收敛