機械学習の勉強に関する最近の悩み
🎯 目標
Kaggle Grandmasterを最短で目指す
ただし、メダルだけでなく 実践的な知識もしっかり身につけたい
🤔 現状の悩み
勉強法がわからない
実務で使う機会がなく、実績を作りにくい
今の方法が本当に最適か不安(進めながら検証したい)
そんな人向けに記録且つポートフォリオにもなるテンプレートを共有
こんな人におすすめ
一つ一つ課題をクリアするのが好き
目標までの最短ルートを進みたい
ゴールが明確だとやる気が出る
学んだことをURL付きでまとめていく
✅=完了 / ☐=未完
表形式で「何を学んだか」「どのコマンドか」なども記録
☐ → 終わったら ☑ に変更して進捗管理に
例)
✅ | リンク | コマンド | グラフの種類 | 説明 |
---|---|---|---|---|
☐ | 🔗 URL | plt.plot() |
折れ線グラフ | データの変化・推移を可視化 |
ーーーーーーーーーーーーーーーーーーーー
テンプレート
<h1>📊 Matplotlib / Seaborn — データ可視化ライブラリ</h1>
<h2>Matplotlib</h2>
<p>Pythonで最も基本的かつ強力な低レベルの可視化ライブラリ。カスタマイズ性が非常に高く、線グラフ・棒グラフ・ヒストグラム・散布図など、あらゆる種類のグラフを描ける。</p>
<h2>Seaborn</h2>
<p>Matplotlibをベースにした高レベルの可視化ライブラリ。データフレーム(pandas)との相性がよく、統計的なグラフを簡単に作成できる。</p>
<h3>🛠 主な機能・メソッド</h3>
<h4>📊 Matplotlib(基本的なグラフ描画)</h4>
<table>
<thead>
<tr>
<th>✅</th><th>リンク</th><th>コマンド</th><th>グラフの種類</th><th>説明</th>
</tr>
</thead>
<tbody>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.plot()</code></td><td>折れ線グラフ</td><td>データの変化・推移を可視化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.bar()</code></td><td>棒グラフ</td><td>カテゴリごとの数値比較</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.hist()</code></td><td>ヒストグラム</td><td>データの分布を可視化</td></tr>
<tr><td>☐</td><td><a href="">🔗 URL</a></td><td><code>plt.scatter()</code></td><td>散布図</td><td>2変数の関係性を視覚化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.pie()</code></td><td>円グラフ</td><td>比率・構成比の可視化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.title()</code></td><td>タイトル設定</td><td>グラフのタイトルを表示</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.xlabel()</code> / <code>plt.ylabel()</code></td><td>軸ラベル</td><td>X軸 / Y軸のラベル設定</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.legend()</code></td><td>凡例</td><td>複数系列を説明する凡例を表示</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>plt.grid()</code></td><td>グリッド表示</td><td>背景の補助線を表示</td></tr>
</tbody>
</table>
<h4>🎨 Seaborn(統計グラフに強い高レベルAPI)</h4>
<table>
<thead>
<tr>
<th>✅</th><th>リンク</th><th>コマンド</th><th>グラフの種類</th><th>説明</th>
</tr>
</thead>
<tbody>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.histplot()</code></td><td>ヒストグラム+KDE</td><td>KDE(密度曲線)も描画可能</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.scatterplot()</code></td><td>散布図</td><td>色分け・カテゴリ表示が容易</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.boxplot()</code></td><td>箱ひげ図</td><td>四分位数・外れ値を可視化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.violinplot()</code></td><td>バイオリンプロット</td><td>分布+箱ひげ図</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.heatmap()</code></td><td>ヒートマップ</td><td>相関行列やマトリクスを色分け表示</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.pairplot()</code></td><td>ペアプロット</td><td>数値特徴量同士の散布図行列</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sns.lmplot()</code></td><td>回帰直線プロット</td><td>線形回帰を含む散布図を描画</td></tr>
</tbody>
</table>
<h4>📊 Plotly Express(インタラクティブグラフ)</h4>
<table>
<thead>
<tr>
<th>✅</th><th>リンク</th><th>コマンド</th><th>グラフの種類</th><th>説明</th>
</tr>
</thead>
<tbody>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.line()</code></td><td>折れ線グラフ</td><td>インタラクティブな折れ線グラフ</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.bar()</code></td><td>棒グラフ</td><td>ホバーやズーム付きの棒グラフ</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.histogram()</code></td><td>ヒストグラム</td><td>自動ビン分割やカウント付き</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.scatter()</code></td><td>散布図</td><td>ホバー、ラベル付きの散布図</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.pie()</code></td><td>円グラフ</td><td>インタラクティブでセクター選択可能</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.box()</code></td><td>箱ひげ図</td><td>補助統計値付きの箱ひげ図</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.violin()</code></td><td>バイオリンプロット</td><td>分布の形状とカテゴリ比較</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>px.density_heatmap()</code></td><td>ヒートマップ</td><td>2次元密度・色付きマトリクス表示</td></tr>
</tbody>
</table>
<hr>
<h1>🤖 Scikit-learn(sklearn)— 機械学習の定番ライブラリ</h1>
<p>Scikit-learn は Python における代表的な汎用機械学習ライブラリで、分類・回帰・クラスタリング・次元削減・モデル評価などの機能を網羅。簡潔なAPIで、プロトタイプから本番モデルまで対応可能。</p>
<table>
<thead>
<tr>
<th>✅</th><th>リンク</th><th>モジュール名</th><th>用途</th>
</tr>
</thead>
<tbody>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.model_selection</code></td><td>データの分割、交差検証、グリッドサーチ</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.preprocessing</code></td><td>標準化、エンコーディング、スケーリング</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.linear_model</code></td><td>線形回帰、ロジスティック回帰など</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.tree</code></td><td>決定木</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.ensemble</code></td><td>ランダムフォレスト、ブースティング</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.svm</code></td><td>サポートベクターマシン</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.cluster</code></td><td>KMeans などクラスタリング</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>sklearn.metrics</code></td><td>精度、F1、混同行列などの評価指標</td></tr>
</tbody>
</table>
<hr>
<h1>🧠 TensorFlow / PyTorch — ディープラーニング向けフレームワーク</h1>
<table border="1" cellpadding="4" cellspacing="0">
<thead>
<tr>
<th>比較項目</th><th>TensorFlow</th><th>PyTorch</th>
</tr>
</thead>
<tbody>
<tr><td>開発元</td><td>Google</td><td>Meta (旧Facebook)</td></tr>
<tr><td>特徴</td><td>静的グラフ + Keras API</td><td>動的計算グラフ</td></tr>
<tr><td>利用者層</td><td>産業用途・プロダクション</td><td>研究・実験・柔軟性重視</td></tr>
<tr><td>GPU対応</td><td>あり</td><td>あり</td></tr>
</tbody>
</table>
<p>どちらもニューラルネットワークの構築、学習、推論に対応。自動微分やGPU最適化が標準搭載されており、深層学習には欠かせない。</p>
<table>
<thead>
<tr>
<th>✅</th><th>リンク</th><th>モジュール名</th><th>用途</th>
</tr>
</thead>
<tbody>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>TensorFlow: tf.GradientTape</code></td><td>自動微分</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>PyTorch: torch.autograd</code></td><td>自動微分</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>TensorFlow: tf.keras.layers</code></td><td>レイヤー構築</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>PyTorch: torch.nn</code></td><td>レイヤー構築</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>TensorFlow: tf.keras.optimizers.Adam</code></td><td>最適化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>PyTorch: torch.optim.Adam</code></td><td>最適化</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>TensorFlow: tf.keras.losses</code></td><td>損失関数</td></tr>
<tr><td>☐</td><td><a href="#">🔗 URL</a></td><td><code>PyTorch: torch.nn</code></td><td>損失関数</td></tr>
</tbody>
</table>
私の実績
(2025.5.19現在)勉強にかなり偏りあり。引き続き勉強する
📊 Matplotlib / Seaborn — データ可視化ライブラリ
Matplotlib
Pythonで最も基本的かつ強力な低レベルの可視化ライブラリ。カスタマイズ性が非常に高く、線グラフ・棒グラフ・ヒストグラム・散布図など、あらゆる種類のグラフを描ける。
Seaborn
Matplotlibをベースにした高レベルの可視化ライブラリ。データフレーム(pandas)との相性がよく、統計的なグラフを簡単に作成できる。
🛠 主な機能・メソッド
📊 Matplotlib(基本的なグラフ描画)
✅ | リンク | コマンド | グラフの種類 | 説明 |
---|---|---|---|---|
✅ | 🔗 URL | plt.plot() |
折れ線グラフ | データの変化・推移を可視化 |
✅ | 🔗 URL | plt.bar() |
棒グラフ | カテゴリごとの数値比較 |
✅ | 🔗 URL | plt.hist() |
ヒストグラム | データの分布を可視化 |
✅ | 🔗 URL | plt.scatter() |
散布図 | 2変数の関係性を視覚化 |
✅ | 🔗 URL | plt.pie() |
円グラフ | 比率・構成比の可視化 |
✅ | 🔗 URL | plt.title() |
タイトル設定 | グラフのタイトルを表示 |
✅ | 🔗 URL |
plt.xlabel() / plt.ylabel()
|
軸ラベル | X軸 / Y軸のラベル設定 |
✅ | 🔗 URL | plt.legend() |
凡例 | 複数系列を説明する凡例を表示 |
✅ | 🔗 URL | plt.grid() |
グリッド表示 | 背景の補助線を表示 |
🎨 Seaborn(統計グラフに強い高レベルAPI)
✅ | リンク | コマンド | グラフの種類 | 説明 |
---|---|---|---|---|
✅ | 🔗 URL | sns.histplot() |
ヒストグラム+KDE | KDE(密度曲線)も描画可能 |
✅ | 🔗 URL | sns.scatterplot() |
散布図 | 色分け・カテゴリ表示が容易 |
✅ | 🔗 URL | sns.boxplot() |
箱ひげ図 | 四分位数・外れ値を可視化 |
☐ | 🔗 URL | sns.violinplot() |
バイオリンプロット | 分布+箱ひげ図 |
✅ | 🔗 URL | sns.heatmap() |
ヒートマップ | 相関行列やマトリクスを色分け表示 |
✅ | 🔗 URL | sns.pairplot() |
ペアプロット | 数値特徴量同士の散布図行列 |
☐ | 🔗 URL | sns.lmplot() |
回帰直線プロット | 線形回帰を含む散布図を描画 |
📊 Plotly Express(インタラクティブグラフ)
✅ | リンク | コマンド | グラフの種類 | 説明 |
---|---|---|---|---|
☐ | 🔗 URL | px.line() |
折れ線グラフ | インタラクティブな折れ線グラフ |
✅ | 🔗 URL | px.bar() |
棒グラフ | ホバーやズーム付きの棒グラフ |
☐ | 🔗 URL | px.histogram() |
ヒストグラム | 自動ビン分割やカウント付き |
✅ | 🔗 URL | px.scatter() |
散布図 | ホバー、ラベル付きの散布図 |
✅ | 🔗 URL | px.pie() |
円グラフ | インタラクティブでセクター選択可能 |
☐ | 🔗 URL | px.box() |
箱ひげ図 | 補助統計値付きの箱ひげ図 |
☐ | 🔗 URL | px.violin() |
バイオリンプロット | 分布の形状とカテゴリ比較 |
☐ | 🔗 URL | px.density_heatmap() |
ヒートマップ | 2次元密度・色付きマトリクス表示 |
🤖 Scikit-learn(sklearn)— 機械学習の定番ライブラリ
Scikit-learn は Python における代表的な汎用機械学習ライブラリで、分類・回帰・クラスタリング・次元削減・モデル評価などの機能を網羅。簡潔なAPIで、プロトタイプから本番モデルまで対応可能。
✅ | リンク | モジュール名 | 用途 |
---|---|---|---|
✅ | 🔗 URL | sklearn.model_selection |
データの分割、交差検証、グリッドサーチ |
☐ | 🔗 URL | sklearn.preprocessing |
標準化、エンコーディング、スケーリング |
☐ | 🔗 URL | sklearn.linear_model |
線形回帰、ロジスティック回帰など |
☐ | 🔗 URL | sklearn.tree |
決定木 |
☐ | 🔗 URL | sklearn.ensemble |
ランダムフォレスト、ブースティング |
☐ | 🔗 URL | sklearn.svm |
サポートベクターマシン |
☐ | 🔗 URL | sklearn.cluster |
KMeans などクラスタリング |
☐ | 🔗 URL | sklearn.metrics |
精度、F1、混同行列などの評価指標 |
🧠 TensorFlow / PyTorch — ディープラーニング向けフレームワーク
比較項目 | TensorFlow | PyTorch |
---|---|---|
開発元 | Meta (旧Facebook) | |
特徴 | 静的グラフ + Keras API | 動的計算グラフ |
利用者層 | 産業用途・プロダクション | 研究・実験・柔軟性重視 |
GPU対応 | あり | あり |
どちらもニューラルネットワークの構築、学習、推論に対応。自動微分やGPU最適化が標準搭載されており、深層学習には欠かせない。
✅ | リンク | モジュール名 | 用途 |
---|---|---|---|
☐ | 🔗 URL | TensorFlow: tf.GradientTape |
自動微分 |
☐ | 🔗 URL | PyTorch: torch.autograd |
自動微分 |
☐ | 🔗 URL | TensorFlow: tf.keras.layers |
レイヤー構築 |
✅ | 🔗 URL | PyTorch: torch.nn |
レイヤー構築 |
☐ | 🔗 URL | TensorFlow: tf.keras.optimizers.Adam |
最適化 |
☐ | 🔗 URL | PyTorch: torch.optim.Adam |
最適化 |
☐ | 🔗 URL | TensorFlow: tf.keras.losses |
損失関数 |
✅ | 🔗 URL | PyTorch: torch.nn |
損失関数 |
最後に
ここまでみていただきありがとうございます!
目標に向かって、無理せず、ほどほどにがんばりましょう💗
いつも頑張っている自分自身へのご褒美も忘れずに
(これ達成したら、ハーゲンダッツでもたべようかな🍨)