You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/ja/1-Introduction/4-techniques-of-ML/README.md

132 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "dc4575225da159f2b06706e103ddba2a",
"translation_date": "2025-09-03T23:32:14+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "ja"
}
-->
# 機械学習の技術
機械学習モデルとその使用データを構築、利用、維持するプロセスは、他の多くの開発ワークフローとは大きく異なります。このレッスンでは、そのプロセスを解明し、知っておくべき主要な技術を概説します。以下を学びます:
- 機械学習の基盤となるプロセスを高いレベルで理解する。
- 「モデル」、「予測」、「トレーニングデータ」などの基本概念を探る。
## [講義前のクイズ](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/7/)
[![初心者向け機械学習 - 機械学習の技術](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "初心者向け機械学習 - 機械学習の技術")
> 🎥 上の画像をクリックして、このレッスンの短い動画をご覧ください。
## はじめに
機械学習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の使用に関する歴史的な視点を提供しています。
## モデル構築前のタスク
モデルを構築する前に、いくつかのタスクを完了する必要があります。質問をテストし、モデルの予測に基づいて仮説を形成するためには、いくつかの要素を特定し設定する必要があります。
### データ
質問に確実に答えるためには、適切な種類の十分な量のデータが必要です。この時点で以下の2つのことを行う必要があります
- **データを収集する**。前回のレッスンで学んだデータ分析の公平性を念頭に置き、データを慎重に収集します。このデータの出所、潜在的なバイアス、起源を文書化することに注意してください。
- **データを準備する**。データ準備プロセスにはいくつかのステップがあります。異なるソースからのデータを統合し正規化する必要があるかもしれません。[クラスタリング](../../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」を送信します。
### モデルを評価する
トレーニングプロセスが完了すると(大きなモデルをトレーニングするには多くの反復、または「エポック」が必要になる場合があります)、テストデータを使用してモデルの性能を評価することで、モデルの品質を確認できます。このデータは、モデルが以前に分析していない元のデータのサブセットです。モデルの品質に関するメトリクスの表を出力することができます。
🎓 **モデルの適合**
機械学習の文脈では、モデルの適合とは、モデルの基礎となる関数が未知のデータを分析しようとする際の精度を指します。
🎓 **過学習**と**未学習**は、モデルの品質を低下させる一般的な問題です。モデルがトレーニングデータに対して適合しすぎたり、適合が不十分だったりすることで、トレーニングデータに対して予測が過度に一致したり、逆に一致しなかったりします。過学習したモデルは、データの詳細やノイズを過度に学習してしまうため、トレーニングデータを非常によく予測します。一方、未学習のモデルは、トレーニングデータや未知のデータを正確に分析することができません。
![過学習モデル](../../../../translated_images/overfitting.1c132d92bfd93cb63240baf63ebdf82c30e30a0a44e1ad49861b82ff600c2b5c.ja.png)
> [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://gray-sand-07a10f403.1.azurestaticapps.net/quiz/8/)
## 復習と自己学習
データサイエンティストが日常の仕事について語るインタビューをオンラインで検索してみましょう。例えば[こちら](https://www.youtube.com/watch?v=Z3IjgbbCEfs)。
## 課題
[データサイエンティストにインタビューする](assignment.md)
---
**免責事項**:
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤った解釈について、当方は責任を負いません。