|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "9d91f3af3758fdd4569fb410575995ef",
|
|
|
"translation_date": "2025-09-06T09:34:02+00:00",
|
|
|
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
|
|
|
"language_code": "ja"
|
|
|
}
|
|
|
-->
|
|
|
# 機械学習の技術
|
|
|
|
|
|
機械学習モデルとその使用データを構築、利用、維持するプロセスは、他の多くの開発ワークフローとは大きく異なります。このレッスンでは、そのプロセスを解明し、知っておくべき主要な技術を概説します。以下を学びます:
|
|
|
|
|
|
- 機械学習の基盤となるプロセスを高いレベルで理解する。
|
|
|
- 「モデル」、「予測」、「トレーニングデータ」などの基本概念を探る。
|
|
|
|
|
|
## [講義前のクイズ](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
|
|
[](https://youtu.be/4NGM0U2ZSHU "初心者向けML - 機械学習の技術")
|
|
|
|
|
|
> 🎥 上の画像をクリックして、このレッスンの短い動画をご覧ください。
|
|
|
|
|
|
## はじめに
|
|
|
|
|
|
機械学習(ML)プロセスを作成する技術は、以下のステップで構成されています:
|
|
|
|
|
|
1. **質問を決める**。ほとんどのMLプロセスは、単純な条件付きプログラムやルールベースのエンジンでは答えられない質問をすることから始まります。これらの質問は、データの集合に基づいた予測に関することが多いです。
|
|
|
2. **データを収集し準備する**。質問に答えるためにはデータが必要です。データの質や量が、最初の質問にどれだけうまく答えられるかを決定します。この段階ではデータの可視化が重要です。また、データをトレーニング用とテスト用に分割してモデルを構築することも含まれます。
|
|
|
3. **トレーニング方法を選ぶ**。質問やデータの性質に応じて、データを最もよく反映し、正確な予測を行うためのトレーニング方法を選ぶ必要があります。この部分は専門知識が必要であり、実験を繰り返すことが多いです。
|
|
|
4. **モデルをトレーニングする**。トレーニングデータを使用して、さまざまなアルゴリズムを用いてデータのパターンを認識するモデルをトレーニングします。モデルは内部の重みを調整して、データの特定部分を優先することで、より良いモデルを構築することがあります。
|
|
|
5. **モデルを評価する**。収集したデータの中から未使用のテストデータを使用して、モデルの性能を確認します。
|
|
|
6. **パラメータ調整**。モデルの性能に基づいて、アルゴリズムの動作を制御する異なるパラメータや変数を使用してプロセスをやり直すことができます。
|
|
|
7. **予測する**。新しい入力を使用してモデルの精度をテストします。
|
|
|
|
|
|
## 質問を決める
|
|
|
|
|
|
コンピュータはデータ内の隠れたパターンを発見するのが得意です。この能力は、条件付きルールエンジンを作成するだけでは簡単に答えられない質問を持つ研究者にとって非常に役立ちます。例えば、保険数理のタスクでは、データサイエンティストが喫煙者と非喫煙者の死亡率に関する手作りのルールを構築することができるかもしれません。
|
|
|
|
|
|
しかし、他の多くの変数が加わると、過去の健康履歴に基づいて将来の死亡率を予測するためにMLモデルの方が効率的である可能性があります。より楽しい例としては、緯度、経度、気候変動、海への近さ、ジェット気流のパターンなどのデータを基に、特定の場所で4月の天気を予測することが挙げられます。
|
|
|
|
|
|
✅ この[スライドデッキ](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf)では、天気分析におけるMLの歴史的な視点を提供しています。
|
|
|
|
|
|
## モデル構築前のタスク
|
|
|
|
|
|
モデルを構築する前に、いくつかのタスクを完了する必要があります。質問をテストし、モデルの予測に基づいて仮説を形成するためには、いくつかの要素を特定し設定する必要があります。
|
|
|
|
|
|
### データ
|
|
|
|
|
|
質問に確実に答えるためには、適切な種類の十分な量のデータが必要です。この時点で以下のことを行う必要があります:
|
|
|
|
|
|
- **データを収集する**。前回のレッスンで学んだデータ分析の公平性を念頭に置き、データを慎重に収集します。このデータの出所、潜在的なバイアス、出所の記録に注意してください。
|
|
|
- **データを準備する**。データ準備プロセスにはいくつかのステップがあります。異なるソースからのデータを統合し正規化する必要があるかもしれません。データの質と量を向上させるために、文字列を数値に変換する([クラスタリング](../../5-Clustering/1-Visualize/README.md)で行うように)などの方法を使用することがあります。また、元のデータに基づいて新しいデータを生成する([分類](../../4-Classification/1-Introduction/README.md)で行うように)こともあります。データをクリーンアップし編集する([Webアプリ](../../3-Web-App/README.md)レッスンの前に行うように)こともあります。最後に、トレーニング技術に応じてデータをランダム化しシャッフルする必要があるかもしれません。
|
|
|
|
|
|
✅ データを収集し処理した後、その形状が意図した質問に対応できるかどうか確認してください。データが特定のタスクでうまく機能しない場合もあります。[クラスタリング](../../5-Clustering/1-Visualize/README.md)のレッスンでそのことを発見します!
|
|
|
|
|
|
### 特徴量とターゲット
|
|
|
|
|
|
[特徴量](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection)はデータの測定可能な属性です。多くのデータセットでは、「日付」、「サイズ」、「色」などの列見出しとして表現されます。特徴量変数は通常コード内で`X`として表され、モデルをトレーニングするために使用される入力変数を表します。
|
|
|
|
|
|
ターゲットは予測しようとしているものです。ターゲットは通常コード内で`y`として表され、データに対して尋ねようとしている質問の答えを表します。例えば、12月に最も安いカボチャの**色**は何か?サンフランシスコで最も良い不動産**価格**を持つ地域はどこか?ターゲットはラベル属性とも呼ばれることがあります。
|
|
|
|
|
|
### 特徴量変数の選択
|
|
|
|
|
|
🎓 **特徴量選択と特徴量抽出** モデルを構築する際にどの変数を選ぶべきかどうやって判断しますか?特徴量選択または特徴量抽出のプロセスを経て、最もパフォーマンスの高いモデルに適した変数を選ぶことになります。ただし、これらは同じものではありません。「特徴量抽出は元の特徴量の関数から新しい特徴量を作成するのに対し、特徴量選択は特徴量のサブセットを返します。」([出典](https://wikipedia.org/wiki/Feature_selection))
|
|
|
|
|
|
### データを可視化する
|
|
|
|
|
|
データサイエンティストのツールキットの重要な側面は、SeabornやMatPlotLibなどの優れたライブラリを使用してデータを可視化する力です。データを視覚的に表現することで、活用できる隠れた相関関係を発見することができます。また、偏りや不均衡なデータを発見する助けにもなります([分類](../../4-Classification/2-Classifiers-1/README.md)でそのことを発見します)。
|
|
|
|
|
|
### データセットを分割する
|
|
|
|
|
|
トレーニングの前に、データセットを不均等なサイズの2つ以上の部分に分割し、それでもデータをよく表現する必要があります。
|
|
|
|
|
|
- **トレーニング**。データセットのこの部分はモデルに適合させてトレーニングします。このセットは元のデータセットの大部分を構成します。
|
|
|
- **テスト**。テストデータセットは、元のデータから収集された独立したデータ群であり、構築されたモデルの性能を確認するために使用されます。
|
|
|
- **検証**。検証セットは、モデルのハイパーパラメータやアーキテクチャを調整してモデルを改善するために使用される、より小さな独立した例のグループです。データのサイズや質問によっては、この第3のセットを構築する必要がない場合もあります([時系列予測](../../7-TimeSeries/1-Introduction/README.md)でそのことを指摘します)。
|
|
|
|
|
|
## モデルを構築する
|
|
|
|
|
|
トレーニングデータを使用して、さまざまなアルゴリズムを使用してデータを**トレーニング**し、統計的な表現であるモデルを構築することが目標です。モデルをトレーニングすることで、データにさらされ、発見したパターンを検証し、受け入れるか拒否することができます。
|
|
|
|
|
|
### トレーニング方法を決める
|
|
|
|
|
|
質問やデータの性質に応じて、トレーニング方法を選択します。このコースで使用する[Scikit-learnのドキュメント](https://scikit-learn.org/stable/user_guide.html)をステップごとに進むことで、モデルをトレーニングする多くの方法を探ることができます。経験に応じて、最適なモデルを構築するためにいくつかの異なる方法を試す必要があるかもしれません。データサイエンティストがモデルの性能を評価するプロセスを経る可能性が高く、未使用のデータを与え、精度、偏り、その他の品質を低下させる問題を確認し、タスクに最も適したトレーニング方法を選択します。
|
|
|
|
|
|
### モデルをトレーニングする
|
|
|
|
|
|
トレーニングデータを手に入れたら、モデルを「適合」させて作成する準備が整います。多くのMLライブラリでは「model.fit」というコードを見つけることができます。この時点で、特徴量変数(通常は「X」)を値の配列として、ターゲット変数(通常は「y」)を送信します。
|
|
|
|
|
|
### モデルを評価する
|
|
|
|
|
|
トレーニングプロセスが完了すると(大きなモデルをトレーニングするには多くの反復、または「エポック」が必要になることがあります)、モデルの品質を評価するためにテストデータを使用して性能を測定することができます。このデータは、モデルが以前に分析していない元のデータのサブセットです。モデルの品質に関するメトリクスの表を出力することができます。
|
|
|
|
|
|
🎓 **モデルの適合**
|
|
|
|
|
|
機械学習の文脈では、モデルの適合とは、モデルの基礎となる関数が未知のデータを分析しようとする際の精度を指します。
|
|
|
|
|
|
🎓 **過学習**と**未学習**は、モデルの品質を低下させる一般的な問題です。モデルがトレーニングデータに対して十分に適合しない、または適合しすぎることで、トレーニングデータに対して予測が正確すぎたり、逆に正確でなかったりします。過学習したモデルは、データの詳細やノイズを過剰に学習してしまうため、トレーニングデータを非常に正確に予測します。一方、未学習のモデルは、トレーニングデータや未知のデータを正確に分析することができません。
|
|
|
|
|
|

|
|
|
> [Jen Looper](https://twitter.com/jenlooper)によるインフォグラフィック
|
|
|
|
|
|
## パラメータ調整
|
|
|
|
|
|
初期トレーニングが完了したら、モデルの品質を観察し、「ハイパーパラメータ」を調整することで改善を検討します。[ドキュメント](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)でプロセスについて詳しく読むことができます。
|
|
|
|
|
|
## 予測
|
|
|
|
|
|
完全に新しいデータを使用してモデルの精度をテストする瞬間です。「応用」MLの設定では、モデルを本番環境で使用するためのWeb資産を構築する場合、このプロセスにはユーザー入力(例えばボタンの押下)を収集して変数を設定し、モデルに推論または評価を送信することが含まれるかもしれません。
|
|
|
|
|
|
これらのレッスンでは、準備、構築、テスト、評価、予測の方法を学び、データサイエンティストとしてのジェスチャーをすべて学びながら、「フルスタック」MLエンジニアになる旅を進めていきます。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀チャレンジ
|
|
|
|
|
|
ML実践者のステップを反映したフローチャートを描いてみましょう。現在プロセスのどこにいると思いますか?どこで困難を感じると予測しますか?何が簡単に感じますか?
|
|
|
|
|
|
## [講義後のクイズ](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
|
|
## 復習と自己学習
|
|
|
|
|
|
データサイエンティストが日常の仕事について語るインタビューをオンラインで検索してみましょう。こちらに[一例](https://www.youtube.com/watch?v=Z3IjgbbCEfs)があります。
|
|
|
|
|
|
## 課題
|
|
|
|
|
|
[データサイエンティストにインタビューする](assignment.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
**免責事項**:
|
|
|
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。元の言語で記載された原文が公式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の利用に起因する誤解や誤認について、当社は一切の責任を負いません。 |