如何拟合Ridge模型?执行时遇KeyError: 'target'错误求助
解决Ridge模型拟合时的KeyError: 'target'问题
第一步:确认数据集的所有列名
错误根源是weather数据集(或切片后的train数据)中不存在名为target的列。先打印所有列名排查:print(weather.columns.tolist())这会输出数据集的全部列,你可以从中找到实际需要作为预测目标的列名。
第二步:修正目标列的引用
根据第一步得到的列名,替换代码中的train["target"]:- 如果是列名拼写错误(比如大小写、空格、符号差异),直接修正为正确列名;
- 如果原本就没有定义
target列,明确你要预测的变量(比如某个未在predictors列表中的气象指标),用对应的列名替代。
第三步:验证训练集的列完整性
切片后的train数据可能因索引问题丢失列(概率极低,但可排查),打印train的列确认:print(train.columns)确保目标列存在于
train中。修正后的示例代码
假设实际目标列名为"Indoor Target Temperature",代码调整如下:from sklearn.linear_model import Ridge reg = Ridge(alpha=.1) predictors = ["Temperature from the first internal sensor", "Outside temperature", "CPU Temperature", "Temperature from the second internal sensor", "Air Pressure", "Humidity"] # 替换为你实际的目标列名 target_column = "Indoor Target Temperature" train = weather.loc[:"Thu 17 Feb 2022 08:57:02 PM"] test = weather.loc["Thu 01 Dec 2022 10:00:02 AM":] # 先检查列是否存在再拟合 if target_column in train.columns: reg.fit(train[predictors], train[target_column]) print("Ridge模型拟合完成") else: print(f"错误:训练集中不存在列 {target_column}")
内容的提问来源于stack exchange,提问作者Wilson
相关产品推荐
相关产品推荐

