Skip to main content
 首页 » 编程设计

python之Scikit 学习具有多个输出的线性回归

2025年05月04日9lonelyxmas

我正在尝试使用 scikit learn 对多个输出进行线性回归

代码(以随机数据为例):

from sklearn import datasets, linear_model 
import numpy as np 
 
X = np.random.rand(300,10) 
y = np.random.rand(300,9) 
reg_model = linear_model.LinearRegression() 
reg_model.fit(X,y) 

我收到如下错误:

--------------------------------------------------------------------------- 
ValueError                                Traceback (most recent call last) 
/Users/sorensonderby/Documents/workspaces/workspace/Chemoinformatics_proect/notebooks/<ipython-input-116-e235c7159573> in <module>() 
      5 y = np.random.rand(300,9) 
      6 reg_model = linear_model.LinearRegression() 
----> 7 reg_model.fit(X,y) 
      8  
 
/Library/Python/2.7/site-packages/scikit_learn-0.10-py2.7-macosx-10.7-intel.egg/sklearn/linear_model/base.pyc in fit(self, X, y) 
    178                     linalg.lstsq(X, y) 
    179  
--> 180         self._set_intercept(X_mean, y_mean, X_std) 
    181         return self 
    182  
 
/Library/Python/2.7/site-packages/scikit_learn-0.10-py2.7-macosx-10.7-intel.egg/sklearn/linear_model/base.pyc in _set_intercept(self, X_mean, y_mean, X_std) 
    106         """ 
    107         if self.fit_intercept: 
--> 108             self.coef_ = self.coef_ / X_std 
    109             self.intercept_ = y_mean - np.dot(X_mean, self.coef_.T) 
    110         else: 
 
ValueError: operands could not be broadcast together with shapes (10,9) (10) 

我阅读了 fit 方法的 api,它说 x 应该是 n_sample x n_features,y 应该是 n_sample x n_targets。 Link to fit method

我做错了什么?

请您参考如下方法:

您正在使用 scikit-learn 0.10 和 0.13.1 的文档。升级您的安装,然后重试 - 它应该可以工作。