SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Analytics | Data Management
SAS Japan 0
データ品質を改善する7つのアナリティクス手法

この記事はSAS Institute Japanが翻訳および編集したもので、もともとはGerhard Svolbaによって執筆されました。元記事はこちらです(英語)。 データサイエンティストはデータの取り扱いに多くの時間を費やします。データ品質は、ビジネス課題を解決するために機械学習を適用したり、AIモデルをトレーニングしたりする上での必須要件です。しかし、アナリティクスとデータサイエンスは、データ品質に関する要件を引き上げるだけではありません。データ品質の改善に多大な貢献を果たすこともできます。 欠損値の補完と複雑な外れ値の検出は、恐らくデータ品質に関して最もよく知られた2大アナリティクス機能ですが、決してこの2つだけがそうした機能というわけではありません。本稿では、アナリティクスでデータ品質を改善できる7つの方法についてご説明します 1. 外れ値の検出 アナリティクスは、標準偏差や分位数のような統計的指標に基づく外れ値検出において重要な役割を果たします。これにより、各変量ごとの外れ値の検出が可能になります。また、外れ値検出には、クラスター分析や距離尺度の手法を含めることもできます。これらの手法は、多変量の観点からデータ内の外れ値や異常値を特定することを可能にします。 予測モデルや時系列手法を用いた個々の外れ値検出は、許容範囲や最適な修正値を個別に計算することを可能にします。全体平均は、望ましくないバイアスを分析に混入させる恐れがありますが、グループ内平均はそれに代わる優れた選択肢となる可能性があります。 アナリティクスとデータサイエンスは、外れ値や妥当性の無い値の検出や特定を実行するための手法を提供するだけでなく、代わりに使用すべき最も蓋然性の高い値に関する提案も行います。 2. 欠損値の補完 アナリティクスは、横断的データや時系列データの中の欠損値に対する代替値を提供することができます。平均ベースの手法から、個別の補完値を生成する手法まで、様々な補完手法が存在しますが、いずれも決定木や、時系列向けのスプライン補完のようなアナリティクス手法に基づいています。欠損値の補完により、不完全なデータセットでも分析に使用することが可能になります。 3. データの標準化と重複除去 分析するに当たってユニークキーが利用できないデータベースの中で重複を特定および排除するタスクは、レコード間の類似度を記述する統計的手法に基づいて実行することが可能です。これらの手法は、住所、氏名、電話番号、口座番号のような情報に基づき、レコード間の近接度や類似度に関する指標を提供します。 4. 様々に異なるデータ量のハンドリング アナリティクスを活用すると、サンプルサイズの設計と検定力分析が求められる対照実験のための最適なサンプルサイズの設計が容易になります。予測モデル作成時にサンプルが小さい場合や、イベント数が少ない場合のために、アナリティクスは希少イベントをモデル化するための手法を提供します。時系列予測に関しても、アナリティクスでは、いわゆる「間欠需要モデル」を利用できます。このモデルは、不定期かつ低頻度に発生する非ゼロ数量のみを用いて時系列をモデル化します。 5. アナリティクスに基づく入力変数変換 アナリティクス手法は、選択した分析手法に適合するように、分布に対する変数変換を実行できます。対数変換や平方根変換は、例えば、「右に裾を引いているデータ」を正規分布に変換するために使用されます。 多くのカテゴリーを伴う変数に関しては、アナリティクスでは、カテゴリを組み合わせるための複数の手法を利用できます。この場合、複数のカテゴリーに対する組み合わせロジックは、各カテゴリー内のオブザベーション数と、ターゲット変数に対する関係とに左右されます。この手法の例としては、決定木や根拠の重み(WOE)計算があります。 テキストマイニングを利用すると、自由形式のテキストを、アナリティクス手法で処理可能な「構造化された情報」に変換することができます。 6. 予測モデル作成のための変数選択 変数選択のための手法は数多く存在します。これらを利用すると、予測モデルを作成する際に、ターゲット変数と強い関係を持つ変数のサブセットを特定することができます。これらの手法の例としては、R2(=決定係数)のようなシンプルな指標や、LARS、LASSO、ELASTIC NETのような高度な指標があります。 多くのアナリティクス手法は、分析モデル自体の中で変数選択のための様々なオプションが利用可能です。例えば、回帰における変数増加法、変数減少法、ステップワイズ法によるモデル選択などが挙げられます。 7. モデル品質やwhat-if分析の評価 アナリティクス・ツールはしばしば、モデルの作成や検証を支援するように設計されています。予測モデルの作成時には、例えば、利用可能なデータが持つ予測力を初期段階で素早く洞察することが重要となるケースは多々あります(これを「高速予測モデリング」と呼ぶこともあります)。 また、これらのツールは、モデルの品質やwhat-if分析用の特徴量を迅速に評価する手段も提供します。what-if分析は、変数や変数グループの重要度を判断する際に特に役立ちます。what-if分析は、特定の変数群が利用できない場合にモデルの予測力がどのように変化するか推計します。 これらの例の出典は、SAS Pressの書籍『Data Quality for Analytics Using SAS』(SASで実現するアナリティクス向けのデータ品質) です。ガーハード(Gerhard)氏によるコンテンツは、Github、SAS Support Communities、同氏のデータサイエンス関連書籍でも見つかります。

Artificial Intelligence
SAS Viya:Python API向けパッケージ:DLPyの最新版1.1拡張機能とは

SAS Viyaのディープラーニング機能をPythonから利用するためのハイレベルAPIパッケージの最新版であるDLPy1.1では、主にCNN(Convolutional Neural Network)に関連する機能が拡張されています。 主な拡張機能: ・新たに3つのネットワーク構造に対応 【U-Net】 元々は、医療用画像のセグメンテーション向けに開発されたネットワークです。 (出典:https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/) 【MobileNet】 モバイル端末のようなリソースの少ない環境でも、畳み込み計算を分割(Depthwise Separable Convolution)することで、軽快に、素早く、そして精度の高い結果を得ることができると言われているネットワークです。 左が一般的な畳み込み構造。右が、MobileNetの構造。(出典:https://arxiv.org/pdf/1704.04861.pdf) 【ShuffleNet】 MobileNet同様に軽量軽快なネットワークですが、MobileNetでの畳み込みの分割に加えて、その名の通り、チャンネルをシャッフルしてチャンネル間での畳み込みを行い、特徴抽出を効率化するネットワーク構造です。 (出典:https://arxiv.org/pdf/1707.01083.pdf) ・上記ネットワーク構造に伴う、畳み込み層機能の拡張 【transpose convolution(転置畳み込み)】 Deconvolution(逆畳み込み)とも言われ、元となる画像に0 paddingして拡大してから畳み込む手法です。(上記U-Netに関連) 【group convolution(グループ化畳み込み)】 入力層をチャンネル方向にグループ分割して、グループごとに畳み込みを行い、最後に結合して出力する手法です。分割することで計算量を小さくすることができます。(上記MobileNet、ShuffleNetに関連) ・画像解析手法の拡張 【物体検出(Object Detection)手法にFaster R-CNNを追加】 R-CNNからFast R-CNN、そしてFaster R-CNNへと処理時間の短縮と精度向上が図られ進化してきているアルゴリズムです。 (出典:https://arxiv.org/pdf/1506.01497.pdf) DLPyの従来版からサポートしているYOLOに比べると処理時間はかかりますが、より高い精度を得ることができます。 【新たにセグメンテーション(Semantic Segmentation)に対応】 セグメンテーションは、画像中に存在する複数の物体や領域に対して、ピクセルレベルで推定する問題です。画像を入力すると、各画素に対して識別結果が付与された画像を出力します。一般的には、 Nクラスのセグメンテーションモデルは、Nチャンネルの出力画像を出力し、各チャンネルの画素値は各クラスの確率を表します。(上記U-Netに関連) 以上のように、PythonユーザーがDLPyを通して活用することができる、SAS Viyaのディープラーニング(CNN)機能が拡張されています。 ※DLPyの詳細に関しては、Githubサイトでご覧いただけます。 ※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO!

Machine Learning | Students & Educators
0
オンラインコース「Machine Learning Using SAS Viya」のご紹介(Week5・6)

本記事では、SASのオンライン学習コース「Machine Learning Using SAS Viya」について引き続きご紹介します。このコースはGUI上で機械学習理論を学習できる無料のプログラムです。ご登録方法やWeek1・2については前々回の記事を、Week3・4については前回の記事をご参照ください。最終回となる本記事では、Support Vector Machineを扱うWeek5と、Model Deploymentを扱うWeek6をご紹介します。 Week5:Support Vector Machines Week1・2、Week3・4と同様に、通信事業会社の顧客解約率をテーマに機械学習の具体的手法について学習します。Week5ではサポートベクターマシンという手法を用い、解約可能性に基づき顧客を分類するモデルを作成します。 ・Building a Default Support Vector Machine Model Week5で扱うトピックはサポートベクターマシン(SVM)です。画像認識や文字認識、テキストマイニングで用いられることが多い手法で、複雑なパターンもフレキシブルに表現できるものの、結果の解釈が難しいという特徴を持ちます。分類問題に用いられることが多く、最も簡単な例としては、下の画像のように二種類の出力を分ける直線が挙げられます。この例では分類可能な直線は何通りも考えられますが、マージン最大化という手法を用いて最適な分類線を選択します。本セクションではこれらのSVMの基礎を学習しましょう。 ・Modifying the Model Methods of Solution 本セクションでは、あるデータセットが通常のSVMで分類できない場合に用いるソフトマージンという手法を学習します。通常のSVMとは異なり、この手法は分類の誤りをある範囲内で許容しますが、それぞれの誤りに対しペナルティを課します。合計のペナルティを最小化する境界を最適な分離平面とみなし、ラグランジュの未定係数法を用いて所望の境界を推定します。ペナルティに関するパラメータを変更しながら、モデルの性能を確認しましょう。 ・Modifying the Model Kernel Function 線形分離不可能なデータでも、ある写像により超平面での分離可能な高次元の特徴空間上の点に変換することでSVMが適用可能になります。この際、その特徴空間内における内積は、カーネル関数と呼ばれるものの評価に置き換えられる(カーネルトリック)という性質を用いると、計算量の爆発を防ぎSVMが実装可能です。このカーネル法を用いて、モデルの性能を改善してみましょう。SVMで扱うのはあくまで超平面であるため幾何的な解釈可能性があると言われるものの、多くの場合、依然として十分に複雑で結果の解釈が困難です。そこで解釈を助ける指標としてICEプロットや変数の重要度について学習します。 Week6:Model Deployment Week1~5ではデータの前処理やモデルの作成について学習してきました。最終回となるWeek6では、Analytics LifecycleのDeploymentの段階を学習します。 ・Model Comparison and Selection 今まで複数のモデルを学習してきましたが、すべての状況において最適なモデルは存在しません。様々な観点でモデル間比較を行い最も高性能なモデルをチャンピオンモデルとして採用します。主に数値的スコアに基づく比較が行われますが、その際、ROC曲線・AUC値を用いたモデル間性能比較や、ゲインチャート(CPHチャート)・LIFTチャートを用いたモデルの採用・不採用の間での比較などが行われます。これらの指標に加えて、ビジネスの文脈に応じ、学習や評価のスピード・実装可能性・ノイズへの頑健性・解釈可能性などを判断基準にすることも考えられます。 ・Model Scoring and Governance Week1ではData, Discovery, DeploymentからなるAnalytics Lifecycleの概要を学習しました。これまで顧客の解約予測モデルを作成してきましたが、Analyticsはそのモデルを使用して終わりではありません。ビジネスの状況は刻一刻と変化し、それに伴って新たなデータが蓄積されていきます。先ほど決定したチャンピオンモデルがいかに高性能であっても、一定期間後に同様の性能を持つかは決して自明ではなく、モデルのモニタリングを通して性能を逐一確認する必要があります。並行して、新たな状況に関してDataの段階から分析します。その際、新たなチャレンジャーモデルを作成し、現行のチャンピオンモデルとの性能比較によりモデルを改善する手法や、新たに入手したデータを用いて逐一モデルのパラメータを調整するオンラインアップデートという手法が用いて、モデルを高性能に維持します。モデル作成後も継続してDataやDiscoveryの作業を行うことが、Analytics

Machine Learning | Students & Educators
0
オンラインコース「Machine Learning Using SAS Viya」のご紹介(Week3・4)

前回に引き続き、SASのオンライン学習コース、「Machine Learning Using SAS Viya」についてご紹介します。これはGUI上で機械学習理論を学習できる無料のプログラムです。ご登録方法やWeek1・2に関しては前回の記事をご参照ください。本記事ではWeek3・4の内容をご紹介します。Week3ではDecision Treeについて、Week4ではNeural Networkについて取り扱います。 Week3:Decision Tree and Ensemble of Trees Week1・2と同様に、通信事業会社の顧客解約率をテーマに機械学習の具体的手法について学習します。Week3では、ディシジョンツリーという手法を用いて、解約しそうな顧客を分類するモデルを作成します。 ・Building a Default Decision Tree Model Week3は右図のようなディシジョンツリーについて学習します。これは、図のように各ノードに与えらえた条件式に基づき入力データを分類するモデルです。結果の解釈が容易である点が大きな特徴ですが、オーバーフィッティングに陥りやすいという欠点もあります。デモを参考に基本的なディシジョンツリーを作成しましょう。   ・Modifying the Model Tree Structure ディシジョンツリーはパラメータとして木の構造を変更する事ができます。最大の深さや子ノードの数を変えると木の大きさが変わり、葉の最大要素数を減らすと分割が細かくなります。データの複雑さや過学習などの観点から各パラメータの及ぼす影響を学習し、実際に条件を変更して結果を比べてみましょう。 ・Modifying the Model Recursive Partitioning ディシジョンツリーの作成手順について学習します。まず、ある一つの集合を複数の集合へ分割する基準(不等式など)を作成します。この際、すべての分割方法を考え、その中から要素を最も適切にグループ化できる基準を選択します。例えば動物をグループ化する下の例については、多くの動物が混じっている上の状態よりも、シマウマの比率が高い下の状態のほうが適切とみなせます。ジニ係数やエントロピーを用いると、このような複数のグループの純度を数値的に比較できます。以上のようなグループ化手順を順々に繰り返し、最終的に一つの木構造を作成します。再帰的分割と言われるこの手法の詳細や、分割選択基準となるエントロピー・ジニ係数について学習し、ディシジョンツリーの理論的構造を把握しましょう。 ・Modifying the Model Pruning ディシジョンツリーは、サイズが過度に大きいとオーバーフィッティングを引き起こし、逆に過度に小さいと十分な汎化性能が得られません。そこで、まず最大のツリーを作成した後、重要でないノードを切り落としていくことでサイズを段階的に小さくし、最終的にバリデーションデータに対するスコアが最大となるサイズのツリーを採用します。プルーニングと言われるこの手法を実践しましょう。ツリーの大きさなどモデルに対して外部から設定する条件はハイパーパラメータと言われ、モデルの性能を高めるにはその最適化(チューニング)が不可欠ですが、本セクションではそれを自動的に行う手法も学習します。   ・Building and Modifying Ensembles of Trees ディシジョンツリーは入力データの影響を受けやすく、微小な変化に対しても大きく構造を変化させるため、安定した構造を取りません。しかし、一般にツリーの構造が変わったとしてもモデルの性能に大きな差が生じないという特徴があります。この性質を活用して、複数の構造のツリーを作成し、その結果を合わせて予測を行うアンサンブルという手法が用いられます。本セクションでは、その代表的手法であるバギング・ブースティング・勾配ブースティング・フォレストについて学習します。また、これらのモデルを実装し、チューニング後のスコアの比較を行います。   Week4: Neural

1 28 29 30 31 32 56