import pandas as pd import numpy as np # 读取Excel文件 path = r'F:\BM2023\BM20230531\冠幅\all.xlsx' df = pd.read_excel(path) # 从数据框中提取两列数据,并转换为numpy数组 x = df["wp"].values y = df["w"].values # 进行直线拟合,并计算拟合误差的均方根 coefficients = np.polyfit(x, y, 1) y_fit = np.polyval(coefficients, x) rmse = np.sqrt(np.mean((y - y_fit) ** 2)) print("拟合误差的均方根为:", rmse)增加计算R2的代码
时间: 2024-03-04 15:51:45 浏览: 292
要计算R2,需要先计算总离差平方和(TSS)和残差平方和(RSS),然后用1减去RSS/TSS即可得到R2的值。以下是增加计算R2的代码:
import pandas as pd
import numpy as np
from sklearn.metrics import r2_score # 导入r2_score函数
# 读取Excel文件
path = r'F:\BM2023\BM20230531\冠幅\all.xlsx'
df = pd.read_excel(path)
# 从数据框中提取两列数据,并转换为numpy数组
x = df["wp"].values
y = df["w"].values
# 进行直线拟合,并计算拟合误差的均方根
coefficients = np.polyfit(x, y, 1)
y_fit = np.polyval(coefficients, x)
rmse = np.sqrt(np.mean((y - y_fit) ** 2))
# 计算R2
y_mean = np.mean(y)
tss = np.sum((y - y_mean) ** 2)
rss = np.sum((y - y_fit) ** 2)
r2 = 1 - rss / tss
print("拟合误差的均方根为:", rmse)
print("R2为:", r2)
相关问题
import pandas as pd path= r'F:\BM2022\BM20220918\guanfu\mask\img_name.xlsx' # 读取Excel文件 df = pd.read_excel(path)续写代码,将三列数据写为一列
可以使用 Pandas 库中的 `apply()` 方法和 `lambda` 表达式将三列数据合并为一列。可以在代码中添加如下一行:
```
df['merged_column'] = df.apply(lambda x: str(x['img_source']) + str(x['num']) + '.jpg', axis=1)
```
这行代码的作用是将 `img_source` 列和 `num` 列的内容合并,并在末尾添加 `.jpg`,得到一个新的列 `merged_column`。其中,`apply()` 方法可以对 DataFrame 的每行数据进行操作,`lambda` 表达式用于定义合并三列数据的方法,`axis=1` 表示按行进行操作。最后将新的列保存到 DataFrame 中。
完整代码如下:
```
import pandas as pd
path= r'F:\BM2022\BM20220918\guanfu\mask\img_name.xlsx' # 读取Excel文件
df = pd.read_excel(path) # 读取Excel文件
df['merged_column'] = df.apply(lambda x: str(x['img_source']) + str(x['num']) + '.jpg', axis=1)
# 保存修改后的Excel文件
df.to_excel(path, index=False)
```
这样就将 Excel 文件中的三列数据合并为一列,并保存到了原文件中。
import numpy as np import pandas as pd path = "F:/Desktop/Xiameimei/" data = pd.read_excel(path + 'shuju.xlsx') data.head()写的有问题吗
代码有问题。应该是这样写:
```
import numpy as np
import pandas as pd
path = "F:/Desktop/Xiameimei/"
data = pd.read_excel(path + 'shuju.xlsx')
data.head()
```
这段代码的作用是导入numpy和pandas库,读取"shuju.xlsx"文件,并展示文件的前5行数据。
阅读全文