機械学習ネタ。ピアソンの相関係数をヒートマップ化してプロットするには。

Udemyのデータサイエンス講習は一通りやってしまったので、復習するのもいいけど何か新しいことをやりたいと思い…

これを買ってしまいました。

大学数学から離れて10年以上立つので正直きついですが、かなり掘り下げて解説してくれるので理解が深まります。

その中でも、やってみて面白かったことを備忘録と練習を兼ねて、本書とは別のデータセット、irisデータを使い、特徴量同士の相関をヒートマップ化してみようと思います。

まずは特徴量同士のpairplot出力を見てみます。

この図を出すには、以下のようにします。

このpairplot、相関の有無やクラスタを見た目で判断できて便利なんですが、相関の強さを数値化できたら… どのデータを重点的に見れば良いか分かるので、更に便利。なはず。

ということで、各特徴量同士のピアソンの相関係数を計算して、ヒートマップとしてプロットしてみます。値が大きいほど相関が強いということですね。

この図を出すには、さっきのpairplot出力コードに続けて、以下のようにします。

petal lengthとpetal widthが最も強い相関を示すのが、数値で示せましたね。pairplotでも見た目そうであることが分かりますが、こちらの方がより明確になりました。

ちょっと解説

sklearn.datasetsがload_iris()関数を提供してくれているので、こちらを使いました。load_iris()["data"]はnumpy.ndarray型のデータを返すので、columnsを設定したpandas.DataFrame型に変換してやると、後でデータを俯瞰する際に便利です。

上記のデータを以下のコードでDataFrame形式に変換し、

以下のコードで目的変数も上記DataFrame形式データに連結しちゃったわけですね。

こうしておくと、pairplotする際にhue指定してクラスタが見分けやすくなったりと、後々嬉しいことがたくさんあります。

ということで、またPython機械学習プログラミング 達人データサイエンティストによる理論と実践を進めたら、何か練習用の課題を設定して公開しようと思います。

それではまた。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする