【问题标题】:How to code a piece-wise linear regression如何编写分段线性回归
【发布时间】:2019-04-08 23:50:23
【问题描述】:

我对编码非常陌生,我需要在 python 中绘制一个具有分段线性回归的图形(用于课程作业)。基本上我有五个数据点,我想要连接它们的单独的线。如果有人可以提供帮助,将不胜感激。

(除此之外,我想知道如何编写代码来实现介于值之间的概率,例如 24,33 等) 这是我到目前为止的代码:

ages = [20, 30, 35, 40, 45]

probabilities = [1 / 1500, 1 / 800, 1 / 270, 1 / 100, 1 / 50]

import matplotlib.pyplot as plt

%matplotlib inline

plt.title('Maternal age affecting likelihood of having a Down Syndrome child')

plt.xlabel('$Age$')

plt.ylabel('$Probability$')

plt.scatter(ages, probabilities)

【问题讨论】:

  • 所以你想在这些点之间画直线?还是你想在整个数据集上拟合一条曲线,我很困惑......
  • 对不起,如果我说得不好,点之间的直线

标签: python graph piecewise


【解决方案1】:

您获得积分是因为您选择了plt.scatter(),它会生成散点图。如果您想要线图,只需切换到plt.plot(),例如:

import matplotlib.pyplot as plt

ages = [20, 30, 35, 40, 45]
probabilities = [1 / 1500, 1 / 800, 1 / 270, 1 / 100, 1 / 50]

plt.title('Maternal age affecting likelihood of having a Down Syndrome child')
plt.xlabel('$Age$')
plt.ylabel('$Probability$')
plt.plot(ages, probabilities)
plt.show()

产量:

使用numpy 根据这些数据进行插值非常简单。你只需运行:

import numpy as np

ages = [20, 30, 35, 40, 45]
probabilities = [1 / 1500, 1 / 800, 1 / 270, 1 / 100, 1 / 50]

prob_32 = np.interp(32, ages, probabilities) # change 32 to whatever age you want
print(prob_32)

但这会将概率打印为 .00223 而不是说 1/450,但您可以只说 1/prob_32 以获得 450 数字!

【讨论】:

  • 太棒了-谢谢!我想使用图表中的模型来获得我相信的值
猜你喜欢
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
  • 2018-11-18
  • 2020-05-30
  • 2020-02-06
  • 1970-01-01
相关资源
最近更新 更多