はじめに
当記事はkaggleのLearnのIntro to Machine LearningのHello, Seabornを翻訳して備忘としたものです。
拙い英語力なので間違い等あればご指摘いただけたらと思います。
まとめ:【kaggle】翻訳記事まとめ【備忘翻訳】
前:【kaggle】中級機械学習 - データリーク【備忘翻訳】
次:【kaggle】データの視覚化 - 折れ線グラフ【備忘翻訳】
当記事に含まれるコードはkaggle内のnotebook内で正常に動作します。動作を試したい場合はkaggleのnotebookで試してください。
Hello, Seaborn
データ視覚化のためのコーディング入門
データ視覚化へようこそ!
このハンズオンコースでは、強力でありながら使いやすいデータ可視化ツールであるseabornを使用して、データ視覚化を次のレベルに引き上げる方法を学びます。seabornを使用するには、人気のプログラミング言語であるPythonでコードを書く方法についても学びます。
- このコースはプログラミング経験のない人を対象としており、
- 各チャートは短くてシンプルなコードを使用しているため、seabornは他の多くのデータ可視化ツール(Excelなど)よりもはるかに高速で簡単に使用できます
したがって、コードを1行も書いたことがなく、今日からより高速で魅力的なプロットを作成するために最低限の知識を習得したいのであれば、ここが最適な場所です。作成するチャートの一部を除いてみたい場合は以下の図をご覧ください。
コーディング環境
このページを素早く上下にスクロールしてみましょう。次のような様々な種類の情報があることに気が付くでしょう。(実際のkaggleページを参照してください)
- text (今読んでいるテキストのように)
- code (コードセルと呼ばれる灰色のボックス内に書かれています)
- code output (対応するコードのすぐ下に常に表示される実行コードからの出力結果)
これらのページをJupyter notebooks(または、単にnotebookと呼ばれることが多い)と呼び、コース全体でこれらを操作します。notebookの実際の例を以下の画像に示します。
今読んでいるnotebookでは、すでに全てのコードが実行されています。すぐに、独自のコードを記述して実行できるnotebookを操作できるようになります。
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")
Setup Complete
データのロード
このnotebookでは、アルゼンチン(ARG)、ブラジル(BRA)、スペイン(ESP)、フランス(FRA)、ドイツ(GER)、イタリア(ITA)の6か国の過去のFIFAランキングデータセットを使用します。データセットはCSVファイルとして保存されます。EXcelでCSVファイルを開くと、日付ごとに1行、国ごとに1列が表示されます。
データをnotebookにロードするには、以下のコードセルに実装されている2つの異なる手順を使用します。
- まずデータセットにアクセスできる場所(またはファイルパス)を指定してから、
- ファイルパスを使用してデータセットの内容をnotebookに読み込みます。
# Path of the file to read
fifa_filepath = "../input/fifa.csv"
# Read the file into a variable fifa_data
fifa_data = pd.read_csv(fifa_filepath, index_col="Date", parse_dates=True)
上記のコードセルには4つの異なる行があることに注意してください。
コメント
ポンド記号(#)が先頭についている2行は、テキストが薄く斜体で表示されています。
これらの行は両方とも、コードの実行時にはコンピューターによって完全に無視され、コードを読む人間がすぐに理解できるようにするためにのみ表示されます。これらの2行はコメントと呼ばれ、コードが容易に解釈可能になるように書いていくことをお勧めします。
実行可能コード
他の2行は実行可能コード、つまりコンピューターによって実行されるコードです(この場合はデータセットを見つけて読み込むコード)。
最初の行は、fifa_filepath
の値をデータセットにアクセスできる場所に設定します。この場合、ファイルパス(引用符で囲んで)を指定しました。この実行可能コード行のすぐ上のコメントに、それが何を行うかの簡単な説明が記載されています。
実行可能コードの2行目は、pd.read_csv
にてデータセット内の全ての情報が含まれるようにfifa_data
の値を設定しています。その直後に、カッコで囲まれ、カンマで区切られた3つの異なるテキスト(上の画像では下線が引かれています)があります。これらは、データセットがnotebookに読み込まれるときの動作をカスタマイズするために使用されます。
-
fifa_filepath
- データセットのファイルパスは常に最初に指定する必要があります。 -
index_col="Date"
- データセットをロードするときに、インデックスとして使用する列を指定します。index_col
の値を最初の列の名前(EXCELでファイルを開いたときにセルA1にある"Date"
)に設定します -
parse_dates=True
- notebookはラベルを(数字やテキストではなく)日付として認識するようになります
これらの詳細は、実践的な演習で独自のデータセットをロードする機会があれば、すぐに理解できるようになります。
現時点では、両方のコード行を実行した結果、
fifa_data
を使用してnotebookからデータセットにアクセスできるようになったことを覚えておくことが重要です。
ところで、これらのコード行には出力がないことに気が付いたかもしれません(一方、notebookで先ほど実行したコード行は、出力として「Setup Complete」 を返しました)。これは想定される動作です。すべてのコードが出力を返すわけではなく、このコードはその好例です。
データを調査する
ここで、fifa_data
のデータセットを簡単に確認して、適切にロードされているかどうかを確認します。
次のように1行のコードを記述して、データセットの最初の5行を出力します。
- データセットを含む変数(この場合は
fifa_data
)から始まり、次に -
.head()
を続けます
以下のコード行で確認できます。
# Print the first 5 rows of the data
fifa_data.head()
ARG | BRA | ESP | FRA | GER | ITA | |
---|---|---|---|---|---|---|
Date | ||||||
1993-08-08 | 5.0 | 8.0 | 13.0 | 12.0 | 1.0 | 2.0 |
1993-09-23 | 12.0 | 1.0 | 14.0 | 7.0 | 5.0 | 2.0 |
1993-10-22 | 9.0 | 1.0 | 7.0 | 14.0 | 4.0 | 3.0 |
1993-11-19 | 9.0 | 4.0 | 7.0 | 15.0 | 3.0 | 1.0 |
1993-12-23 | 8.0 | 3.0 | 5.0 | 15.0 | 1.0 | 2.0 |
最初の5行が、上記のデータセットのイメージ(Excelでどのように表示されるかを確認したときのイメージ)と一致していることを確認します。
データをプロットする
このコースでは、様々なプロットタイプについて学習します。多くの場合、チャートを作成するのに必要なコードは1行だけです。
内容を少しだけ確認するには折れ線グラフを生成する以下のコードを確認してください。
# Set the width and height of the figure
plt.figure(figsize=(16,6))
# Line chart showing how FIFA rankings evolved over time
sns.lineplot(data=fifa_data)
<AxesSubplot:xlabel='Date'>
このコードはまだ意味をなさないかもしれませんが、今度のチュートリアルでさらに詳しく学習します。とりあえず、最初の演習に進み、コーディング環境を自分で試してみる機会を作りましょう!