BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ConcurrentがHadoop向け機械学習DSLのPatternをリリース

ConcurrentがHadoop向け機械学習DSLのPatternをリリース

原文(投稿日:2013/05/20)へのリンク

Cascadingは人気のフレームワークであり、企業のデータワークフローのためのパターン言語だ。Cascadingを使えば、複雑なデータ処理を定義でき、データ志向の洗練されたフレームワークを作成できる。作成したフレームワークはドメイン特化言語(DSL)として利用できる。

近頃Cascadingの拡張としてPatternが追加された。Patternは機械学習DSLでPMMLを利用している。PMMLはXMLベースのマークアップ言語でData Mining Group (DMG)が開発している。アプリケーションに予測分析やデータマイニングに関連するモデルを定義する方法を提供し、これらのモデルをPMMLに従うアプリケーションで共有できる。Patternの目的はPMML形式で予測モデルを出力できるSAS, R, Microstrategy, Oracleなどの人気の分析フレームワークに共通の実行環境を提供することだ。

Cascadingによれば、

Cascadingをパターン言語とした場合、Patternは大規模分散アルゴリズムを実装します。Rと比較した場合、Patternは‘同じ失敗を2度する’というCascadingの原則を堅持しつつ、大規模なテスト駆動開発(TDD)ができるます。SASと比べた場合、PatternはApache ASL 2.0のオープンソースで大規模なクラスタでも並列でアルゴリズムを走らせることができます。Mahoutと比べると、企業のIT利用のベストプラクティスに従いながら、Hadoop以外のリソースも利用して予測モデルを構築することができます。

現時点では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を読んで、結果をすでに明らかになっているデータセットと比較し、スコアが期待通りかどうかテストすることもできます。

この記事に星をつける

おすすめ度
スタイル

BT