scikit从coef_学习预测

时间:2014-10-12 05:54:39

标签: python scikit-learn linear-regression

我正在尝试从拟合模型生成预测(使用scikit-learn,使用MultiTaskLasso进行简单的线性回归)。我假设coef_存储了特征的权重。假设有5个标签和200个特征,它应该是2D * 5 * 200。我做的是: (在python中)预测= np.dot(X_test,coef_.T)+ intercept_。但似乎有些不对劲。当我切换到使用scikit-learn函数预测(X_test)时,结果是正确的。谁能告诉我我做错了什么?

差异只是这一步,当我使用预测时,它是正确的;当我使用我的代码时,它是错误的。

1 个答案:

答案 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