在Databricks运行PyCaret无监督异常检测时抛出KeyError: 'UNSUPERVISED_DUMMY_TARGET'
解决Databricks中PyCaret异常检测setup函数的KeyError: 'UNSUPERVISED_DUMMY_TARGET'问题
问题场景
在Databricks笔记本中使用Python 3.8.10 + PyCaret==2.3.5运行无监督异常检测的setup函数时,出现KeyError: 'UNSUPERVISED_DUMMY_TARGET'错误,但相同代码在本地环境可正常执行,更换PyCaret和Python版本后问题仍存在。
使用代码:
import pandas as pd from pycaret.anomaly import * df = pd.read_csv("global_master_data.csv") df_copy = df.iloc[:,7:37].copy() df_copy = df_copy.drop(['Better For You Claim Text','First Selling OC','Manuf. Type','Private Label Brand - Desc'],axis = 1) exp_name = setup(data = df_copy, silent = True)
解决方案
1. 显式指定任务类型
在setup函数中强制指定task_type='anomaly',避免PyCaret自动推断任务类型时出现配置加载异常:
exp_name = setup(data = df_copy, silent = True, task_type='anomaly')
2. 清理数据格式与缺失值
Databricks环境对数据格式敏感度更高,先确保数据无无效列:
# 移除全为空值的列 df_copy = df_copy.dropna(axis=1, how='all') # 尝试将列转换为PyCaret支持的数值/类别类型 df_copy = df_copy.apply(pd.to_numeric, errors='ignore')
3. 重置PyCaret会话
Databricks的会话残留状态可能干扰PyCaret初始化,在setup前重置会话:
from pycaret.utils import reset_session reset_session() # 之后再执行setup exp_name = setup(data = df_copy, silent = True, task_type='anomaly')
4. 切换到Databricks兼容的PyCaret版本
尝试安装PyCaret 2.3.10版本(该版本针对分布式环境做了兼容性优化):
%pip install pycaret==2.3.10
内容的提问来源于stack exchange,提问作者Gagan Saini
相关产品推荐
相关产品推荐

