python - 如何在 sklearn make_column_transformer 中使用 LabelEncoder?
问题描述
如何在 sklearn 管道中使用 LabelEncoder?
注意 以下代码适用于“OneHotEncoder”,但适用于“LabelEncoder”,在这种情况下如何使用LabelEncoder?
MWE
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import make_column_transformer
import sklearn
print(sklearn.__version__) # 0.22.2.post1
df = sns.load_dataset('titanic').head()
le = OneHotEncoder() # this success
# le = LabelEncoder() # this fails
ct = make_column_transformer(
(le, ['sex','adult_male','alone']),
remainder='drop')
ct.fit_transform(df)
$$\begin{align}\mathsf P(N\mid E)&=\dfrac{\mathsf P(N\cap E)}{\mathsf P(E)}\[2ex]&=\dfrac{\mathsf P(N\cap E\mid F),\mathsf P(F)+\mathsf P(N\cap E\mid F^{\small\complement}),\mathsf P(F^{\small\complement} )}{\mathsf P(E\mid F),\mathsf P(F)+\mathsf P(E\mid F^{\small\complement}),\mathsf P(F^{\small\complement}) }\end{对齐}$$
解决方案
从文档中,OneHotEncoder
可以获取数据框并将分类列转换为您看到的向量。LabelEncoder
接受一个系列(你的 y / 因变量)并生成新标签。
OnHotEncoder 的用法:fit_transform(X,[y])
LabelEncoder 的用法:fit_transform(y)
这就是为什么它会告诉你:“ fit_transform() takes 2 positional arguments but 3 were given
”
LabelEncoder
fit_transform
如果您真的想使用它,只需直接调用y 即可。这是一个类似的问题:How to use sklearn Column Transformer?
以下是文档:
推荐阅读
- email - woocommerce 中是否有过滤器或挂钩来更改 WC_Tax::get_rate_label( $key )?
- javascript - 在 redux 中使用 react 路由器
- jquery - 我如何隐藏和显示表单使用 jquery
- ruby - Ruby 生成带有句点属性的 XML 文档
- java - 索引 3 超出长度 3 的范围
- mysql - 如何在 mysql 和 php 中检查早于某个日期的帐户?
- typescript - tsc 和嵌套的 tsconfigs
- django - 为 Django 认证的 API 视图编写测试用例
- scroll - 嵌套 SingleChildScrollView
- julia - y=1/x 的 Julia MethodError