私は迷いの中にいる

毎日眠気しかない謎の深海魚の一言日記

えるしっているか Imputerはscikit-learn 0.20以降は 使用されていない

Python

模試の点数:82.5点

scikit-learn以外のところはほぼ間違えなくなった(pandasのグルーピングがちょっと弱いけれど)

 

今日でMatplotlibが終わり、いよいよscikit-learnに突入しました。

この章を読むの1年ぶりです。ぐえーー

今日は欠損値の処理やるかな(^ω^)と思って勉強していたのですが・・

久々にはまりました。

 

scikit-learnのVerを書籍(Pythonによるあたらしいデータ分析の教科書)の指定に

合わせていない人は多分引っかかると思います。

v0.20以降のscikit-learnをインストールしている環境の場合

P215の「from sklearn.preprocessing import Imputer」実行結果が

「そんな名前の関数ないからね」になります。

 

ぐぐると・・・↓

Python - Imputer をimport できない|teratail

 

リンク先の「SimpleImputer」のリファレンスを読むと

>New in version 0.20: SimpleImputer replaces the

>previous sklearn.preprocessing.Imputer estimator which is now removed.

(Ver0.20で「sklearn.preprocessing.Imputer」は「SimpleImputer」に置き換えられたよ(^0^))

 

とのこと・・・さいですか・・

 

というわけで、P215の例題をv0.20以降のscikit-learnを使用して実行する場合

「from sklearn.impute import SimpleImputer」

「imp = SimpleImputer() ※もしくはSimpleImputer(strategy='mean')」

と置き換えれば、書籍の出力結果通りになります。

 

私の英語力がカスいので自信ないですが、SimpleImputerは

axis指定をすることができないみたいですね、、間違えてたらすみません。

 

何故私は書籍指定のVerのライブラリじゃないVerを使っていたかというと

Win10でscikit-learnの0.19.1を入れようとすると

「error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/」というエラーが出てインストールできなかったりします。

 

Pythonのpipインストールエラーでハマった話[Windows] - Qiita

WindowsのC++ビルド環境を作る~Build Tools for Visual Studio 2017の導入 - Qiita

おそらくこの辺りの話にはまっています。

現在時が流れVS2019がリリースされており、古いVerのリンクを漁っても

Build Tools for Visual Studio 2017にたどり着けなかったところで1時になったので寝ます。もうだみだ

 

結論:明日はMacで復習しよう

 

この「書籍の内容が古い」にはまるのは

Pythonエンジニア認定試験の教材「Pythonチュートリアル第3版」でもありました。

仮想環境構築の「pyvenv」がPython3.6以降で使われていなくて超ぐぐったような・・

きっと一連の流れはぐぐり力を試されているに違いない。ねますやあああ