【问题标题】:Distance between Linear Regression slope and data point线性回归斜率和数据点之间的距离
【发布时间】:2018-03-06 20:41:19
【问题描述】:

我有一个 LinearRegression() 模型。我现在要做的基本上是计算一些数据点和回归线之间的距离。

我的数据点是二维点(x, y)

我的问题是:如何从LinearRegression() 模型中得到直线方程?

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    拟合模型后,您可以调用coefintercept_ 属性来查看系数和截距分别是多少。

    但这需要为您的模型编写一个构造公式。我的建议是,一旦您建立模型,做出预测并根据真正的 y 值对其进行评分 -

    from sklearn.metrics import mean_squared_error
    mean_squared_error(y_test, y_pred) # y_test are true values, y_pred are the predictions that you get by calling regression.predict()
    

    如果目标是计算距离,您可以使用sklearn.metrics 便利函数,而不是寻找方程式并自己手动计算。手动的方法是 -

    import numpy as np
    y_pred = np.concatenate(np.ones(X_test.shape[0]), X_test) * np.insert(clf.coef_,0,clf.intercept_)
    sq_err = np.square(y_pred - y_test)
    mean_sq_err = np.mean(sq_err)
    

    【讨论】:

    • 我基本上是在寻找点和线之间的正常距离并获得分数——因为数据是二维的,这实际上是在做一个穷人的 PCA。
    【解决方案2】:

    documentation 中,使用clf.coef_ 作为权重向量,使用clf.intercept_ 作为偏差:

    coef_ : 数组,形状 (n_features, )(n_targets, n_features)
    线性回归问题的估计系数。如果多个 在拟合期间传递目标(y 2D),这是一个 2D 形状数组 (n_targets, n_features),如果只通过一个目标,这是一个 长度为n_features 的一维数组。

    intercept_ : 数组中的独立项 线性模型。

    一旦你有了这些,请参阅here

    【讨论】:

    • 不知何故我错过了这个。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2014-02-15
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2020-05-05
    相关资源
    最近更新 更多