TypeError: __init__() got an unexpected keyword argument 'categorical_features'

我的代码:(scikit-learn 0.22.1 python 3.7.4)

在这里插入图片描述

错误如下:

TypeError: __init__() got an unexpected keyword argument 'categorical_features'.

错误提示的意思是函数__init__()得到了一个不期望得到的参数,意思是没有参数’categorical_features’。原来scikit-learn 版本在0.22.1往后,OneHotEncoder没有参数categorical_features。
如果你的scikit-learn 版本在0.22.1往前依然使用参数categorical_features,不会出错,但会有Warning提示(红线),不能指定编码列数,提示你修改为ColumnTransformer,在其参数中可指定。
在这里插入图片描述

改正措施:

引入ColumnTransformer(),将OneHotEncoder这个转换器放在里边,指定要编码的列,[1]表示第二列即国家。性别可直接用LabelEncoder分类。
在这里插入图片描述

ColumnTransformer参数解释[1]

ColumnTransformer(transformers, -->(名称,转换器,列)元组的列表,指定要应用于数据子集的转换器对象。

remainder=‘drop’, -->默认为’drop’,未指定的列将被删除.通过指定
remainder=‘passthrough’,所有未指定的剩余列transformers将自动通过)

sparse_threshold=0.3,–>如果不同变压器的输出包含稀疏矩阵,则如果总密度低于此值,则将它们堆叠为稀疏矩阵。使用sparse_threshold=0总是返回密集。当转换后的输出包含所有密集数据时,堆叠结果将密集,并且将忽略此关键字。
)

Reference

[1]https://scikit-learn.org/stable/modules/generated/sklearn.compose.ColumnTransformer.html#sklearn.compose.ColumnTransformer

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
根据提供的引用内容,出现了TypeError: __init__() got an unexpected keyword argument 'date'和TypeError: __init__() got an unexpected keyword argument ‘encoding’的问题。这两个错误通常是由于使用了不支持的参数导致的。 对于第一个错误,TypeError: __init__() got an unexpected keyword argument 'date',这个错误通常发生在调用某个函数或方法时传递了不支持的参数。要解决这个问题,你需要检查你的代码,确保你传递的参数是正确的,并且与函数或方法的定义相匹配。 对于第二个错误,TypeError: __init__() got an unexpected keyword argument ‘encoding’,这个错误通常发生在使用json模块读取json文件时传递了不支持的参数。要解决这个问题,你需要检查你的代码,确保你传递的参数是正确的,并且与json模块的函数或方法的定义相匹配。 以下是两个示例来演示如何解决这两个错误: 1. 解决TypeError: __init__() got an unexpected keyword argument 'date'错误的示例: ```python class Person: def __init__(self, name): self.name = name person = Person(name='John', date='2021-01-01') # 错误的调用,传递了不支持的参数'date' ``` 在上面的示例中,我们在实例化Person类时传递了一个不支持的参数'date',导致了TypeError: __init__() got an unexpected keyword argument 'date'错误。要解决这个错误,我们需要检查代码并删除不支持的参数'date'。 2. 解决TypeError: __init__() got an unexpected keyword argument ‘encoding’错误的示例: ```python import json with open('data.json', 'r', encoding='utf-8') as file: # 错误的调用,传递了不支持的参数'encoding' data = json.load(file) ``` 在上面的示例中,我们在使用json模块读取json文件时传递了一个不支持的参数'encoding',导致了TypeError: __init__() got an unexpected keyword argument ‘encoding’错误。要解决这个错误,我们需要检查代码并删除不支持的参数'encoding'。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值