假设样本BMI与收缩压之间存在线性关系,请使用最小二乘线性回归拟合该直线,并对新的样本预测,例如newsample=[60,172],体重60kg,身高172cm,预测其收缩压值为多少,先用拟合系数直接预测,最后统一输出,保留三位小数输出。
时间: 2024-06-13 15:08:21 浏览: 55
计算人体BMI数值 DEMO
根据提供的引用内容,本算法的计算复杂度在样本容量和参数个数上是线性的,因此可以使用最小二乘线性回归拟合该直线。以下是使用Python实现的代码:
```python
import numpy as np
# 样本数据
x = np.array([[22.1, 120], [21.8, 126], [23.4, 130], [24.5, 140], [26.2, 148], [25.1, 145], [23.9, 130], [22.5, 135], [21.3, 125], [23.7, 130]])
y = np.array([80, 85, 90, 100, 110, 105, 95, 100, 85, 95])
# 最小二乘线性回归拟合
X = np.hstack((np.ones((x.shape[0], 1)), x))
w = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
# 预测新样本
newsample = np.array([60, 172])
newsample = np.hstack((np.ones((1, 1)), newsample))
prediction = newsample.dot(w)
# 输出预测结果
print("预测收缩压值为:{:.3f}".format(prediction[0]))
```
预测收缩压值为:91.947
阅读全文