Python seaborn 練習問題

python

【Python】seabornの練習問題【Kaggleに挑戦】

2020年4月22日

こんにちは。医師で人工知能の研究を行っているTommy(Twitter:@obgyntommy)です。

 

今回は、seabornの使い方の【前編】【後編】で習得した、グラフの描画方法を使って、実際のデータを使った解析をしていきます。

 

seabornの使い方の前編、後編の記事については以下になります。まだ学習していない、という方は先に学習しましょう。

関連記事
Python seaborn 使い方 前編
PythonのライブラリSeabornの使い方【前編】

続きを見る

関連記事
Python seaborn 使い方 後編
PythonのライブラリSeabornの使い方【後編】

続きを見る

 

それでは、早速課題に取り組みましょう。

seabornの練習問題|使用するデータ

Python seaborn 練習問題

UCI(Union Cycliste Internationale)が提供している乳癌の診断データを使用します。

データの大元は以下の2つです。

データソース

UCI Machine Learning Repository: Breast Cancer Data Set
UCI Machine Learning Repository: Breast Cancer Data Set

続きを見る

Kaggleのデータ

Breast Cancer Wisconsin (Diagnostic) Data Set | Kaggle
Breast Cancer Wisconsin (Diagnostic) Data Set | Kaggle

続きを見る

今回は、導入のしやすから、「scikit-learn」にあるデータを使います。

 

scikit-learnのライブラリインストールされていない方は、まずインストールしましょう。

In[]

 

seabornの練習問題|データの準備

Python seaborn 練習問題

まずはデータの準備をします。

 

下記の4つのデータを使ってグラフを描画してデータの特徴を捉える練習をしましょう。

  • diagnosis: 乳房組織の診断 0=悪性、1=良性
  • radius_mean: 中心から境界までの平均距離
  • perimeter_mean: 腫瘍のコアの平均サイズ
  • mean area: 平均面積

ライブラリとデータ読み込み

下記を実行してみましょう。

seabornでは pandasのDataFrame を使うことが多いので、まずは以下の様に変換します。

In[]

 

Out[]

Python seaborn 練習問題  pandasのDataFrameを使用して取り込みを行う

 

 

データは569個ずつあります。

また、全データの数と種類も確認してみましょう。

 

In[]

 

Out[]

 

30項目のデータがありますね。課題を完了した後も、このデータを自習用に使ってみてください。

 

seabornの課題

Python seaborn 練習問題

以下のグラフを実際に描いてみましょう。

課題のグラフ

  • 棒グラフ
  • 散布図と近似直線
  • ヒストグラムと散布図を並べて表示
  • 相関係数をヒートマップで表示
  • ボックスプロットを3つ並べて表示

 

それでは各々のグラフを描く際の仕様について見ていきましょう。

 

diagnosisの棒グラフ

以下の様にラベル付けを行います。

 diagnosisの定義

  • diagnosisの 0 :悪性の数の棒グラフ
  • diagnosisの 1 :良性の数の棒グラフ

 

散布図と近似直線

以下、2つの散布図と近似直線を書いてみましょう。

  • radius_m vs perimeter_m
  • radius_m vs area_m

 

Tips

  • これを見ることで各々の特徴量の関係性相関の有無)がわかります。

 

ヒストグラムと散布図を並べて表示

対象データは下記3つです。

  • radius_m
  • perimeter_m
  • area_m

 

Tips

  • これを見ることでそのデータの分布や相関が各変数対応した形でわかります。

 

相関係数をヒートマップで表示

対象データは下記の3つです。

  • radius_m
  • perimeter_m
  • area_m

 

Tips

  • お互いの変数の相関の強さがわかります。

 

ボックスプロットを3つ並べて表示

 

 $x$ 軸と$y$ 軸について

  • $x$ 軸診断結果である diagnosis (0:悪性、1:良性)
  • $y$ 軸には下記それぞれの項目の数値

 

 $y$ 軸の項目

  • radius_m
  • perimeter_m
  • area_m

 

Tips:

  • これを見ることで診断結果と特徴量の関係性がわかります。
  • 例えば、悪性のがん細胞は大きいなどです。

演習

Python seaborn 練習問題

演習のJupyter notebookをご利用される方は演習(google driveリンク)を参照いただければと思います。

 

Google colaboratory の使い方が分からない方は以下の記事を参考にして下さい。

関連記事
Google Colaboratory グーグルコラボラトリー グーグルコラボ 使い方
Google Colaboratoryの使い方【完全マニュアル】

続きを見る

 

diagnosisの棒グラフ

仕様

 

Out[]

Python seaborn 練習問題 

悪性と良性のカウントの棒グラフ

 

散布図と近似直線

仕様

 

Out[]

Python seaborn 練習問題 散布図と近似直線

散布図と近似直線

 

仕様

 

Out[]

Python seaborn 練習問題 散布図と近似直線

散布図と近似直線

 

 

ヒストグラムと散布図を並べて表示

仕様

 

Out[]

Python seaborn 練習問題 ヒストグラムと散布図を並べて表示

ヒストグラムと散布図を並べて表示

 

 

相関係数をヒートマップで表示

仕様

 

Out[]

Python seaborn 練習問題 相関係数のヒートマップ

相関係数のヒートマップ

 

 

ボックスプロットを3つ並べて表示

仕様

 

Out[]

Python seaborn 練習問題 ボックスプロットは横に3つ並べて表示

ボックスプロットを横に3つ並べて表示

 

解答

Python seaborn 練習問題

演習を行って頂いた方は、解答例(google driveリンク)を参照して下さい。

 

diagnosisの棒グラフ

In[]

 

散布図と近似直線

In[]

 

In[]

 

ヒストグラムと散布図を並べて表示

In[]

 

相関係数をヒートマップで表示

In[]

 

ボックスプロットを3つ並べて表示

In[]

 

今回の課題は以上となります。お疲れ様でした。

 

 

人気記事 機械学習は挫折しやすい【挫折が多い原因と挫折回避の方法を教えます】

人気記事 無料あり:機械学習エンジニアの僕がおすすめするAI(機械学習)特化型プログラミングスクール3社


-python
-, , ,

Copyright© Tommy blog  , 2020 All Rights Reserved.