知り合いから「プログラミングしたことないけどLight GBMを使ってみたい.2時間くらいで教えてくれ」と言われた.2時間だと理論面をカバーするのは難しいので,とりあえず触ってみることを目標に,Pythonおよび関連ライブラリの基礎(のさらにごく一部)でさくっと遊ぶNotebookを作った.勉強会当日は一緒に動かしながらレクチャーする予定.

対象者

  • 統計的な専門用語(平均,分散,相関係数,平均二乗誤差,等々)に馴染みがある.
  • Excelでデータ分析をしたことがある.
  • Pythonどころか,プログラミング自体の経験がない.

初学者を対象とするため,用語の厳密さよりもわかりやすさを重視した.

レポジトリ

haltaro/intro-to-lightgbm - GitHub

make_data.ipynb

データ加工を行う自分用のNotebook.Bostonデータは,sklearnから直接ダウンロードできるが,より実務に近い使い方をしてもらうため,一旦csvファイルに加工した.また,回帰問題だけでなく識別問題にも触れてもらいたいということでseabornからtitanicをcsvファイルとして保存した.カテゴリカル変数は,その対応方法も体験して欲しかったので敢えてそのまま残している1

intro_to_python.ipynb

Pythonの基本の基本から,numpymatplotlibpandassklearn,そしてlightgbmで遊べる構成にした.以下はその詳細である.

Jupyter notebook

そもそもJupyter notebookに馴染みがないと思うので,簡単に操作方法を記載した.

Python:基本の基本

時間に限りがあるので,データ分析に特化して,四則演算,変数への代入,リスト操作,ループ,条件分岐について記載した.これでなんとなくわかった気になってほしい.

numpy

ベクトル,行列,および統計量の計算方法を記載した.

matplotlib

折れ線グラフ,散布図,棒グラフ,ヒストグラムの表示方法を記載した.

pandas

データの読み込み,統計量の計算,ソート,フィルタリング,numpy.arrayへの変換方法等を記載した.

sklearn

線形回帰モデルLinearRegressorや平均絶対誤差の計算方法を記載した.

lightgbm

学習方法,ハイパーパラメータのチューニング方法などを記載した.

感想

これで十分だとは全く思っていないが,なんとなく雰囲気を掴む程度のものはできたと思う.これをきっかけに興味を持ってくれたら嬉しい.勉強会でフィードバックがあったらNotebookを修正したい.

  1. 結局,時間切れでtitanicデータで遊ぶ部分は作れなかった.