TypeError: fit_transform() が2つの位置引数を取るが、3つ与えられていた場合の解決法
本日、ColumnTransformerメソッドを使用して数値変数と非数値変数の変換を合成する際、palmはカテゴリフィーチャーの1つにLabelEncoder()メソッドを選択し、上記のようにエラーが報告されました ?.しかし、OneHotEncoder(ユニークホットエンコーディング)に切り替えると正常に実行されます。
だから困惑
なぜこのようなことが起こるのでしょうか?
検索するとStackoverflowで同じ質問をしている友人が見つかり、回答者の2人と合わせて回答しました。
LabelEncoder()が適切でない2つの主な理由を発見。
-
なぜなら LabelEncoder()のトランスフォーマーがターゲット変数(y)のエンコードに使用されています。 (参照 公式ドキュメント ) ( この方法を間違って使っている人がかなりいるような気がします。私も含めて
つまりLabelEncoder()は実際には は一次元の値 (y) に対して作用する とすると、多次元特徴列(>=2)を入力するとエラーが報告されます! -
第二に LabelEncoder() は fit_transform(self, y) 関数を呼び出し、そこで2つのパラメータを定義しています。 :
そして パイプラインでColumnTransformer()メソッドを使ってfit_transformを行った場合 メソッドをパイプラインで呼び出すと、デフォルトで fit_transform(self, X, y=None) 関数
ここで3つの定義パラメータが来るのですが...。すると、質問のように豪華なエラーが報告されます❌。
<マーク 要約文は LabelEncoder() は、Pipeline の多次元カテゴリ特徴量/変数変換のための変換器 ColumnTransformer メソッドには適用されません。
次に 解決策は2つあります。
- OrdinalEncoder()の使用法 ;である。
- OneHotEncoder()の使用法 以上、カテゴリ変数/フィーチャの変換方法について2つの方法を紹介しました。
どうりで、たまにヤシが公式ドキュメントに目を通したときに sklearn の多くの公式例では、ColumnTransformer メソッドを使って複数の特徴カラムを変換する場合、一般に OneHotEncoder() を使って複数のカラムに対してカテゴリ特徴を処理します。
参考
sklearn.compose.ColumnTransformer: fit_transform() は2つの位置引数を取りますが、3つが与えられました。
LabelEncoder 公式ドキュメントとソースコード
ColumnTransformer に関する公式ドキュメントとソースコード
関連
-
Error: cudaGetDevice() failed. Status: CUDAドライババージョンがCUDAランタイムバージョンに対して不十分です。
-
Solve ImportError: cannot import name 'AipOcr' from 'aip'
-
カーネル再始動
-
ValueError: ubuntu の pycharm で matplotlib をインストールすると、 max() arg が空のシーケンスになる。
-
tensorflowに一致するディストリビューションは見つかりませんでした。
-
正規化にsoftmax関数を使用すると、「OverflowError: math range error」エラーが発生する。
-
呉恩陀ディープラーニング授業後プログラミング問題解説(python)
-
[機械学習実践編 - ch09] TypeError: Unsupported operand type(s) for /: map' と 'int' です。
-
pip install インストール [WinError 10061] ターゲットコンピュータが積極的に拒否するため、接続できません。(Win10) Windows(10) pip install install [WinError 10061] ターゲットコンピュータによる積極的な拒否のため接続できません。
-
シグモイドとソフトマックスの概要
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedTenSorFlow警告 このTensorFlowバイナリが使用するためにコンパイルされていない命令を、あなたのCPUはサポートしています。AVX
-
ImportError: libGL.so.1: 共有オブジェクトファイルを開くことができません。
-
RandomizedSearchCV と GridSearchCV で、fit メソッドを呼び出すと list オブジェクトに属性 'values' がないエラーが発生する。
-
mac が正常に解決しました AttributeError: module 'enum' has no attribute 'IntFlag'?
-
Python on %matplotlib inline
-
ImportError: scipy.sparseという名前のモジュールはありません。
-
tf.expand_dims および tf.squeeze 関数
-
機械学習:マルチクラス形式はサポートされていません。
-
ロジスティック回帰のエラー問題:警告メッセージ。1: glm.fit: アルゴリズムが集約されていない 2: glm.fit: 適合率が0か1の値で計算されている
-
DataFrame オブジェクトに dtype 属性がない