物流の最適ルートをコンサルティングシミュレーション ~Pythonデータ分析100本ノック~

Pythonデータ分析100本ノックに取り組んでみました。
実際のデータサイエンティストの業務と比較して、どのようなことが学べるのか、どう学ぶといいのかを書いてみようと思います。


取り組んだ内容

今回は6章の「物流の最適ルートをコンサルティングする」というものです。題目の通り、用意されたデータを元に物流のコストが最小になる最適なルートを求めるというものです。

流れとしては、

  • データの読み込み

  • データの結合

  • 現状のコストの確認

  • ルートをネットワークで可視化

  • 総輸送コスト関数の作成

  • 最適化問題における制約条件の確認

  • 輸送ルートを変更しての、総輸送コストの再算出

となっています。

GitHubに簡単にコードをまとめているので、詳細を確認したい方はこちらをご覧ください


学べること

①Pythonでのcsvデータの読み込み、結合方法を学べる
→テーブル同士をどのように結合するのか、に関して基礎的な知識を実践を交えて学ぶことができます。単純な結合ですが、はじめてデータを扱う方にはおすすめです。

②最適化問題の考え方を学ぶことができる
→最適化問題は、言葉は聞いたことがあるが、実践したことがない人が多いのではないでしょうか。何を目的関数に設定し、制約条件はどうなるのかなどの基礎知識を実践を通して学ぶことができます。

③Pythonでの基礎自作関数の作成方法を学ぶことができる
→Pythonでの関数の作成は、複雑なものも多く自作することがハードに感じる人もいるかと思います。ただ、今回使用した関数は非常にシンプルであり、かつ的確なものを作成することができます。
Pythonの基礎知識(for文、if文など)の活用法をシンプルに学ぶことができます。


どの観点で学ぶといいのか

ここからは、現在の自分の業務の観点を交えながら、「Pythonデータ分析100本ノック」をどのように学ぶといいのかを話してみようと思います。

Pythonのデータの基礎集計コードを学べる

Pythonでのデータの扱い方を一通り学ぶことができます。ただ、「Pythonでのコードを学ぶ必要はあるのか」は考えた方がいいかもしれません。
自分が今業務の中でデータを扱うためのツールとして使用しているのは、主にSQLです。つまり知っておいていただきたいのは、データを扱うためのツールは複数あるということです。
現場によって、SQLを使用する環境が構築されていなかったり、構築はできているが他システムとの兼ね合いでPythonを使用した方が業務効率が良くなる場合もあります。
Pythonでデータを扱う知識はもちろん価値がありますが、これを学んだからといってどんな現場でもデータが扱えるようになるわけではありません。そのことを念頭に置いていただきたいです。

分析の目的を常に意識してコードを書く

「データ分析」は目的ではなく、あくまでも手段です。どんなに優れた分析結果であっても、その目的がずれていてはその結果は意味のないものとなってしまいます。
これはデータ分析でありがちな話なのですが、高度な分析を実施し優れた分析結果がでたものの、分析が高度すぎて上司が理解できずに、結果が使用されないということがよくあります。業務におけるデータ分析は、依頼主の依頼があり、その依頼主がデータ分析結果を使用してくれることがゴールとなります。常に依頼主の求めている結果、分析の目的を意識して分析を進めることが必須になります。
Pythonデータ分析100本ノックでは、実際の分析依頼をシミュレートしてコードを書いていくという構成になっています。より業務に近い形で実践することができるので、非常に有効だと思いました。


まとめ

学習は何事も「なにを目的に、それを学ぶのか」が非常に重要です。どんなに優れた知識を有していても、それを活かせなければ意味はありません。(もちろん、学ぶ目的が知識の蓄積であれば、目的を達成しているので有意義な学習と言えると思います)
自己満足にならない学習を心掛けていきたいですね。

この記事が気に入ったらサポートをしてみませんか?