我正在尝试从拟合模型生成预测(使用scikit-learn,使用MultiTaskLasso进行简单的线性回归)。我假设coef_存储了特征的权重。假设有5个标签和200个特征,它应该是2D * 5 * 200。我做的是: (在python中)预测= np.dot(X_test,coef_.T)+ intercept_。但似乎有些不对劲。当我切换到使用scikit-learn函数预测(X_test)时,结果是正确的。谁能告诉我我做错了什么?
差异只是这一步,当我使用预测时,它是正确的;当我使用我的代码时,它是错误的。
答案 0 :(得分:1)
如果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
。