Tag: アナリティクス・ライフサイクル

Analytics
0
R言語でSAS ViyaのAI機能活用 第二回「アクションセットと最初のデータ読み込み」

概要 第一回の「CASサーバーとSWATパッケージ」に続き、第二回としてCASのアクションセットの活用やCASサーバーへのデータ読み込みなどの基本操作の方法について紹介します。 アクションセットについて CASサーバー上での分析作業を開始する前に、“アクションセット”という重要な概念に関して紹介します。 アクションセットは、関連する機能を実行するアクションの論理的なグループです。 SAS Viyaでは、関数のことを「アクション」、関連する関数のグループを「アクションセット」と呼んでいます。アクションでは、サーバーのセットアップに関する情報を返したり、データをロードしたり、高度な分析を実行するなど、さまざまな処理を実行できます。 アクションセットを使ってみましょう それでは、サンプルコードを使いながら、SAS Viyaのアクションセットでデータの読み込みからプロットまでの一連の操作を説明します。 ・データの読み込み CASサーバーにデータを読み込むには二つの方法があります。一つはread.csv()でcsvファイルをRデータフレームの形で読み込んだ上で、as.casTable()を使用する方法です。この関数はデータをRのデータフレームからCASテーブルにアップロードすることができます。今回の例では金融関連のサンプルデータhmeqを使って紹介します。 library("swat") conn <- CAS(server, port, username, password, protocol = "http")   hmeq_data <- read.csv(“hmeq.csv”) hmeq_cas <- as.casTable(conn, hmeq) もう一つはcas.read.csv()を使って、ローカルからファイルを読み込んで、そのままCASサーバーにアップロードする方法です。仕組みとしては、一つ目の方法と大きくは変わりません。 hmeq_cas <- cas.read.csv(conn, hmeq) as.casTable()或いはcas.read.csv()からの出力はCASTableオブジェクトです。その中に、接続情報、作成されたテーブルの名前、テーブルが作成されたcaslib(CASライブラリ)、およびその他の情報が含まれます。 Rのattributes()関数を使えば中身を確認できます。 attributes(hmeq_cas) $conn CAS(hostname=server, port=8777, username=user, session=ca2ed63c-0945-204b-b4f3-8f6e82b133c0, protocol=http) $tname [1] "IRIS" $caslib [1] "CASUSER(user)"

Analytics
0
R言語でSAS ViyaのAI機能活用 第一回「CASサーバーとSWATパッケージ」

本シリーズの記事について オープンソースとの統合性はSAS Viyaの一つの重要な製品理念です。SAS言語やGUIだけではなく、R言語やPythonなどのオープンソース言語でも、SAS ViyaのAI&アナリティクス機能を活用することが可能になっています。このシリーズの記事は、R言語からSAS Viyaの機能を活用して、データ準備からモデルの実装までの一連のアナリティクス・ライフサイクル開発をサンプルコードの形で紹介していきます。 CASサーバーとSWATパッケージとは コードの内容を紹介する前に、まずCASサーバーとSWATパッケージに関して、簡単に紹介します。CASはSAS Cloud Analytic Serviceの略称です。SAS Viyaプラットフォームの分析エンジンで、様々な種類のデータソースからデータを読み込み、メモリーにロードし、マルチスレッドかつ分散並列でハイパフォーマンスな分析処理を実行します。現在のCASサーバーは3.4.0以降のバージョンのPythonと3.1.0以降のバージョンのRをサポートしています。 オープンソース言語のクライアントからCASサーバーのインタフェースを使用するために、SASからSWAT(SAS Scripting Wrapper for Analytics Transfer)というパッケージをGithubに公開し、提供しています。RとPythonにそれぞれ対応しているバージョンはありますが、本記事のサンプルコードではR用の SWATをメインで使用します。SWATパッケージを通してCASサーバーと通信し、インタフェースを直接利用することができます。データサイエンティストはSWATパッケージを使用し、RやPythonからSAS Viyaの豊富なAI&アナリティクス機能を活用し、様々なデータ分析処理を行ったり、機械学習や深層学習のモデルを作成したりすることができます。 環境の準備 R言語用SWATパッケージを利用するために必要なRの環境情報は以下の通りです。 ・64-bit版のLinux或いは64-bit版のWindows ・バージョン3.1.0以降の64-bit版のR ・Rパッケージ「dplyr」、「httr」と「jsonlite」がインストールされていること 筆者が使用している環境は64-bit版のWindows 10と64-bit版のR 3.5.3となり、IDEはRstudioです。 パッケージのインストール SWATをインストールするために、標準的なRインストール用関数install.package()を使用します。SWATはGithub上のリリースリストからダウンロードできます。 ダウンロードした後、下記のようなコマンドでSWATをインストールします。 R CMD INSTALL R-swat-X.X.X-platform.tar.gz X.X.Xはバージョン番号であり、platformは使用するプラットフォームと指しています。 或いはRの中から下記のコマンドのようにURLで直接インストールするのもできます。 install.packages('https://github.com/sassoftware/R-swat/releases/download/vX.X.X/R-swat-X.X.X-platform.tar.gz', repos=NULL, type='file') この部分の詳細はR-swatのGitHubのリンクを参考にしてください。 SAS Viyaと一回目の通信をやってみよう 全ての準備作業が完了したら、問題がないことを確認するために、Rから下記のコードを実行してみます。 library("swat") conn <- CAS(server, port, username, password,

Data Management
SAS Japan 0
アナリティクス・ライフサイクルにおけるデータ準備 ─ データ準備の重要性

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはIvor G. Moanによって執筆されました。元記事はこちらです(英語)。 Webセミナー「Data Preparation in the Analytical Life Cycle」について このWebセミナーでは「アナリティクス・ライフサイクルにおけるデータ準備」というテーマを取り上げ、データ準備の定義と、このライフサイクルの各ステップについて論じています。最初に現在の市場状況とデータ準備に関する人々の見方を考慮に入れた上で、議論の対象は、アナリティクス・ライフサイクルを構成する様々な領域と、データ準備が果たす役割へと移ります。そして最後に、データ・ガバナンスの役割を検討します。この簡潔版のブログ投稿シリーズでは、同Webセミナーから、いくつかの主題を取り上げて論じています。 データ準備の概念と重要性 「データ準備」とは、アナリティクスやビジネスインテリジェンス(BI)で利用するためのデータを収集/処理/クレンジングする工程に含まれる全てのタスクを指します。したがって、データ準備には、アクセス、ロード、構造化、パージ、結合(ジョイン)、データタイプの調整、フィールド値の整合性チェック、重複のチェック、データの統一化(例:1人の人物に2つの誕生日が存在する場合)などが含まれます。 データの量やソースの数が増えるにつれ、適切なデータ準備を行う取り組みは、コストと複雑性がともに増大していきます。そのため、データ準備は今、市場を形成しつつある新たなパラダイムとなっています。また、データ準備は事実上、セルフサービス型のデータ管理の取り組みと化しています。従来のデータ管理プロセスは、ある程度まではデータ統合および準備を実行できますが、今では、ダイナミックかつ詳細な作業や最終段階の作業に関しては、データ準備ツールを用いてセルフサービス方式で実行されるようになりつつあります。 明らかなことは、データを整形し、アナリティクスに適した状態にする上でデータ準備がますます重要になりつつある、ということです。今では、以前よりも多くの企業がデータドリブン(データ駆動型)を実現しています。それらの企業はデータに基づいて意思決定を行いますから、「データに素早くアクセスし、分析に適した状態に準備できること」が極めて重要です。Hadoopなどのビッグデータ環境は、「それらの環境からデータを移動することが不可能」ということを意味します(が、それは問題とはなりません)。その代わり、「アナリティクス向けにデータを準備する工程の一環として、ビッグデータを適切な場所で適切に処理し、その結果のデータを他のソースと組み合わせること」が重要となります。 したがって、データ準備は、あらゆるアナリティクス・プロジェクトの不可欠な構成要素と言えます。適切なデータを取得し、それを適切な状態に準備することによってこそ、アナリティクスの疑問に対して優れた答えを得ることが可能になるのです。質の低いデータや不適切に準備されたデータを使用すると、分析結果が「信頼に足るもの」になる可能性は低下してしまいます。 アナリティクス・ライフサイクルにおけるデータ準備を理解する アナリティクス・ライフサイクルには「ディスカバリー」および「デプロイメント」という2つの主要なフェーズが存在します。「ディスカバリー」プロセスは、イノベーションを生み出すビジネス上の疑問を提起することによって推進されます。したがって最初のステップは、ビジネスにおいて何を知る必要があるかを定義することです。その後、ビジネス上の疑問は「問題を説明する表現」へと変換され、その結果、予測的アナリティクスを用いてその問題を解決することが可能になります。 そして言うまでもなく、予測的アナリティクスを利用するためには、適切に準備された適切なデータが必要不可欠です。Hadoopや高速化・低価格化するコンピューターといったテクノロジーの進歩により、従来では考えられなかったほど大量かつ多様なデータを蓄積し利用することが可能になっています。しかしながら、この動向は、多種多様なフォーマットのソースデータを結合する必要性や、生データを “予測モデルへの入力として利用できる状態” に変換する必要性を増大させたにすぎません。コネクテッド・デバイスが生成する新しいタイプのデータ(例:マシンセンサー・データやオンライン行動のWebログなど)の出現により、「データ準備」段階は以前にも増して難しい課題領域となっています。多くの組織は依然として、「データ準備タスクに過大な時間を費やしており、場合によっては[全作業時間の]最大80%を占めている」と報告しています。 データ準備は継続的なプロセスである データ探索では、対話操作型かつセルフサービス型のビジュアライゼーションツール群を活用します。これらのツールは、統計知識を持たないビジネスユーザーから、アナリティクスに通じたデータサイエンティストまで、幅広いユーザーに対応している必要があります。また、これらのユーザーが関係性/トレンド/パターンを洗い出し、データに関する理解を深めることを可能にしなければなりません。言い換えると、このステップ(=探索)では、プロジェクト初期の「疑問提起」段階で形成された疑問やアプローチを洗練させた上で、そのビジネス課題を解決する方法についてアイディアの開発とテストを行います。ただし、より照準を絞ったモデルを作成するために変数の追加/削除/結合が必要になる可能性もあり、その場合は当然、「データ準備」を再び実行することになります。 「モデル作成」段階では、分析モデルや機械学習モデルを作成するためのアルゴリズムを使用します。その目的は、データ内に潜む関係性を浮き彫りにし、ビジネス上の疑問を解決するための最良のオプションを見つけ出すことです。アナリティクス・ツールは、データとモデリング手法をどのように組み合わせれば望ましい結果を高い信頼性で予測できるかを特定するために役立ちます。常に最高のパフォーマンスを発揮する唯一万能のアルゴリズムは存在しません。そのビジネス課題を解決するための “最良” のアルゴリズムが何であるかは、そのデータによって決まります。最も信頼性の高い解を見つけるためのカギは実験を繰り返すことです。適切なツールでモデル作成を自動化することにより、結果が得られるまでの時間が最小化され、アナリティクス・チームの生産性が向上します。そして、ここでも再び、さらなるデータが追加される可能性があります。 常に最高のパフォーマンスを発揮する唯一万能のアルゴリズムは存在しません。そのビジネス課題を解決するための “最良” のアルゴリズムが何であるかは、そのデータによって決まります。 「実装」段階へ もちろん、モデルの作成が済んだら、それらをデプロイ(=業務システムに組み込んで運用)する必要があります。しかし、その後も「データ準備」の取り組みは停止しません。モデルの良否はそれが利用するデータに左右されるため、モデル(およびデータ)については鮮度を維持し続けなければなりません。データ準備とデータ管理は、極めて継続的なプロセスなのです。

1 2