用python将一个存储物体坐标信息的列表,按照五个元素一组合的方式,对元素取出组合成一个新列表输出,并对列表里的元素进行最小二乘法拟合,输出MAE(平均绝对误差),MSE(均方误差),RMSE(均方根误差),
时间: 2023-05-13 18:05:48 浏览: 118
Python要求O(n)复杂度求无序列表中第K的大元素实例
好的,让我来回答你的问题。以下是代码:
```python
import numpy as np
from sklearn.linear_model import LinearRegression
# 原始列表
coords = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12), (13, 14, 15), (16, 17, 18)]
# 将列表按照五个元素一组合的方式,对元素取出组合成一个新列表
new_list = [coords[i:i+5] for i in range(0, len(coords), 5)]
# 对列表里的元素进行最小二乘法拟合
mae_list = []
mse_list = []
rmse_list = []
for group in new_list:
x = [item[0] for item in group]
y = [item[1] for item in group]
z = [item[2] for item in group]
X = np.array([x, y]).T
Y = np.array(z)
model = LinearRegression().fit(X, Y)
predicted = model.predict(X)
mae = np.mean(np.abs(predicted - Y))
mse = np.mean((predicted - Y) ** 2)
rmse = np.sqrt(mse)
mae_list.append(mae)
mse_list.append(mse)
rmse_list.append(rmse)
# 输出MAE(平均绝对误差),MSE(均方误差),RMSE(均方根误差)
print("MAE:", np.mean(mae_list))
print("MSE:", np.mean(mse_list))
print("RMSE:", np.mean(rmse_list))
```
希望这个代码对你有所帮助!
阅读全文