はじめに
最近、機械学習やAIに興味を持ち始めました。
最終的には、
- 機械学習Webアプリ
- 投資シミュレーター
- AIエージェント
などを作ってみたいと思っています。
しかし最初に悩んだのが、
機械学習は何から勉強すればいいのか?
ということでした。
調べると様々な技術が出てきますが、私が実際に選んだ構成はとてもシンプルです。
Python
↓
Jupyter
↓
Streamlit今回は、この構成を選んだ理由と実際に学んだことを紹介します。
なぜこの構成を選んだのか
機械学習を学びたいと思ったときに大切なのは、
「まず動くものを作ること」
だと思いました。
最初から複雑なアーキテクチャを考えるより、
- 機械学習を理解する
- グラフで可視化する
- Webアプリ化する
という流れを体験する方が学習効率が高そうです。
そこで、
その他の行を表示する
というシンプルな構成を選びました。
Pythonを選んだ理由
機械学習といえばPythonと言われるほどライブラリが充実しています。
代表的なものとして、
- pandas
- numpy
- scikit-learn
- PyTorch
があります。
今回私が使用したのは、
from sklearn.linear_model import LinearRegressionという線形回帰モデルです。
少ないコードで機械学習を体験できるため、初心者には非常にありがたい環境だと感じました。
Jupyterを選んだ理由
実際に触ってみて、
一番学習しやすいと感じたのがJupyterでした。
1行ずつ実行できる
例えば、
print(X)だけ実行できます。
何が起きているのかを確認しながら進められるので理解しやすいです。
グラフ化が簡単
機械学習の結果をグラフにすると、
- 実データ
- 予測結果
の関係がすぐ分かります。
数字だけ眺めるよりも理解が深まりました。
実験しやすい
データを変更すると、
予測結果やグラフがどう変わるかをすぐ確認できます。
機械学習は試行錯誤の繰り返しなので、Jupyterとの相性は非常に良いと感じました。
実際にやったこと
今回は線形回帰(LinearRegression)を使って予測を行いました。
データは以下です。
| 年数 | 資産 |
|---|---|
| 1 | 100 |
| 2 | 210 |
| 3 | 330 |
| 4 | 460 |
| 5 | 600 |
このデータから、
- 10年後
- 20年後
- 30年後
の資産を予測しました。
学んだこと
今回一番印象に残ったのは、
機械学習は魔法ではない
ということです。
線形回帰は、
資産 = a × 年数 + bという式を作っています。
つまり、
「毎年どれくらい資産が増えるか」
を学習して予測しているだけです。
実際にグラフ化すると、この考え方がよく分かりました。
Streamlitを選んだ理由
Jupyterで予測できるようになると、
次はWebアプリとして表示したくなります。
そこで選んだのがStreamlitです。
PythonだけでWebアプリが作れる
例えば、
years = st.slider(
"年数",
1,
30,
10
)と書くだけでスライダーが表示されます。
HTMLやJavaScriptの知識がなくても始められます。
学習したコードを活かせる
Jupyterで作成した機械学習コードをほぼそのまま利用できます。
そのため、
Jupyter
↓
Streamlitという流れが非常にスムーズでした。
成果物として残る
ブラウザ上で動くアプリになると達成感があります。
単なる勉強ではなく、
「自分でサービスを作った」
という感覚が得られます。
今後やってみたいこと
今回の線形回帰は最もシンプルな機械学習モデルでした。
今後は以下にも挑戦してみたいと思います。
機械学習
- 決定木
- ランダムフォレスト
- 分類モデル
- 時系列予測
投資関連アプリ
- NISAシミュレーター
- 資産形成シミュレーター
- 複利計算アプリ
Webアプリ開発
現在は、
Python
↓
Jupyter
↓
Streamlitですが、今後は
Python
↓
FastAPI
↓
Webアプリという構成にも挑戦したいと考えています。
まとめ
機械学習初心者の私が選んだ学習ルートは、
Python
↓
Jupyter
↓
Streamlitでした。
この構成には以下のメリットがあります。
- 学習コストが低い
- 機械学習に集中できる
- グラフで結果を確認できる
- Webアプリ化が簡単
- 将来的な拡張もしやすい
最初から難しいことを考えるより、
まずは小さくても動くものを作ることが大切だと感じました。
これから機械学習を始める方には、まずこの構成から挑戦することをおすすめします。


コメント