【问题标题】:How do Linear regression - predict more efficient?线性回归如何更有效地预测?
【发布时间】:2021-07-19 18:12:31
【问题描述】:

我需要更改以下方法来计算并返回线性回归预测 (对于多变量或单变量情况)。

注意:'predict' 方法应该用于测试集的预测, 以及在训练过程中。

输入参数:

  • x_feature_vectors - 一个包含我们想要预测 y_predicted 值的所有特征向量的数据帧, 使用线性回归模型的权重。

    注意:预计 x_feature_vectors 包含虚构的特征列,其中 常数值 1,表示 x_0 虚构特征(称为“x_0”)。

  • trained_w - 训练后的 w 向量,即训练后的权重向量(或训练中某个步骤的权重向量)。

    注意:预计trained_w 系列包含w_0 单元格作为第一个单元格。 所有单元格的索引都应适合“列”(即列标题 是“x_feature_vectors”数据帧的列索引),包括“x_0” 虚构的专栏。

返回值:

  • y_predicted - 每个输入特征向量实例的一系列预测

我的代码:

def predict(x_featureVectors,trained_w):
    
    y_predicted = pd.Series(index=x_featureVectors.index, dtype=float)
    
    for index in x_featureVectors.index:
        y_predicted[index] = 0
        for col in x_featureVectors.columns:
            y_predicted[index] += trained_w[col] * x_featureVectors.loc[index, col]
    
    return y_predicted

我怎样才能更有效地做到这一点?我可以用一个 for 循环来做到这一点吗?

【问题讨论】:

  • 您能否提供一个完整的可运行示例,包括输入和输出数据?谢谢

标签: python pandas numpy machine-learning linear-regression


【解决方案1】:

假设你有一个虚构的列,预测只是每行的点积向量与权重向量:

def predict(x_featureVectors, trained_w):
    return np.dot(x_featureVectors, trained_w)

【讨论】:

  • 非常感谢。你帮了我很多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多