【解説】データサイエンス100本ノックの始め方

【解説】データサイエンス100本ノックの始め方





目次

この記事の対象者


・ データサイエンスの勉強をしたい人

・ データサイエンティスト協会がGithubに公開している問題演習をやりたい人

本記事は、M1 Macbookを用いた手順になります。

WindowsのPCの方は、適宜読み替えて実施していただければと思います。

なお、本ブログでは、データサイエンス100本ノックの全解答解説を掲載しています。
ブックマークなどして答え合わせに役立てていただければと思います。

データサイエンス100本ノックの回答集 | タグ: datascience - omathin blog

Dockerのインストール

まずはDockerをインストールしましょう。

以下の記事にまとめられている方法で導入可能です。
https://qiita.com/ao41/items/5feb96cd01c312407a2b

本記事におけるDockerとDocker Composeのバージョンは以下のとおりです。

terminal
1
2
3
4
5
$ docker --version
Docker version 20.10.1, build 831ebeae96

$ docker-compose --version
docker-compose version 1.27.4, build 40524192

データサイエンス100本ノックのGitHubリポジトリURLをコピー

  • 以下が一般社団法人データサイエンス100本ノックのGitHubです。以下のURLを押してください。

https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess/tree/master

  • 上記のURLを押して100本ノックのGitHubが開いたら、「Code」というボタンをクリックしましょう。
  • すると、DockerfileをダウンロードするためのURLが現れるので、コピーしましょう。

GitHubリポジトリのURLを確認

  • 2021年5月30日時点でのダウンロード先のURLはhttps://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.gitです。

ターミナルを起動してDockerを起動する

ターミナルを起動し、先程のURLを用いて以下のコマンドを実行しましょう。

なお、以下のコマンドを実行するためには、Gitのインストールが必要です。gitコマンドが実行できない方は、gitのインストールがされていない可能性があるので、gitのインストールを行いましょう。

>> Gitのインストール方法を確認する

terminal
1
$ git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git

コマンドを実行すると、コマンドを実行したディレクトリに、100knocks-preprocessというフォルダが作成されます。

以下のコマンドで、100knocks-preprocessというフォルダに移動します。

terminal
1
$ cd 100knocks-preprocess

lsコマンドを実行し、Dockerfiledocker-compose.ymlファイルが含まれていたらOKです。

以下のコマンドを実行し、ビルドを実行します。

terminal
1
$ docker-compose up -d --build

5分くらい様々な処理が走ります。

最後に以下のような出力が得られたら成功かと思います。

terminal
1
2
3
4
Successfully built 301a64dee71b
Successfully tagged dss-notebook:latest
Creating dss-postgres ... done
Creating dss-notebook ... done

docker desktopのDashboardも確認してみましょう。

Docker Desktopの画面

ちゃんと起動していますね。

Jupyter Labにアクセス

Dockerの起動が確認できたら以下のURLをクリックしてください。

http://localhost:8888

ブラウザにてJupyterLabの場面に遷移するはずです。

Jupyter Labの画面

これで完了です。

「そもそもDockerってなに?」という方は、以下の記事も参考にしてください。

100本ノックの問題を確認する

環境構築が完了したら、問題を確認しましょう。

問題は、docという名前のフォルダ配下にあるpdfファイルです。

docフォルダまで移動したら、open .コマンドでFinderを開きましょう。

terminal
1
2
$ cd ~/100knocks-preprocess/docker/doc 
$ open .

Finderが開けたら、100knocks_questions.pdfというファイルを開きましょう。問題が確認できます。

100本ノックの問題を解いてみよう!

早速問題を解いてみよう!

第1問目だけ、本記事で解いてみたいと思います。

問題は以下のとおりです。

レシート明細のデータフレーム(df_receipt)から全項目の先頭10件を表示し、どのようなデータを保有しているか目視で確認せよ。

この問題は、Pandasというライブラリを使って、データの確認を行います。

Pandasは、一般的なデータベースで行える操作が実行でき、数値の他にも氏名や住所などの文字列データも簡単に扱うことができるライブラリです。

JupyterLabのセルに以下のコードを記載し、shift + Enterを押しましょう。

pandasをインポート
1
import pandas as pd

dataフォルダに配置してあるreceipt.csvファイルを読み込みます。

receipt.csvの読み込み
1
df_receipt = pd.read_csv('./data/receipt.csv')

以下のコードで先頭10件を表示します。先頭10件を表示するためには.head()メソッドを使います。

全項目の先頭10件を表示
1
df_receipt.head(10)

以下のような出力が得られれば成功です。

コンソール
1
2
3
4
5
6
7
8
9
10
11
	sales_ymd	sales_epoch	store_cd	receipt_no	receipt_sub_no	customer_id	product_cd	quantity	amount
0 20181103 1541203200 S14006 112 1 CS006214000001 P070305012 1 158
1 20181118 1542499200 S13008 1132 2 CS008415000097 P070701017 1 81
2 20170712 1499817600 S14028 1102 1 CS028414000014 P060101005 1 170
3 20190205 1549324800 S14042 1132 1 ZZ000000000000 P050301001 1 25
4 20180821 1534809600 S14025 1102 2 CS025415000050 P060102007 1 90
5 20190605 1559692800 S13003 1112 1 CS003515000195 P050102002 1 138
6 20181205 1543968000 S14024 1102 2 CS024514000042 P080101005 1 30
7 20190922 1569110400 S14040 1102 1 CS040415000178 P070501004 1 128
8 20170504 1493856000 S13020 1112 2 ZZ000000000000 P071302010 1 770
9 20191010 1570665600 S14027 1102 1 CS027514000015 P071101003 1 680

回答は、docフォルダに配置されているans_preprocess_knock_Python.htmlで確認できます。

問題の続きを解いていきたい人は、以下の記事に参考にしてください。

100本ノックを終える方法

100本ノックを終了する方法

基本的には、そのままPCをシャットダウンしていただいて大丈夫です。

明示的にdockerの起動を停止したい場合は、以下の通りstopコマンドを実行すればOKです。

docker-composeの停止
1
2
3
$ docker-compose stop
Stopping dss-notebook ... done
Stopping dss-postgres ... done

Docker Desktopの画面を確認し、以下のようになっていれば停止しています。

docker-compose stopコマンド実行後のDocker Desktopの表示

100本ノックを再開する方法

100本ノックを再開する場合は、以下のコマンドを実行しましょう。

100本ノックを再開する際のコマンド
1
$ docker-compose up -d

上記のコマンドを実行し、以下のような出力が得られたらOKです。

出力
1
2
Starting dss-postgres ... done
Starting dss-notebook ... done

Google Chromeなどのブラウザで、localhos:8888にアクセスすれば、Jupyter Labにアクセスできると思います。

まとめ

本記事では「【M1 Mac】データサイエンス100本ノックの始め方」というテーマでまとめました。

今回紹介した教材を使って、コスパ良くプログラミングを学んでいきましょう。

データサイエンティストに必要な知識は、TechAcademyのデータサイエンスコースがおすすめです。

無料体験可能なのでご確認ください。

>> 第11問〜第12問の回答解説を確認する

データサイエンス100本ノックの各問題の回答は、以下のリンクから確認できます。

データサイエンス100本ノックの回答集 | タグ: datascience - omathin blog

コメント