我正试图从拟合模型中生成预测(使用scikit learn,一种使用MultiTaskLasso的简单线性回归)。我假设coeff_存储特征的权重。假设有5个标签和200个特征,在2D中应该是5*200。我所做的是:(在python中)预测=np.dot(X_test,coeff_.T)+intercept_。但似乎出了什么问题。当我切换到使用scikit-learn的函数预测(X_test)时,结果是正确的。有人能告诉我我做错了什么吗?
区别只是这一步,当我使用预测时,它是正确的;当我使用我的代码时,它是错误的。
如果predict
工作,则sklearn.linear_model.decision_function
工作:
def decision_function(self, X):
"""Decision function of the linear model.
Parameters
----------
X : {array-like, sparse matrix}, shape = (n_samples, n_features)
Samples.
Returns
-------
C : array, shape = (n_samples,)
Returns predicted values.
"""
X = check_array(X, accept_sparse=['csr', 'csc', 'coo'])
return safe_sparse_dot(X, self.coef_.T,
dense_output=True) + self.intercept_
它可以做与您建议的相同的事情,但可以优雅地处理稀疏矩阵。如果你的矩阵都不是稀疏的,那么你应该再次检查X_test
。