要点
機械学習とディープラーニングのプロジェクトは、ほとんどのビジネスにおいてますます重要になっています。完全なプロジェクト プロセスには、データの準備、分析モデルの構築、および実稼働環境への展開が含まれます。このプロセスは、分析モデルを継続的に改善する洞察-アクション-ループです。 Forrester は、このプロセス全体とその背後にあるプラットフォームを Insights Platform と呼んでいます。 機械学習やディープラーニングの手法を使用して分析モデルを構築する予定の場合、ファイル、データベース、ビッグデータ ストア、センサー、ソーシャル ネットワークなどのさまざまなデータ ソースからデータセットを統合して準備することが重要なタスクとなります。このステップは、分析プロジェクト全体の最大 80% を占める可能性があります。 この記事では、データ準備のためのいくつかのアプローチ(抽出、変換、ロード (ETL) バッチ処理、ストリーミング取り込み、データ ラングリング)を比較します。同時に、高度な分析技術とオープンソース フレームワーク (R、Apache Spark、KNIME、RapidMiner など) を活用して、さまざまなオプションとそのトレードオフについて説明します。この記事では、データ準備がビジュアル分析とどのように関係するか、また、データ サイエンティストやビジネス アナリストなどのさまざまなユーザー ロールが連携して分析モデルを構築する方法のベスト プラクティスについても説明します。 データ準備 = データクレンジング + 特徴エンジニアリング データ準備はデータサイエンスの中核です。これには、データのクリーニングと特徴エンジニアリングが含まれます。さらに、ドメイン知識も非常に重要であり、良い結果を達成するのに役立ちます。データの準備は、少なくとも初期段階では完全に自動化することはできません。通常、データ準備は分析パイプライン(プロセス)全体の 60% ~ 80% を占めます。ただし、機械学習アルゴリズムがデータセットに対して最適な精度を達成するには、データの準備が不可欠です。 データクリーニングにより、データに分析に適した形状と品質を与えることができます。次のようなさまざまな機能が含まれています。
特徴エンジニアリングは、分析に適切な属性を選択します。機械学習アルゴリズムが正しく機能するための属性を選択または作成するには、データに関するドメイン知識が必要です。機能エンジニアリング プロセスには以下が含まれます。
特徴エンジニアリングはすでにモデリング (分析モデルの構築) ステップの一部ですが、データ準備 (文字列の一部の抽出など) も活用することに注意してください。 データ クリーニングと特徴エンジニアリングはデータ準備の一部であり、機械学習とディープラーニング アプリケーションの基礎となります。どちらも簡単ではなく、努力が必要です。 データの準備は、分析プロジェクトのさまざまな段階で行われます。
不可欠なデータ前処理とデータ整理 モデル構築のための典型的な分析プロセスを見てみましょう。
ステップ 2 では、分析モデルを構築する前のデータ前処理に重点が置かれ、ステップ 3 と 4 ではデータ ラングリングが使用されます (データ ラングリングにより、データの分析とモデルの構築中にデータセットを対話的に調整できます)。 3 つのステップ (2、3、4) すべてに、データのクリーニングと特徴量エンジニアリングが含まれることに注意してください。 次のスクリーンショットは、「データ準備」、「データ前処理」、「データ ラングリング」という用語の Google 検索トレンドです。データの照合がますます注目されていることがわかります。 図 1: 「データ準備」、「データ前処理」、「データ ラングリング」の Google 検索トレンド 「インライン データ ラングリング」は、「データ ラングリング」の特別な形式です。インライン データ ラングリングでは、視覚的な分析ツールを利用できます。これらのツールは、視覚化やモデル構築だけでなく、直接的なインタラクティブ編集にも使用できます。次の図に示すように、インライン データ編成には大きな利点があります。 図2: 分離データ前処理とインラインデータラングリングの比較 分析パイプラインにおけるデータの前処理とデータ ラングリングの手順は、多くの場合、さまざまなタイプのユーザーによって実行されます。分析プロジェクトに参加するさまざまなユーザー ロールは次のとおりです。
データ サイエンス プロジェクトを成功させるには、これらのユーザーが緊密に連携する必要があります (これらのユーザーの役割をより深く理解するには、「分析でアンチパターンを回避する方法: 機械学習の 3 つの必須事項」も参照してください)。 この記事ではデータの準備に焦点を当てていますが、一枚の写真は千の言葉に値し、人間は直感的に見えるものしか解釈できず、複雑な非構造化データ セットを解釈することはできないため、データの準備と視覚的な分析の関係を理解することも重要です。詳細については、「ビジュアル分析を使用してより適切な意思決定を行う必要がある理由」の記事を参照してください。現在、主な視覚分析ツールには、Qlik、Tableau、TIBCO Spotfire などがあります。 では、ビジュアル分析はデータ ラングリングとどのように関係しているのでしょうか。「アナリストにとって、作業を中断して別のツールに切り替えるのは気が狂いそうです。ワークフローが中断されます。戻って考えを見直し、最初からやり直さなければなりません。生産性と創造性に深刻な影響を及ぼします」と、RITO Research の主任アナリストは述べています。 Kaggle のタイタニック データセット 次のセクションでは、データ準備のいくつかの代替案を紹介します。非常に有名なタイタニック号のデータセット (Kaggle から) を使用して、いくつかの実用的な例を紹介します。タイタニック号のデータセットはトレーニング セットとテスト セットに分かれており、どの乗客が生き残るか死亡するかを予測する分析モデルを構築するために使用されます。 図3: Kaggle Titanicデータセットのメタデータ 図4: Kaggle Titanicデータセットのデータ行の例 元のデータセットは、分析モデルの構築に直接使用することはできません。重複、欠損値、さまざまな情報を含むセルが含まれます。したがって、機械学習アルゴリズムを適用する場合、最良の結果を得るために、まず元のデータセットを処理する必要があります。以下に、データ クリーニングと特徴量エンジニアリングの例をいくつか示します。
次のセクションでは、さまざまなプログラミング言語、フレームワーク、データ準備ツールについて説明します。すべての問題に対して単一の解決策が適切であるわけではないことに注意してください。さらに、これらのソリューションには多くの重複があります。したがって、ユーザーの役割やユースケースに応じて、さまざまなソリューションを使用して多くの問題を解決できます。 データサイエンスのためのデータ前処理 一部のプログラミング言語は、データ サイエンス プロジェクト専用に設計されているか、データ サイエンス プロジェクトに対して非常に優れたサポートを備えています (特に R と Python)。これらには、機械学習アルゴリズム、フィルタリングや抽出などの前処理機能、スケーリング、正規化、シャッフルなどのデータ サイエンス機能のさまざまな実装が含まれています。データ サイエンティストは、探索的なデータ分析と準備を実行するために、比較的低レベルのコードを記述する必要があります。 Java や C# を使用した従来のプログラミングとは異なり、R や Python を使用してデータ前処理を行う場合、多くのコードを記述する必要はありません。むしろ、統計概念やデータ、およびデータ前処理とモデル構築に使用できるアルゴリズムの経験を積むことが重要です。 これらのプログラミング言語は、データ サイエンティストがデータを準備し、分析モデルを構築するために構築されたものであり、エンタープライズ展開 (大規模かつ高い信頼性で新しいデータに分析モデルを展開すること) 向けには設計されていません。そのため、エンタープライズ展開を実現するために、商用エンタープライズ ランタイムが市場で提供されています。通常、同じソース コードをサポートしているため、エンタープライズ展開のために何かを書き直す必要はありません。 R の場合、オープン ソースの Microsoft R Open (旧 Revolution R) または TIBCO Enterprise Runtime for R を使用できます。後者は、GPL オープンソース ライセンスによって制限されないという利点があり、あらゆる組み込み環境や外部環境で使用できます。 次のコードは、基本的な R を使用して Titanic データセットを前処理および分析する方法を示す優れた R チュートリアルから抜粋したものです。
これらのプログラミング言語は、前処理の基本的なサポートに加えて、データ サイエンス用の多くの追加パッケージを提供します。たとえば、多くのデータ サイエンティストは、R の非常に強力な caret パッケージを活用して、データの準備を簡素化し、コードの量を削減しています。このパッケージは、複雑な回帰および分類の問題に対するモデルの準備とトレーニングのプロセスを簡素化します。これは、さまざまな API を内部で使用する何百もの既存の R モデル実装に共通のインターフェースを提供します。次のコード スニペットは、caret の一般的な API を使用して Titanic データセットを前処理します。
データ前処理用の別の R パッケージは dplyr パッケージです。これは caret パッケージほど強力ではなく、非構造化データの操作、クリーニング、および要約にのみ焦点を当てています。 Dplyr は、データ操作のあらゆる基本的なアクションに機能を提供することを目指しています。
したがって、多くのデータ操作タスクの学習と理解が容易になります。 data.table パッケージについても同様です。ご覧のとおり、R でデータセットを前処理する方法は多数あります。 データ サイエンティストや開発者向けの大規模データセットの前処理 小さなデータセットを処理するには、R や Python などのプログラミング言語を使用できます。しかし、それらは本当に大規模なデータセットを処理するために作成されたわけではなく、同時に、数 GB、TB、さらには PB のデータを分析する必要があることもよくあります。 Apache Hadoop や Apache Spark などのビッグデータ フレームワークは、エッジ (つまり、データが配置されている場所) での弾力的なスケーラビリティとデータ前処理のために作成されました。 これらのビッグデータ フレームワークは「低レベル」コーディングに重点を置いており、R や Python 環境よりも構成がはるかに複雑です。 Hortonworks、Cloudera、MapR、Databricks などの商用ソフトウェアがこの問題の解決に役立ちます。通常、データ サイエンティストと開発者は協力してビッグ データ プロジェクトを完了します。後者はクラスターの構成、展開、監視を担当し、データ サイエンティストは R または Python API を使用して、データの前処理と分析モデルの構築のためのコードを記述します。 ソース コードは R または Python のみを使用したコードとよく似ていますが、データの前処理はクラスター全体で並列に実行されます。次の例は、Spark の Scala API を使用して Titanic データセットを前処理および特徴エンジニアリングする方法を示しています。
もちろん、Spark の Java または Python API を使用して同じことを行うことができます。 市民データサイエンティストのためのデータ前処理 通常は、機敏性を保ち、迅速に結果を得ることが求められます。多くの場合、データセットの準備と分析には多くの試行錯誤が必要になります。高速で使いやすいさまざまなデータ サイエンス ツールを活用できます。これらのツールは以下を提供します。 開発環境とランタイム/実行サーバー ドラッグアンドドロップとコード生成を使用した視覚的な「コーディング」 R、Pythonなどのさまざまなデータサイエンスフレームワーク、またはApache Hadoop、Apache Spark、基盤となるH2O.aiなどのより強力なビッグデータフレームワークとの統合 データ サイエンティストはこれらのツールを使用して、データの前処理とモデルの構築を加速できます。さらに、このようなツールはデータの前処理や機械学習アルゴリズムの実装の解決にも役立つため、プロジェクト経験があまりない市民データサイエンティストでも使用できます。一部のツールでは、ユーザーがデータセットを前処理、表示、分析するのに役立つ推奨事項を作成することもできます。これらのツールは、基盤となる人工知能によって、ますますスマートになっています。 次の例は、2 つのオープンソース データ サイエンス ツールである KNIME と RapidMiner を使用して Titanic データセットを前処理する方法を示しています。 KNIME を使用したタイタニック号データセットの前処理 RapidMinerを使用してタイタニックデータセットを前処理する 上記のように R または Scala でソース コードを記述する代わりに、ビジュアル IDE を使用して前処理を構成できます。これにより、ほとんどのユーザーにとってデータの準備と分析が容易になり、データの保守と引き渡しも容易になります。 ビジネスアナリストや市民データサイエンティストのためのデータラングリング データ ラングリング (データ マンギングとも呼ばれる) は、グラフィカル ツールを使用してシンプルかつ直感的にデータ準備を行う方法です。これらのツールは、使いやすさと俊敏なデータ準備に重点を置いています。したがって、これは必ずしも開発者やデータ サイエンティストによって行われるわけではなく、すべてのユーザー (ビジネス アナリストや市民データ サイエンティストを含む) によって行われます。 DataWrangler と Trifacta Wrangler は、データ ラングリングの 2 つの例です。 データラングリングのためのTrifacta これらのツールはデータ前処理フレームワークほど強力ではないため、データ準備の最後の段階でよく使用されることに注意してください。これらは、ETL (抽出、変換、ロード) ツールや、R、Python、KNIME、RapidMiner などによるデータ前処理などの他の統合オプションを置き換えるものではありません。 はじめに説明したように、データ ラングリングは実際のデータ分析から切り離されているため、データ ラングリング ツール自体に欠点がある可能性があります。ビジュアル分析ツールでのデータ ラングリングにより、データの探索的分析中にインライン データ ラングリングが可能になります。 1 人のユーザーが 1 つのツールを使用して実行できます。たとえば、ビジュアル分析とインライン データ ラングリング (および分析モデルを構築するためのその他のデータ サイエンス機能) を組み合わせた TIBCO Spotfire の例を参照してください。 ビジュアル分析ツールTIBCO Spotfireのインラインデータ編成 データ ラングリング ツールとインライン データ ラングリングを備えたビジュアル分析ツールは、ビジネス アナリスト、(市民) データ サイエンティスト、開発者など、あらゆるユーザー ロールで使用でき、これらのツールによりデータの準備とデータ分析を高速化できます。 この記事では、機械学習モデルを構築するためのデータ準備に焦点を当てます。プログラミング言語(R や Python など)、データ サイエンス ツール(KNIME や RapidMiner など)、データ ラングリング(DataWrangler や Trificata を使用)、またはインライン データ ラングリング(TIBCO Spotfire 経由)を使用できます。通常、これを開始する前に、多かれ少なかれ整理されたさまざまなデータ ソース (リレーショナル データベース、データ ウェアハウス、ビッグ データ クラスターなど) に保存されているすべてのデータにアクセスできる必要があります。したがって、次の 2 つのセクションでは、データ取り込み用の ETL およびストリーミング分析ツールについて簡単に紹介します。これには通常、データ準備の一部、特にデータ集約とデータクリーニングも含まれます。 開発者向けの ETL (抽出、変換、ロード) と DQ (データ品質) ETL ツールは、開発者がさまざまなデータ ソースを統合できるように設計されています。これらには、非常に複雑なデータ構造を持つ多くのレガシー インターフェイスや独自のインターフェイス (メインフレーム インターフェイスや EDIFACT インターフェイスなど) が含まれます。また、データ クレンジング (このコンテキストでは「データ品質」ツールと呼ばれることが多い) も含まれており、ビジュアル コーディングを使用した使いやすさとエンタープライズ展開に重点を置いています (KNIME や RapidMiner などのデータ サイエンス ツールに似ていますが、ETL とデータ品質に重点を置いています)。また、Apache Hadoop や Apache Spark などのビッグデータ フレームワークもサポートしています。さらに、住所検証などの品質向上のためのすぐに使えるサポートも提供します。 ETL と DQ は長時間実行されるバッチ プロセスで実装されることが多いため、リアルタイム データを使用してモデルを構築する必要がある場合は、これが悪影響を及ぼすことがあります。 ETL および DQ ツールの例としては、Pentaho や Talend などのオープン ソース ツールや、独自ベンダーの Informatica などがあります。市場は、他のユーザー ロールが基本的なタスクを実行できるようにする、よりシンプルで使いやすい Web ユーザー インターフェイスへと移行しています。 開発者向けのデータ取得とストリーミング分析 データ取り込みおよびストリーミング分析ツールを使用して、ストリームにデータを追加および前処理できます。これらのフレームワークを使用すると、バッチまたはリアルタイムでデータの前処理が可能になります。次の図は、データの取得、前処理、分析、処理、出力を含む一般的なストリーミング分析プロセスを示しています。 ストリーミング分析プロセスの手順 現在、市場にはさまざまなフレームワークとツールが存在します。これらはすべて、何らかの形で Hadoop や Spark などのビッグデータ フレームワークをサポートしています。以下にいくつか例を挙げます。 データ取得オープンソースフレームワーク(データ取得と前処理のステップのみに焦点を当てています):Apache NiFi、StreamSets、Cask Hydrator ストリーム処理オープンソースフレームワーク(完全なストリーミング分析プロセス):Apache Storm、Apache Flink、Apache Apex 商用ストリーミング ソフトウェア (完全なストリーミング分析プロセス): Software AG Apama、IBM Streams、TIBCO StreamBase 詳細については、「ストリーミング分析フレームワーク、製品、クラウド サービスの比較」を参照してください。 これらのツール (ETL を含む) を使用する大きな利点は、データの前処理 (履歴データの場合) とリアルタイム処理 (新しいデータの場合) に同じツールまたはフレームワークのセットを使用して、変化するデータに分析モデルを適用できることです。これは、ユーザーがツールセットを小さく保つことができるだけでなく、1 つのツールセットを通じて ETL/取得とリアルタイム処理の両方を実現できるため、優れたオプションとなります。次の図は、TIBCO StreamBase を使用して Titanic データセットを前処理する例です。 タイタニック号データセットのストリーミング前処理 データ取り込みおよび ETL ツールの場合、ストリーミング分析の市場は、他のユーザー ロールが基本的なタスクを実行できる、よりシンプルな Web ユーザー インターフェイスへと移行しています。これは、より高レベルのユースケース向けの既存のツールに取って代わるものではありませんが、アナリストやデータ サイエンティストに新しいオプションを提供します。開発者の助けを借りずに、いくつかのルール、関連付け、または分析モデルをより簡単に直接展開できます。 データ準備は機械学習プロジェクトを成功させる鍵です 機械学習やディープラーニング技術を使用して分析モデルを構築するのは簡単ではありません。データ準備は、分析パイプライン全体の 60% ~ 80% を占めます。データのクリーニングと特徴エンジニアリングには、さまざまなプログラミング言語、フレームワーク、ツールが市場に出回っています。機能的には重複しており、それぞれにトレードオフがあります。 データ ラングリングは、データ前処理に対する重要なアドオンです。分析フローの中断を避けるために、視覚的な分析ツールで使用するのが最適です。視覚分析ツールと、R、Python、KNIME、RapidMiner などのオープンソースのデータ サイエンス コンポーネントは、互いに補完し合います。 コンポーネントの過剰を避けることで、データ サイエンス プロジェクトをスピードアップできます。したがって、データ準備ステップでは、ストリーミング取り込みフレームワークまたはストリーミング分析製品を利用するのがよい選択です。前処理手順を一度記述するだけで、履歴データのバッチ処理で使用して分析モデルを構築できます。同時に、リアルタイム処理にも使用できるため、構築した分析モデルを新しいイベントに使用できます。 これらのスライドとビデオでは、データの準備に関する詳細情報が提供され、この記事の内容をより詳細に理解するのに役立ちます。 |
<<: 幾何学を利用してディープラーニングモデルのパフォーマンスを向上させることは、コンピュータービジョン研究の未来です。
>>: 人工知能と機械学習 – これらの流行語を理解していますか?
アップルに3年間在籍した後、同社の機械学習担当ディレクターのイアン・グッドフェロー氏が突然辞任を発表...
これは非常に興味深い質問であり、知性と人間とコンピューターの相互作用の両方が関係しており、さらに重要...
本日、DeepMind の「Alpha」ファミリーに新しいメンバーが加わりました。プログラミング競技...
[[253650]]テクノロジー専門家の約 37% は、人工知能 (AI) と関連技術の進歩により、...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
論文のデータセットとコードはオープンソース化されています: https://zenodo.org/r...
今日、ますます多くの国や地域が、業務効率の向上、国民へのより良いサービスの提供、そして任務遂行能力の...
デジタルインテリジェンスは経営上の意思決定を促進し、驚くべき成果をもたらします名前が示すように、デー...