Cascadingは人気のフレームワークであり、企業のデータワークフローのためのパターン言語だ。Cascadingを使えば、複雑なデータ処理を定義でき、データ志向の洗練されたフレームワークを作成できる。作成したフレームワークはドメイン特化言語(DSL)として利用できる。
近頃、Cascadingの拡張としてPatternが追加された。Patternは機械学習DSLでPMMLを利用している。PMMLはXMLベースのマークアップ言語でData Mining Group (DMG)が開発している。アプリケーションに予測分析やデータマイニングに関連するモデルを定義する方法を提供し、これらのモデルをPMMLに従うアプリケーションで共有できる。Patternの目的はPMML形式で予測モデルを出力できるSAS, R, Microstrategy, Oracleなどの人気の分析フレームワークに共通の実行環境を提供することだ。
Cascadingによれば、
現時点ではPatternはローカルのHadoopクラスタとEMR Hadoopバージョンを利用したAWSクラウドをサポートする。 ランダムフォレスト
Patternがサポートする機械学習アルゴリズムは、
また、現在開発中で今後サポートされるのは、
InfoQはConcurrentのCTOであり創立者であるChris K. Wensel氏に話を聞いた。
InfoQ: PatternとApache Mahoutの主要な違いを教えてください。Mahoutは現在最も人気のある機械学習ライブラリのひとつですね。
Wensel: PatternはPMMLをサポートします。RはPMML形式でモデルを出力できます。PatternはPMMLをCascadingアプリケーションに変換できます。
次に、PatternはCascadingをベースにしています。PatternアプリケーションをデバッグするのはCascadingアプリケーションをデバッグするのと同じです。大規模なデータを扱う場合、たくさんのデバッグをします。
そして、同じアプリケーションにカスタムのCascadingとLingual(Cascading向けANSI SQL)の成果物を含むことができます。PMMLも手製のMLモデルもひとつのアプリケーションで動かすことができるのです。
ひとつのアプリケーションでETLやSQLを使ったデータ洗浄、スコアリングができます。また運用環境に配置するために運用チームに渡すリモートのデータソースと統合して、Cascadingが提供する安全網の中で単体テストやビルドができます。
これ以上シンプルにはできそうにありませんが、今年の後半にはもっとシンプルにしたものを発表できそうです。
InfoQ: PatternがRをどのように扱うか教えていただけますか。ユーザはRで何をして、どの時点でPatternにスイッチするのでしょうか。
Wensel: Rはモデルを作るのにとても便利です。Hadoop上では効率的に動作しないものの、PMMLをサポートします。PMMLは複雑な機械学習モデルを表現するための標準に準拠したXML言語です。
したがって、RからPMMLへモデルを出力し、Patternへ渡すことができます。
さらに、RはLingual JDBCドライバを使えます。したがってHadoopからデータを取得し、RでLingualを使ってモデルの作成とテストができます。
Hadoop -> Lingual -> SQL -> R -> PMML -> Pattern -> Hadoopというループがあるのです。日々の業務で管理しなければならない部分はCascadingをベースにしています。
InfoQ: あなたはPatternのテスト駆動開発(TDD)の特徴を強調していますね。TDDのサポートについて詳しく教えてください。
Wensel: PatternはPMMLとCascadingパーサと異なるモデルタイプ向けの機械学習APIセットで構成されています。モデルはHadoopとは無関係にJUnitのテストからテストできます。また、PMMLを読んで、結果をすでに明らかになっているデータセットと比較し、スコアが期待通りかどうかテストすることもできます。