我有以下数据:
(ax1,ax2,ax2)(ay1,ay2,ay3)(bx1,bx2,bx2)(by1,by2,by3)(cx1,cx2,cx2)(cy1,cy2,cy3)(cx1,cx2,cx2)(cy1,cy2,cy3)....
我有一组数据和相应的值。我正在考虑使用Sickitlearn进行线性回归。
我查看了回归模型,但没有找到适合这种向量形式的模型。我是否遗漏了什么?请告诉我是否有任何模型可以接受给定的输入数据,如果我们输入
(zx1,zx2,zx3) 我们可以预测 (zy1, zy2, zy3)
回答:
LinearRegression
中相关的.fit()
方法,如文档所述,接受两个共享行数/样本数的二维数组作为输入
In [26]: import sklearn as skIn [27]: from numpy import arrayIn [28]: model = sk.linear_model.LinearRegression()In [29]: a = array(range(30)).reshape(10,3) # 10个样本,3个特征In [30]: b = a**1.25 -0.25*a + 12 # 10个样本,3个目标In [31]: model.fit(a, b)Out[31]: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)In [32]: a[5], b[5], model.predict([a[5]])Out[32]: (array([15, 16, 17]), array([ 37.76984507, 40. , 42.26923414]), array([[ 39.47550026, 41.57922876, 43.75287898]]))In [33]: