You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建回归预测函数:数据集拆分与RMSE计算问题咨询

数据集拆分与回归模型整合问题解答

问题1:修复isin()拆分数据集的报错

isin()方法要求传入列表、数组这类可迭代的类列表对象,直接传单个整数会触发报错。结合你的需求(训练集用2021年数据,测试集用其余年份),正确的拆分代码有两种写法:

写法一(用isin()):

# 训练集:2021年数据
train = df3[df3['year'].isin([2021])]
# 测试集:非2021年的数据
test = df3[~df3['year'].isin([2021])]

写法二(直接用等于判断,更简洁):

train = df3[df3['year'] == 2021]
test = df3[df3['year'] != 2021]

问题2:整合线性回归模型并返回RMSE

先导入所需依赖库,再把数据集拆分、模型训练、RMSE计算整合成一个函数,以下是完整可运行代码:

import numpy as np
import math
from sklearn.linear_model import LinearRegression

def calculate_revenue_rmse(df):
    # 1. 拆分训练集和测试集
    train = df[df['year'] == 2021]
    test = df[df['year'] != 2021]
    
    # 2. 分离特征与目标变量
    # 假设特征是year和revenue之外的所有列,可根据你的实际衍生特征调整
    X_train = train.drop(['year', 'revenue'], axis=1)
    y_train = train['revenue']
    X_test = test.drop(['year', 'revenue'], axis=1)
    y_test = test['revenue']
    
    # 3. 训练最简线性回归模型
    model = LinearRegression()
    model.fit(X_train, y_train)
    
    # 4. 预测并按要求计算RMSE
    y_pred = model.predict(X_test)
    mse = np.square(np.subtract(y_test, y_pred)).mean()
    rmse = math.sqrt(mse)
    
    return rmse

# 调用函数传入你的数据框df3
final_rmse = calculate_revenue_rmse(df3)
print(f"测试集RMSE结果:{final_rmse}")

代码说明:

  • 特征列可根据实际衍生特征调整,若有不需要的特征,直接在drop()方法中添加列名即可
  • LinearRegression()是sklearn库的最简线性回归模型,无需额外参数即可使用
  • 严格按照你指定的MSE、RMSE计算公式实现,逻辑完全匹配需求

内容的提问来源于stack exchange,提问作者Pixel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:01:06