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

使用Azure ML的OrdinalEncoder时遇AttributeError:无_infrequent_enabled属性

解决Azure ML中OrdinalEncoder的AttributeError: 没有_infrequent_enabled属性问题

问题原因

这个错误的核心是scikit-learn版本不兼容:_infrequent_enabled是scikit-learn 1.2.0及以上版本为OrdinalEncoder新增的内部属性,而Azure ML默认环境搭载的scikit-learn版本大概率低于这个版本,导致调用时找不到该属性。

可行解决方案

1. 升级scikit-learn版本

在你的Azure ML训练流程中,强制安装符合要求的scikit-learn版本:

  • 如果用脚本内安装,添加:
!pip install --upgrade scikit-learn>=1.2.0
  • 如果用Azure ML的conda环境配置文件(conda.yaml),修改依赖项:
dependencies:
  - python=3.8
  - scikit-learn>=1.2.0
  # 其他依赖项...

2. 验证版本是否生效

在训练脚本开头加入版本校验代码,确认升级成功:

import sklearn
assert sklearn.__version__ >= "1.2.0", f"需要scikit-learn 1.2.0+,当前版本:{sklearn.__version__}"

3. 旧版本兼容方案(无法升级时)

如果受限于环境政策不能升级,可以手动实现序数编码逻辑,示例:

import pandas as pd

def custom_ordinal_encode(df, col, order):
    # 自定义编码映射
    encode_map = {val:i for i, val in enumerate(order)}
    return df[col].map(encode_map)

# 使用示例
df['encoded_col'] = custom_ordinal_encode(df, 'target_col', ['low', 'medium', 'high'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:43:09