我想计算点与预测线之间的距离。理想情况下,我希望结果显示在一个名为’Distance’的新列中,该列包含距离值。
我的导入语句:
我的数据样本:
idx Exam Results Hours Studied0 93 8.2327951 94 7.8790952 92 6.9726983 88 6.8540174 91 6.0430665 87 5.5100136 89 5.509297
我目前的代码:
x = df['Hours Studied'].values[:,np.newaxis]y = df['Exam Results'].valuesmodel = LinearRegression()model.fit(x, y)plt.scatter(x, y,color='r')plt.plot(x, model.predict(x),color='k')plt.show()
任何帮助都将不胜感激。谢谢
回答:
你只需要将y
与model.predict(x)
之间的差异赋值给一个新列(如果只需要差异的绝对值,则取绝对值):
#df["Distance"] = abs(y - model.predict(x)) # 如果你只想要差异的绝对值df["Distance"] = y - model.predict(x)print(df)# Exam Results Hours Studied Distance#0 93 8.232795 -0.478739#1 94 7.879095 1.198511#2 92 6.972698 0.934043#3 88 6.854017 -2.838712#4 91 6.043066 1.714063#5 87 5.510013 -1.265269#6 89 5.509297 0.736102
这是因为你的模型为每个自变量(x
)预测一个y
(因变量)。x
坐标是相同的,所以y
的差异就是你想要的值。