将二维数组传递给线性回归(SkLearning)

编程入门 行业动态 更新时间:2024-10-26 09:18:51
本文介绍了将二维数组传递给线性回归(SkLearning)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我要将二维数组传递给线性回归:

x = [[1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 3]] y = [3.9857, 3.6877, 3.6877] x = numpy.array(x) y = numpy.array(y) model = LinearRegression(z,y).fit(z,y)

我没有使用RESHAPE(-1,1),因为它将2D数组转换为3D

但我收到错误:

ValueError: setting an array element with a sequence TypeError: float() argument must be a string or a number, not 'list'

如何才能正确地将二维数组传递给线性回归?

推荐答案

作为注释键入有点长,因此如果您在转换为Numpy数组之前查看x:

print([len(i) for i in x]) [36, 10, 10]

和y的长度为3。可以进行线性回归,但每个观察值的自变量需要具有相同数量的变量。

在您的情况下,列表x的第一个元素应该像其他元素一样具有10个条目。

例如:

import numpy as np from sklearn import linear_model clf = linear_model.LinearRegression() # take the first ten exo = np.array([i[:10] for i in x]) # fit clf.fit(exo,np.array(y)) clf.coef_ array([ 8.12727273e-02, -6.93889390e-18, 8.12727273e-02, 0.00000000e+00, 0.00000000e+00, -2.70909091e-02, 5.41818182e-02, 8.12727273e-02, 2.70909091e-02, 0.00000000e+00])

您得到10个系数,x的每列一个系数。

更多推荐

将二维数组传递给线性回归(SkLearning)

本文发布于:2023-07-29 19:34:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1243458.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   线性   SkLearning

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!