目次
経緯
PythonでSimpleImputerを使って、欠損値補完(中央値指定)を行おうとしたところ、
TypeError: init() got an unexpected keyword argument 'strateg'
というエラーが発生しました。
実際のコード
age_imputer = SimpleImputer(strateg='median')
原因
エラーの原因は、キーワード引数のスペルミスです。
間違っていた箇所は、
- 誤り:
strateg
- 正解:
strategy
つまり、引数の名前が正しく「strategy」でなければならないところ、うっかり「y」が抜けて「strateg」と書いてしまったため、Pythonが引数を認識できずエラーが発生しました。
正しいコードはこちらです。
age_imputer = SimpleImputer(strategy='median')
こうすれば防げる
- 公式ドキュメントやリファレンスを確認する
- エディタの**コード補完機能(オートコンプリート)**を活用する
- タイピング後に引数名をよく見直す
Pythonでは、キーワード引数の名前は一文字でも違うとエラーになりますので、丁寧な確認が重要です。
参考:SimpleImputerとは?
SimpleImputerは、scikit-learnライブラリの中で提供されている欠損値補完用クラスです。
strategy='mean'
:平均値で補完strategy='median'
:中央値で補完strategy='most_frequent'
:最頻値で補完strategy='constant'
:定数で補完
など、簡単に欠損データを埋めることができます。
まとめ
- エラー
TypeError: __init__() got an unexpected keyword argument
は、キーワード引数のスペルミスが原因 - 正しくは
strategy='median'
と書く - 英語の単語力(特に綴り)も少しずつ覚えると、プログラミングエラーも減らせる