この投稿では、包括的な機械学習プロジェクトに取り組むときに常に参照するチェックリストをまとめました。
なぜチェックリストが必要なのですか?
プロジェクトの多くの要素(準備、質問、モデル、微調整など)に対処する必要があるため、見落とされがちです。次のステップを案内し、各タスクが正常に完了したかどうかを確認するように注意します。
チェックリストは、出発点を見つけようとする場合があります。チェックリストを使用すると、適切なソースから適切な情報(データ)を抽出して、関係を確立し、相関のアイデアを明らかにできます。
プロジェクトの各部分でレビューパラダイムを実行することをお勧めします。
Atul Gawandeが彼の本「チェックリスト宣言」で述べているように、
私たちが知っていることの範囲と複雑さは、利益を正しく、安全に、確実に提供する個人の能力を上回っています。
だから、私はあなたのワークロードを減らして結果を改善するこの明確で簡潔なアクションのリストを紹介しましょう...
機械学習プロジェクトのチェックリスト
ここでは、ほぼすべてのプロジェクトで従うべき8つのステップを示します。一部の手順は、順序を入れ替えて実行できます。
1.高レベルの観点から問題を定義する
これは、問題のビジネスロジックを理解して定式化することです。これはあなたに言うべきです:
- 問題の性質(制御されている/制御されていない、分類/回帰)、
- 開発できるソリューションのタイプ
- パフォーマンスを測定するためにどのメトリックを使用する必要がありますか?
- 機械学習はこの問題を解決するための適切なアプローチですか?
- 問題を解決するための手動のアプローチ。
- 問題の固有の前提条件
2.データソースを定義してデータを取得する
ほとんどの場合、データがあり、入力データをより有効に利用するためにデータに関する質問(問題)を特定したい場合、このステップは最初のステップの前に実行できます。
問題の定義に基づいて、データベース、データウェアハウス、センサーなどのデータソースを特定する必要があります。アプリケーションを本番環境にデプロイするには、受信データをシステムに入力できるようにするデータパイプラインを開発して、この手順を自動化する必要があります。
- 必要なデータのソースと量をリストします。
- 場所が問題になるかどうか確認してください。
- 目的に応じてデータを使用できるかどうかを確認してください。
- データを取得して、実行可能な形式に変換します。
- データ型をチェック(テキスト、カテゴリ、数値、時系列、画像)
- 最終テスト用のサンプルを選択します。
3.最初のデータ探索
この段階では、結果/予測/目標に影響を与えるすべての機能を調査します。大量のデータがある場合は、このステップを実行して、分析をより管理しやすくします。
手順:
- Notebook Jupyterを使用すると、データを探索するためのシンプルで直感的なインターフェースが提供されます。
- ターゲット変数を定義する
- 特徴タイプ(カテゴリ、数値、テキストなど)を定義する
- フィーチャー間の関係を分析します。
- 複数のデータ視覚化を追加して、ターゲット変数に対する各機能の影響を簡単に解釈します。
- 研究結果を文書化します。
4.データ準備のための探索的データ分析
データ変換、クリーンアップ、機能の選択/設計、スケーリングのための関数を定義することにより、前のステップのレッスンを利用する時が来ました。
- データを変換し、次のデータパッケージのプロセスを自動化する関数を記述します。
- データをクリーンアップする関数を記述します(欠損値の補完と外れ値の処理)
- 機能を選択および設計するための関数を記述します—冗長な機能を削除し、オブジェクト変換やその他の数学的変換をフォーマットします。
- 機能のスケーリング-機能の標準化。
5.基本モデルを開発し、他のモデルを探索して最適なモデルを選択します
他のすべての複雑な機械学習モデルの基盤となる非常に基本的なモデルを作成します。手順のチェックリスト:
- 既定のパラメーターを使用して、単純ベイズモデル、線形回帰モデル、SVMなどの一般的に使用されるいくつかのモデルをトレーニングします。
- 各モデルのパフォーマンスを測定し、ベースモデルおよび他のすべてのモデルと比較します。
- 各モデルにN倍交差検証を使用して、N倍パフォーマンスメトリックの平均と標準偏差を計算します。
- 目標に最も大きな影響を与える機能を調べます。
- モデルが予測時に発生するエラーのタイプを分析します。
- デザインは機能が異なります。
- 上記の手順を(試行錯誤によって)数回繰り返し、正しい形式で正しい関数を使用していることを確認します。
- パフォーマンスメトリックに基づいて上位モデルをショートリストします。
6.候補リストからモデルを微調整し、アンサンブルメソッドを確認します
最終決定に近づくにつれ、これは重要なステップの1つになるはずです。重要なポイントは次のとおりです。
- 交差検証を使用したハイパーパラメーター調整。
- ランダム検索やグリッド検索などの自動調整手法を使用して、最上位モデルに最適な構成を見つけます。
- 投票分類器などのメソッドの集合をテストします。
- 可能な限り多くのデータでモデルをテストします。
- 作業が完了したら、最初に取っておいたテストサンプルを使用して、うまく適合しているかどうかを確認します。
7.コードを文書化し、ソリューションを伝達する
コミュニケーションプロセスは多様です。すべての既存および潜在的な利害関係者を念頭に置く必要があります。したがって、主なポイントは次のとおりです。
- コードとプロジェクト全体へのアプローチを文書化します。
- 出来上がりのようなダッシュボードや、わかりやすいビジュアルで洞察に富んだプレゼンテーションを作成します。
- 機能を分析した方法、さまざまな変換をテストした方法などについてブログ/レポートを書いてください。学習曲線を説明してください(失敗した方法とうまくいった方法)
- 主な結果と将来のボリューム(ある場合)で終了します
8.モデルを本番環境にデプロイして監視する
プロジェクトで実際のデータの展開テストが必要な場合は、すべてのプラットフォーム(Web、Android、iOS)で使用するWebアプリケーションまたはREST APIを作成する必要があります。キーポイント(プロジェクトによって異なります)には、次のものが含まれます。
- 最終的なトレーニング済みモデルをh5またはpickleファイルに保存します。
- モデルをWebサービスで提供します。Flaskを使用して、これらのWebサービスを開発できます。
- 入力ソースを接続し、ETLパイプラインを設定します。
- pipenv、docker / Kubernetesで依存関係を管理します(スケーリング要件に基づく)
- AWS、Azure、またはGoogle Cloud Platformを使用してサービスをデプロイできます。
- 実際のデータでパフォーマンスモニタリングを実行するか、データを使用してモデルを使用するだけです。
注意。チェックリストは、プロジェクトの複雑さに応じて調整できます。
SkillFactoryの有料オンラインコースを受講して、スキルと給与の注目の職業をゼロから取得する方法の詳細をご覧ください。
- 機械学習コース(12週間)
- データサイエンスの専門職をゼロからトレーニングする(12か月)
- 初心者レベルの分析職(9か月)
- Python for Web Developmentコース(9か月)