Tag: 予測モデル

Advanced Analytics | Analytics | Machine Learning
SAS Viya:ビジュアルパイプラインで予測モデル生成(自動特徴量エンジニアリングテンプレート編)

ビジュアルパイプラインで予測モデル生成(テンプレート使用編)では、SAS ViyaのModel Studioを使用し、標準で実装されているパイプラインのテンプレートを使用して、予測モデルを自動生成する手順を紹介しました。 今回は、標準実装のテンプレートに含まれている、「自動特徴量エンジニアリングテンプレート」を紹介します。 「特徴」=入力=変数(独立変数、説明変数)であり、 特徴量エンジニアリングとは、予測モデルの精度を高めるために、学習用の生データに基づき、特徴を変換したり、抽出したり、選択したり、新たな特徴を作り出す行為です。 以下は、特徴量エンジニアリングの例です。 ・郵便番号などの高カーディナリティ名義変数のエンコーディング(数値化) ・間隔尺度の変数の正規化、ビニング、ログ変換 ・欠損パターンに基づく変換 ・オートエンコーダー、主成分分析(PCA)、t-SNE、特異値分解(SVD)などの次元削減 ・季節的な傾向を把握するために、日付変数を別々の変数に分解して曜日と月と年の新しい変数を作成 より良い「特徴」を作り出し、選択することで、予測モデルの精度が向上するだけでなく、モデルを単純化し、モデル解釈可能性を高めるのにも役立ちます。 しかし、従来、予測モデリングのプロセスにおいて、データサイエンティストは、その多くの時間を特徴量エンジニアリングに費やしてきました。しかも、特徴量エンジニアリングの良し悪しは、データサイエンティストのスキルに大きく依存してしまいます。 こうした課題に対処するために、SAS Viyaでは、自動特徴量エンジニアリングテンプレートを提供しています。このテンプレートを使用することで、特別なスキルを必要とせず、特徴量エンジニアリングにかける時間を短縮し、より精度の高い予測モデル生成が可能になります。 以下が、SAS ViyaのModel Studioに実装されている「自動特徴量エンジニアリングテンプレート」です。 このテンプレートは、大きく3つのステップで構成されています。 高カーディナリティ変数に対するエンコーディング(数値化) 最良変換、PCA / SVD、オートエンコーダーを使用して新たな特徴を作成 特徴エンジニアリング未/済みデータに基づく予測モデルの精度比較 ステップ1.高カーディナリティ変数に対するエンコーディング(数値化) このステップの最初のノードは、「SASコード高カーディナリティ」という名のSASコードノードです。 SASコードノードを使用することで、SASプログラムをパイプラインに組み込むことができます。 このノードを選択し、右側画面内でコードエディタ:「開く」をクリックすると、その内容を確認できます。 このSASコードノードでは、最初に、20〜1,000レベルのカーディナリティの高い変数(固有値が多すぎる名義変数)を識別します。minlevelsとmaxlevelsの値を更新することで、この範囲を簡単に変更することもできます。次に、数値変換(TRANSFORM = LEVELENCODE)を指定し、これらの変数に対してのみレベル(水準)エンコーディングを行います。実際に変換を行うためには、「データマイニングの前処理」にある「変換」ノードを実行する必要があるため、「変換」ノードが接続されています。 レベルエンコーディングでは、名義を数値に変換します。これは、カーディナリティの高い変数を扱う場合に特に便利です。これらの変数は、ほとんどの機械学習アルゴリズムにおいてコンピューティングリソースの負荷をあげてしまうことが多いからです。最初に名義変数のレベルをアルファベット順に並べ替え、各レベルに昇順に数字(1から始まる)を割り当てます。 ステップ2.最良変換、PCA / SVD、オートエンコーダーを使用して新たな特徴を作成 ステップ2では、以下の3つの異なる自動特徴量エンジニアリング手法が適用されます。 変換-最良(Best):このノードは、「データマイニングの前処理」にある「変換」ノードを使用して、すべての間隔変数に対して「最良(Best)」の変換を行います。この方法では、各間隔変数に対して、ランク付け基準(ターゲットとの相関など)に基づいて、単一変数の変換(逆変換、標準化、センタリング、ログ変換など)を比較し、最も高いランク付けを持つ変換を選択します。 特徴抽出- PCA:このノードは、「データマイニングの前処理」にある「特徴抽出」ノードを使用して、間隔入力変数に対する自動特徴抽出手法として「自動」を指定しています。「自動」では、間隔入力変数の総数が500以下の場合は、主成分分析(PCA)が適用され、それ以外の場合は、特異値分解(SVD)が適用されます。 特徴抽出-自動エンコーダ:このノードでは、オートエンコーダを用いて特徴抽出を行います。この手法では、特徴抽出にすべての入力変数(間隔と名義)を使用します。オートエンコーダーは、入力データを再構成するために使用できる特徴のセットを学習することを目的とした教師なし学習技術です。手短に言えば、ニューラルネットワークは、ターゲット(出力)ニューロンを入力ニューロンと等しく設定することによって訓練されるものです。 このノードでは、中間隠れ層が10に設定されているので、10個の新しい特徴が作成されます。 ステップ3.特徴エンジニアリング未/済みデータに基づく予測モデルの精度比較 最後のステップでは、勾配ブースティングを用いた5つの異なる予測モデルが生成されます。 ・高カーディナリティー変数のレベルエンコーディング+特徴抽出(PCA)を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディング+特徴抽出(オートエンコーダー)を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディング+変換-最良を施したデータに基づくモデル ・高カーディナリティー変数のレベルエンコーディングを施したデータに基づくモデル ・元のデータ(特徴量エンジアリングを施していない)に基づくモデル 5つのモデルを生成後、パフォーマンスを比較します。勾配ブースティングは、非常に効果的な教師あり学習アルゴリズムであり、予測精度の面で他のアルゴリズムより優れていることが多いため、使用しています。

Advanced Analytics | Analytics | Machine Learning
SAS Viya: ビジュアルパイプラインで予測モデル生成(テンプレート使用編)

ビジュアルパイプラインで予測モデル生成(基本編)では、SAS ViyaのModel Studioを使用し、パイプラインを一から作成し、予測モデルを生成する手順を紹介しました。 今回は、前回からの続きとして、予め用意されているパイプラインのテンプレートを使用した、モデル生成手順を紹介します。 パイプライン・テンプレートの選択と実行 実行結果(モデル精度)の確認 1.パイプライン・テンプレートの選択と実行 パイプラインの追加アイコンをクリックすると、 「パイプラインの新規作成」ダイアログが表示されます。 パイプラインの名前を入力し、「テンプレート」から「テンプレートの参照…」を選択すると、 標準で実装されているテンプレートのリストが表示されます。 この中から使用したいテンプレートを選択し、「OK」をクリックします。今回は、「分類尺度のターゲット変数の高度なテンプレート」を使用します。 さらに、「保存」をクリックすると、 選択したパイプラインの内容が表示されます。 このテンプレートでは、以下の7つのモデルを生成し、結果を比較することができます。 ・データに対する前処理(欠損値補完と変数選択)後に、ロジスティック回帰(ステップワイズ法)とニューラルネットワークでモデル生成 ・データに対する前処理(欠損値補完)後に、ロジスティック回帰(増加法)でモデル生成 ・データに対する前処理無しで、勾配ブースティング、フォレスト、ディシジョンツリーでモデル生成 ・上記6つのモデルのアンサンブルモデルの生成 ※テンプレートに使用されている機能ノードごとの詳細なオプション内容は右側画面内で確認でき、必要に応じて変更可能です。また、パイプライン内への機能ノードの追加・削除・変更などカスタマイズも可能です。 ※一から作成したパイプラインや、既存テンプレートをカスタマイズしたパイプラインを、その企業独自のテンプレートとして共有し、活用することができます。 ※一つのプロジェクト内に、複数のパイプラインを作成し、結果を比較することができます。 パイプラインの実行アイコンをクリックし、実行します。実行中の機能ノードは時計アイコンがクルクル回転し、正常に完了すると緑のチェックマークが表示されます。 2.実行結果(モデル精度)の確認 パイプラインの実行が完了したら、ビジュアルパイプラインで予測モデル生成(基本編)と同様に、「モデルの比較」ノードのスノーマンアイコンをクリックし、メニューから「結果」を選択し、このパイプラインの実行結果を確認することができます。 また、一つのプロジェクト内で、複数のパイプラインを作成している場合には、パイプライン間でモデル精度を比較し、プロジェクト内でのチャンピオンモデルを確認することができます。 画面上部の「パイプラインの比較」をクリックします。 パイプライン2の勾配ブースティングのモデルの精度が最も高い、チャンピオンモデルであることが示されています。 以上が、パイプラインのテンプレートを使用して、予測モデルを生成する際の手順です。 コーディングスキルを持たないビジネスユーザーでも、まず、学習用のデータを選択し、予測対象の項目を選択し、テンプレートを選んで実行するだけで、精度の高いの予測モデルを自動生成することができるということです。 ※ビジュアルパイプラインのテンプレートを使用したモデル生成は、SAS Viya特設サイトにある動画でもご覧いただけます。  

Advanced Analytics | Analytics | Machine Learning
SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)

AIプラットフォームであるSAS Viyaでは、SAS言語のみならず、PythonやR、Java、Luaなどの汎用プログラミング言語からViyaのAI&アナリティクスの機能を使用し、予測モデルを生成することができるようになっています。しかし、昨今、「AI民主化」の流れに沿って、予測モデル生成を必要としているのはデータサイエンティスト(以降:DS)だけではなく、業務部門のビジネスアナリストや一般のビジネスユーザーも必要としています。こうしたコーディングスキルを持たないビジネスユーザー向けに、SAS Viyaでは、GUI上でマウスの簡単操作だけで予測モデル生成を可能としています。 もちろん、DSの中にも、コーディングせずに、もっと簡単に精度の高い予測モデルを生成できる手段があれば活用したいと感じている人達もいます。 SAS Viyaでは、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができます。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 Model Studioで予測モデルを生成するには、大きく2通りの方法があります。 1つは、マウスの簡単ドラッグ操作でパイプラインを一から作成する方法と、もう一つは、予め用意されているパイプラインのテンプレートを使用する方法です。 まずは、パイプラインを一から作成する際の基本的な手順を紹介します。 プロジェクトの新規作成と学習用のデータソース選択 パイプラインの作成と実行 実行結果(モデル精度)の確認 1.プロジェクトの新規作成と学習用のデータソース選択 SAS Viyaの統合GUIのホームページのメニューから「モデルの作成」を選択すると、 Model Studioの画面が表示されます。 「プロジェクトの新規作成」をクリックします。 「プロジェクトの新規作成」画面内で、プロジェクトの名前を入力し、モデルの種類(データマイニングと機械学習 / テキスト分析 / 予測)を選択し、学習用のデータソースを選択します。今回は、「データマイニングと機械学習」を選び、ローンの審査モデルを作成します。HMEQJというデータソースは、顧客ごとに1行の横持ち形式のデータです。 「保存」をクリックすると、ローン審査モデルプロジェクトが作成され、選択したデータソースの変数リストが表示されます。 予測対象の項目(ターゲット変数)を指定します。変数名:BAD(ラベル名:延滞フラグ)を選択し、右画面内で、役割に「ターゲット」を選択します。 延滞フラグには、過去に延滞の実績があればフラグに“1”が、無ければ“0”が設定されています。 2.パイプラインの作成と実行 予測対象の項目を指定後、画面上部にある「パイプライン」をクリックします。 パイプラインには「データ」ノードのみが表示されています。左端の機能ノードアイコンをクリックすると、 パイプラインに追加可能な機能ノードのリストが表示されます。 今回は、欠損値補完を行った上で、勾配ブースティングとランダムフォレストでモデルを生成してみましょう。まず、データに対する前処理として欠損値補完を行います。 「データマイニングの前処理」内にある「補完」を「データ」ノード上にドラッグすると、 「データ」ノードの下に「補完」ノードが追加されます。 同様の手順で、「教師あり学習」内にある「勾配ブースティング」を「補完」ノード上へドラッグすると、「補完」ノードの下に「勾配ブースティング」ノードが追加されます。(同時に「モデルの比較」ノードが自動的に追加されます) このようにドラッグ操作でノードを追加する以外に、パイプライン上のメニューからノードを追加することもできます。 「補完」ノードの右端にある、3つのドットが縦に並んでいる(スノーマン)アイコンをクリックし、「下に追加」>「教師あり学習」>「フォレスト」の順に選択すると、 「補完」ノードの下に、「フォレスト」ノードが追加されます。 機能ノードごとの詳細なオプションの設定は、右側画面内で行います。 パイプラインが完成したら、パイプラインの実行アイコンをクリックし、実行します。実行中の機能ノードは時計アイコンがクルクル回転し、正常に完了すると緑のチェックマークが表示されます。 3.実行結果(モデル精度)の確認 パイプラインの実行が完了したら、「モデルの比較」ノードのスノーマンアイコンをクリックし、メニュー から「結果」を選択します。 モデルの比較結果が表示されます。今回は勾配ブースティングのモデルの精度の方が高い=チャンピオンであると判定されています。 「アセスメント」タブ内では、リフトやROCの情報などを確認することができます。 以上が、ビジュアルパイプラインで予測モデルを一から生成する際の基本的な手順です。 ※ビジュアルパイプラインによるモデル生成(基本)は、SAS Viya特設サイトの「機械学習」トピック内にある動画でもご覧いただけます。

Analytics | Machine Learning
小林 泉 0
アナリティクスの産業革命-機械学習による自動化

15年前 2000年、当時すでに(今では機械学習に分類されるいくつかのアルゴリズムを搭載した)予測モデリングツールSAS® Enterprise Minerはこの世に存在していました。また、予測モデリングにおけるSASの方法論であるSEMMAプロセスも同時に存在していました。SEMMAプロセスとはSASがそれまでに培ったベストプラクティスであり、Sample(当時は1%サンプリングで十分だと立証する論文がいくつもありました)、Explore(探索、分布の確認)、Modify(補完、置き換え、変換、連続量のカテゴリカル化など、予測モデルの精度を上げるための工夫。昨今Deep Learningでは逆にこれらをせずにありのままがいいという考え方もあります)、Model(決定木などのモデル手法の適用)、Assess(複数の予測モデルから予測パフォーマンスの良いものを選択)であり、これらを順に実施することで誰でもそれなりに精度の高い予測モデルが作れました。この方法論と方法論にのっとったEnterprise Minerのおかげで、初めての分析プロジェクトにおいて何の迷いもなく顧客の解約を予測する予測モデルを作成でき、一瞬のうちに自分が「できる分析者」になったかのように感じたのを覚えています。 学生時代、実験結果の分析にSASをプログラミングで使用していた筆者にとっては、アイコンを並べて線を繋ぐだけでよいこのツールが魔法のように感じていました。しかし同時に「アイコンの並べ方、設定、当てはまりのいい手法にはパターンがあるなあ」と感じていましたし、加えて「マウスのドラッグ&ドロップという操作がちょっと面倒」だとも感じていました。 その頃、あるお客様は、サンプリングではなく全件分析で得られる価値に重きを置き、数日にわたる予測モデリング処理を実行していました。当時の世界で最大級のUNIXを使用したチャレンジは、もちろん技術的な制約により処理を完結することそのもが一つの課題でもありました。まさに「ビッグデータ」を筆者が最初に体験した場でした。 2015年 15年前、少ないコンピューターリソースしか持たない我々は、いかに顧客をあまり多くない、説明しやすいグループに分けるかを考えていました。『顧客の顔の見える化』と当時の多くのプロジェクトでは呼んでいました。しかし、今日では消費者の嗜好が多様化し、サービスや商品も多様化かつ大量化し、サービスや商品の寿命が短くなり、販売チャネルも多様化しました。予測モデルを使用して、単に顧客を理解するだけではなく、収益を最大化するためには、そのような多様性を失わない大量のセグメントごとに予測モデルを作る必要がでてきたのです。 このような分析対象の数の増加や粒度の増加、さらには分析対象データ量の増大は、近年、組織の分析チームの責任者にとっては、「予測モデル作成業務の生産性の向上」というミッションとして、大きな課題になってきたのです。   従来、予測モデルの作成は、分析サービスを提供する企業などだけが実施する、一部の人の道具でした。しかし時代は変わりビッグデータブームにも後押しされ、アナリティクスを活用する/したい組織・企業は増加の一途をたどっています。しかし、高度な数学的考え方に基づく予測モデリング手法を高等教育で学んで社会に出る人材はそれほど増加していません。そこに、「アナリティクス人材」の不足問題が生じています。 2015年、ガートナー社は「市民データサイエンティスト」という言葉を新たに定義しました。これまで高度な分析に縁遠かった、統計学や数学の専門知識を持たない業務部門の担当者が必要に迫られて予測モデリングをするようになってきたという状況をうまく表現していると思います。   さらに、この15年で、情報技術の進化と共に、より計算が複雑な手法、すなわち、昨今では機械学習と呼ばれるような高度なアルゴリズム、複数のモデルを組み合わせるアンサンブル手法、など、以前は、コンピューターの処理能力の制約で利用できなかった洗練された大きな計算能力を要する手法が登場してきました。それぞれの手法には特徴や向き不向きがあり、データの性質や予測したい事象の性質に適した手法を使用することで、より良い意思決定が可能となります。SASもこの間、Base SASエンジンから、In-Databaseへ、そしてSAS In-Memory Analyticsへとアルゴリズムの実行環境をシフトしてきています。   この15年間で予測モデル作成プロセスそのものの考え方は変わっていませんが、それを取り巻く環境や期待が大きく変化したことにより、予測分析に対する要件も変化してきています。近年、アナリティクスを武器とする企業が求めている大きな3つのポイントは以下の通りです: 扱いやすさ: 高度な分析・ITスキルを持たないビジネスユーザーでも扱えること スピード: 大量データ、多数のセグメントに対してスケーラブルであること 正確性: 収益を左右するモデルのパフォーマンスが良いこと(精度が高いこと)  SAS® Factory Minerリリース SASはこのような要望に応える形で、このたびSAS® Factory Minerという新製品をリリースしました。 ボタンクリック一つで自動的に、 最新の機械学習アルゴリズムを使用して、 これまでに培ったベストプラクティスに基づいた、 最良の予測モデルを作成することが可能となります。   従来、GUIとはいえ、人手でひとつひとつ時間をかけて実施していた予測モデル作成業務の時代から、全自動の-すなわち、モデリングプロセスにおける試行錯誤と手動プロセスを不要とし、データの特性に応じた最適なデータ変換手法と最適な機械学習アルゴリズムを自動で選択肢し、一つの操作でセグメントごとの予測モデルを作成できる-時代がやってきました。 まさに、予測モデリングの世界における産業革命です。      SAS® Factory Minerの紹介ビデオ   60秒で語るSAS Factory Miner  

Analytics
小林 泉 0
SAS Global Forum 2015 - ユーティリティ業界のアナリティクス事例多数

SAS Global Forum では、毎年SASの全てのキーマンが集結します。もちろん2015も例外ではありませんでした。2014年にスマートメーター活用セミナーの講師として来日もした、グローバルセールス&開発マネージメント ビジネスディレクターのTim Fairchildおよび、エネルギーソリューション担当プロダクトマーケティングマネージャーのAlyssa Farrellと短い朝食ミーティングで意見交換をしてきました。日本では電力小売り自由化もありアナリティクスの活用が進んでいますが、世界的に見てもエネルギー業界にアナリティクスの大きな潮流がやってきています。 それを表すかのように、SAS Global Forum 2015において非常に多くのユーティリティ業界に関するプレゼンテーションがありました。それをご紹介します。 生存時間分析を使用した変圧器の寿命予測とSAS Enterprise Minerを使用した過負荷状態で変圧器を使用している際のリスクモデリング(Predicting transformer lifetime using survival analysis and modeling risk associated with overloaded transformers Using SAS® Enterprise MinerTM 12.1) 「いつ変圧器が故障するのか?」 これが米国のユーティリティ企業が毎日頭を悩ませている問題である。ユーティリティ企業のインフラで最も重要なものの一つが変圧器である。コストを削減し計画的にメンテナンスし、故障による損失を低減するためには、この変圧器の寿命を把握することが重要である。そしてもう一つ重要なことは、過負荷による突発的なパフォーマンスダウンを避けるために高リスクな変圧器を事前に特定しメンテナンスすることである。この論文の目的は、SASを使用して変圧器の寿命を予測し、それらの故障に繋がる様々な要因を特定し、メンテナンスを効率的に行うために変圧器を、負荷状態に基づいて、高リスク、中リスクそして小リスクといったカテゴリに分類するモデルを作成することである。この研究で使用したデータは、米国のユーティリティ企業のものであり、2006年から2013年までのデータである。このデータに対して生存時間分析を行った。Cox回帰分析(比例ハザードモデル)を使用して、変圧器の故障の要因を特定した。また負荷に応じたリスクカテゴリを作成するために、いくつかのリスクベースモデルを使用した。(続きはこちら) 顧客クラスタリングにおけるイノベーティブな方法(An Innovative Method of Customer Clustering) この論文は、SASを使用して顧客セグメントを作成する新しい方法について紹介する。著者はある巨大なユーティリティ企業が提供している9つのプログラムに登録している顧客を調査した。これらにプログラムとは、請求の平準化、支払方法、再生可能エネルギー、効率化、機器の保護、使用量レポートなどである。640,788の家庭のうち、374,441のデータが利用可能であった。これら約半数(49.8%)の分析対象顧客はいくつかのタイプのプログラムに属しており、顧客の特徴を通してこれらプログラムの間の共通性を見出すためには、多くの場合、クラスター分析と相関マトリックスが利用される。しかし、所属しているか否かという二値という性質により、これらの手法の価値はかなり限定的になる。それだけでなく、各プログラムは相互に排他的であることもその一因となる。これらの制限を乗り越えるために、各顧客がどのプログラムに属するかの予測スコアを算出するために、PROC LOGISTICを使用した。(続きはこちら) ブラジルの電力部門における電力損失の査察のためのターゲット選定の改善のためのモデリング-CEMIGの事例(Modeling to improve the customer unit target selection for inspections of