この記事はSAS Institute Japanが翻訳および編集したもので、もともとはIvor G. Moanによって執筆されました。元記事はこちらです(英語)。 Webセミナー「Data Preparation in the Analytical Life Cycle」について このWebセミナーでは「アナリティクス・ライフサイクルにおけるデータ準備」というテーマを取り上げ、データ準備の定義と、このライフサイクルの各ステップについて論じています。最初に現在の市場状況とデータ準備に関する人々の見方を考慮に入れた上で、議論の対象は、アナリティクス・ライフサイクルを構成する様々な領域と、データ準備が果たす役割へと移ります。そして最後に、データ・ガバナンスの役割を検討します。この簡潔版のブログ投稿シリーズでは、同Webセミナーから、いくつかの主題を取り上げて論じています。 この投稿は、アナリティクス・ライフサイクルにおけるデータ準備の役割に関するWebセミナーに基づく投稿シリーズの第2弾です。第1弾では、データ準備がアナリティクス・ライフサイクルの中にどのようにフィットするかを論じました。この投稿では、データ準備に関するいくつかのトレンドと、その結果として進化を遂げた構造やプロセスのいくつかを取り上げて検討します。現在のデータ準備パターンの形成を推進してきた主な課題は2つあります。それは、顧客需要に関する課題とデータ品質に関する課題です。 顧客需要 データ準備に関する現状の大部分は、データ量とデータソース数の増大によって推進されています。ビッグデータの出現は、データ・フォーマットの種類の増加や、ソーシャルメディアやマシンセンサーのような新しいデータソースの出現と相まって、データの保管や利用が難しくなることを意味しました。それと同時に、組織や企業は「意思決定をサポートするためにデータを効果的に活用することが、ますます必要不可欠になっている」ということを認識するようになりました。 ユーザーはより一層多くのデータを必要としています。彼らは手元のデータと外部のデータの両方を分析に含められるようになりたいと考えています。セルフサービスの人気が高まっているのは、柔軟性と自律性が高く、より低コストで、より高速であることに加え、統制も容易だからです。また、他の部門のために行う作業が減少します。 ガードナー社は以前、次のようにコメントしました。「セルフサービス型のデータ準備ソフトウェアの市場は、2019年までに10億ドル(1,100億円、1ドル110円換算)に達し、16.6%の年間成長率を示すと想定されます。潜在的なターゲット・ユーザーにおける現在の導入率は5%であり、これが2020年までには10%以上に成長すると想定されます。ベンダーは自社のビジネス戦略を計画する際に、この市場機会を理解しなければなりません」。しかしながら、セルフサービスのこうした急速な普及は、データサイエンティストにとって頭痛の種を生み出します。セルフサービスは高品質なデータ準備を必要としますが、残念ながら、それには時間がかかり、近道はほとんど存在しません。 データ準備工程からアナリティクス工程へのスムーズな遷移は極めて重要です。その実現には強力なアナリティクス機能とビジュアライゼーション機能が必要となりますが、ユーザーが必要な情報をデータから素早く引き出せるようにするためには強力なデータ管理も必要です。 データ準備工程からアナリティクス工程へのスムーズな遷移は極めて重要です。その実現には強力なアナリティクス機能とビジュアライゼーション機能が必要となりますが、ユーザーが必要な情報をデータから素早く引き出せるようにするためには強力なデータ管理も必要です。動きの速い市場では、俊敏な企業になる必要があります! こうした状況を受け、多くの企業では、データ準備やソフトウェア・エンジニアリングを担当するデータエンジニアという新たな職務役割が台頭しています。データエンジニアの仕事は、分析モデルの作成を行うデータサイエンティストにデータを渡す前に行われます。 データ品質の重要性 この新しい台頭中のデータエンジニアという仕事の役割は、データ品質が不可欠であるという事実の認識が広がっていることの証と言えます。言い換えると、データ管理とは、データの収集や整形を行うことだけでなく、データの品質が適切である状態を確保することでもある、ということです。したがって、データ品質は、データ準備の領域においても必要不可欠なテーマとなりつつあります。 SASは以前から、この領域の先頭を走り続けてきました。我々は相当以前から、「データ準備は単なるデータ読み込みに留まらない工程であり、データ品質の問題も含める必要のある工程である」と認識していました。アナリティクス手法はその入力として、価値の高いデータを必要とします。入力データがクリーンかつ高品質でない場合、出力はそれに応じて劣悪なものとなります。なぜなら、アナリティクス手法には、「ゴミを入れれば、ゴミしか出てこない」という格言がまさに当てはまるからです。 入力データがクリーンかつ高品質でない場合、出力はそれに応じて劣悪なものとなります。なぜなら、アナリティクス手法には、「ゴミを入れれば、ゴミしか出てこない」という格言がまさに当てはまるからです。 データの確認と修正 例えばSAS® Data Preparationでは、ユーザーは、どのようなデータがインポート済みで、どのようなデータが利用できるかを見ることができます。ユーザーはデータのサンプルを見てその感触を得ることができ、初見の段階で全てが一目瞭然です。しかも、ユーザーはデータ・プロファイルを見れば、もう少し詳しい情報を確認することもできます。プロファイルには、データが様々な形態で保管されている(例:正式名称と略語が混在している)という情報が示される可能性があります。こうしたデータ状態は、分析モデルに深刻な問題を引き起こしかねないため、複数の異なるデータソースを統合する前の段階で解決されなければなりません。 したがって基本的には、そのデータには今すぐ修正や標準化が必要です。この目的のために利用できる可能性のある解決手段は、いくつも存在します。例えば時系列分析の場合、我々はデータをフィルタリングし、欠損値を含む全ての項目を除去することができます。あるいは、データの表記法に一貫性がない場合には、異常値や重複を除去するために、そのデータを訂正およびクレンジングする必要があります。こうした操作の全てがデータ準備の重要な構成要素であり、それに関する認識と重要性がともに高まり続けているのです。 将来に向かって進むために これら2つの領域(顧客需要とデータ品質)は、データ準備とデータ管理の領域において、および、そこで利用可能なツールにおいて、近年の発展を非常に強力に推進してきました。セルフサービス型のツールは、ますますユビキタスな存在となっており、データ品質を確保する機能要素との組み合わせによって、あらゆる領域で最良のソリューションを実現しています。 次回の投稿では、データ管理に関する新たな規制やガバナンス要件を取り上げます。
Japanese
この記事は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、同氏のデータサイエンス関連書籍でも見つかります。
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!
本記事では、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
前回に引き続き、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
現在、機械学習が大ブームを巻き起こしており、各種ビジネスへ応用拡大の勢いはとどまるところを知りません。一方で、「“機械学習”という名前は聞くけど、よくわからない…。」、「“機械学習”について学んでみたいけど、プログラミングに自信はない…。」などと考えている方も少なくないはずです。そこで本記事では、煩わしいプログラミングなしで機械学習が学べる「Machine Learning Using SAS Viya」という学習コースについてご紹介します。 「Machine Learning Using SAS Viya」は、オンライン学習プラットフォーム、「Cousera」のコースの一つです。SAS Viya for LearnersというSAS の教育用環境を使用し、オンライン上で実際に手を動かしながら機械学習の基礎を学べます。GUIでの操作が基本であるため、プログラミングに自信のない方でも取り組めることが特徴です。本コースは六週間分のパートに分かれており、無料で教材の内容全ての閲覧が可能です。また、コースを購入すると採点機能の利用や修了証の発行などの機能も利用可能です。コースの言語は英語で、コース内動画は英語字幕に対応しています。 シラバスは以下のとおりです。 Week1:Getting Started with Machine Learning using SAS® Viya® Week2:Data Preparation and Algorithm Selection Week3:Decision Tree and Ensembles of Trees Week4:Neural Networks Week5:Support Vector Machine Week6:Model Deployment 本記事ではWeek1・Week2の内容を各セクションごとにご紹介します。 Week1:Getting Started with Machine Learning using SAS® Viya®
SAS Japanでは昨年末より”Data for Good”の達成を目指す学生コミュニティ「SAS Japan Student Data for Good community」を運営しています。このコミュニティでは生物の絶滅と人類との関係の分析や通勤ラッシュ時の鉄道混雑緩和など、データを活用した社会課題の解決に取り組んでいます。 二回目となる今回の勉強会では、DataKind社の事例から精神疾患に苦しむ人の生活の向上をテーマに、課題の設定方法をメインに学びました。 精神疾患に苦しむ人々に質の高いケアを提供する 今回扱った事例は、Data for Goodを推進する社会団体であるDataKind社とイリノイ州シカゴで精神疾患の患者を支援している非営利団体であるThresholdsが共同で行ったプロジェクトです。 精神疾患の患者が引き起こす傷害事件や、自殺者の増加、子どもの登校拒否など、精神疾患が原因の社会問題はアメリカにも深刻な影響を与えています。Thereholdsは治療機会や住居の提供を通して精神疾患のある人々の支援を行ってきましたが、資金/人手不足により精神疾患患者に質の高いケアを提供することは困難を極めていました。 そこでDatakind社と共同プロジェクトを開始し、「支援を優先すべき患者を把握する」ことで限られたリソースの中で質の高い支援を行うことを目指しました。このプロジェクトでは、実際のアプローチとして 患者データを一括管理できるデータウェアハウスの構築 支援者が使いやすいダッシュボードの作成 患者間のリスクスコアリングのための予測モデリングの基礎の開発 に取り組んでいます。 3の予測モデリングでは、支援を優先すべき患者を予め把握することで問題解決につなげることを目的にしています。今回のプロジェクトで予測モデリングの土台を築き上げられたことから、今後は精神疾患患者の支援に最良な意思決定のサポートができるようになる見込みです。詳しい内容は記事DataKind社の事例紹介(英語)をご覧ください。 解くべき課題を設定する DataKind社は「支援を優先すべき患者を把握する」ことで資金や人手不足の中でも質の高いケアを提供することに挑みました。 では自分たちならこの問題のどの部分に着目して「課題設定」を行い、その課題を解くにはどのようなアプローチが考えられるのか議論しました。 その中で興味深い意見としては、 課題を「精神疾患の早期発見」と設定し、その解決策として「異変に気付きやすい周りの家族・友人が、簡易的に精神疾患をチェックでき、次にとるべき行動を示してくれるアプリケーション」 といったものがありました。 このアプローチは急な病気やけがの際にインターネット上で緊急度を確認できる救急受診ガイド(東京消防庁)と似た発想であり、どちらも限られたリソースを上手く活用するために機械で判断が可能な部分は機械に任せ、人間がより重要な仕事に時間を割けるようにする取り組みといえます。 上記以外にも様々な意見を交わし、課題の設定方法を学びました。 普段私たちは与えられた課題を解くことはあっても、自分たちで課題を設定する機会はあまりないように思えます。しかしデータ分析において課題の設定は非常に重要で、勉強会を通して意見を共有しながら議論を進められたのは、私たちが取り組んでいるプロジェクトを考える上でも参考になりました。 コミュニティメンバー募集中! SAS Japan Student Data for Good communityでは引き続き学生の参加者を募集しております。社会貢献を目指す活動を通してデータサイエンティストの役割である「課題の設定」から「データを用いた解決法の提示」までの一連の流れを経験できます。 興味をお持ちでしたら下記の事項をご記入の上JPNStudentD4G@sas.comまでご連絡ください。 大学名 / 高校名 名前 メールアドレス また、第4回を迎える学生向けセミナー「データサイエンティストのキャリアと活躍のかたち」 は2019年7月25日(木)19:00~ SAS東京本社(六本木ヒルズ11F)にて開催予定です。 現場で活躍されているデータサイエンティストの方々から、具体的なお仕事の内容や学生の内に学ぶべきこと等をお伝えする予定です。 みなさんのご参加お待ちしております。
SAS Viyaでは、Model Studioを使用し、機械学習のモデル、時系列予測のモデル、テキストマイニングのモデルをGUIベースの簡単マウス操作で作成することができます。モデル生成プロセスをグラフィカルなフロー図として描き、実行するだけです。このフロー図のことを「パイプライン」と呼んでいます。 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」では、モデル生成と精度評価の基本的な流れを紹介しましたが、今回は、生成したチャンピオンモデルに新しいデータを当てはめてインタラクティブにスコアリングを実行する手順を紹介します。また、スコアリング結果のデータの探索や、エクスポートまで試してみましょう。 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」で作成したパイプラインでは、勾配ブースティングのモデルの方が精度が高い=チャンピオンモデルだと判断されました。 それでは、このモデルに新しいデータを当てはめてスコアリングを実行してみましょう。 まず、画面左側の機能ノードリストの「その他」セクション内にある「データのスコア」を「勾配ブースティング」ノード上にドラッグすると、「勾配ブースティング」ノードの下に「データのスコア」ノードが追加されます。 「データのスコア」ノードを選択し、画面右側で以下の項目を指定します。 ・モデルに当てはめるデータテーブル名 ・スコアリング結果データの出力先ライブラリとテーブル名 「データのスコア」を右クリックし、表示されるメニューから「実行」をクリックすると、スコアリングが実行されます。 スコアリング処理が完了すると「データのスコア」ノード上に緑色のチェックマークアイコンが表示されます。 それでは、スコアリング結果のデータを見てみましょう。 「データのスコア」ノードを右クリックし、表示されるメニューから「結果」を選択します。 すると、データのスコアの結果画面が表示され、「出力データ」タブ内で、データの中身を確認することができます。「予測:BAD=1」列に、顧客ごとの延滞確率に相当するスコア値が表示されています。 それでは、このデータを探索してみましょう。 「探索とビジュアル化」アイコンをクリックし、 表示される画面内で、このデータを探索用に保存する先のライブラリとテーブル名を指定し、「探索とビジュアル化」ボタンをクリックします。 すると、このデータに基づき、「SAS Visual Analytics – データ探索とビジュアル化」画面が表示され、データ探索やレポーティングが可能になります。 例えば、スコア値である「予測:BAD=1」変数と「資産に対する負債の割合」変数の関係性を探索したり、 スコア値が0.7以上の顧客データをエクスポートして、二次活用したり、等々も簡単です。 以上のように、SAS Viyaでは、データの準備はもとより、モデル生成からスコアリング、そして、スコアリング結果データの探索からエクスポートまでをGUIベースでシームレスに実施することができるんですね。 ※Enterprise Open Analytics Platform 「SAS Viya」 を知りたいなら「特設サイト」へGO! ※「ビジュアルパイプラインでスコアリング」は、SAS Viya特設サイトにデモ動画を近々公開予定です。
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはJames Ochiai-Brownによって執筆されました。元記事はこちらです(英語)。 自己完結型のパッケージ内でソフトウェアを実行するというアイディアは、2013年のDockerの立ち上げと共に広まり始め、今ではアプリケーション開発とDevOpsのコミュニティにおけるホットなトピックとなっています。Red Hat社による最近の調査では、調査対象企業の57%が、いくつかのワークロードにコンテナを利用しており、次の2年間で採用数が2倍近くになると期待している、と回答しています。 SASはこのトレンドを認識しており、現在ではデプロイメント・オプションの一つとしてSAS for Containersを提供しています。これが仮想マシン上でSASを実行する手法の完全なリプレースになるとは思われませんが、そこには顕著なメリットがいくつか存在します。 1. アナリティクスへのセルフサービス型アクセス 組織の中には、「SASを利用したいが、それを手にできない分析担当者」を抱えているところもあります。また、SAS Platformを保有しているものの、そのオンボーディング・プロセスに承認手続きが設けられているビジネス部門も存在します。プラットフォームの運用管理者がファイルシステムやセキュリティモデルに変更を加えなければならない可能性があり、そのプロセスに時間がかかることもあります。 コンテナを利用すると、物事がよりセルフサービス型になります。IT部門はSAS用の標準的なコンテナイメージを準備し、それを社内のユーザー向けに提供します。分析担当者は用途に応じてその中から選択し、自分専用のインスタンスを起動するだけで、数分以内にSASでの作業を開始できます。Domino Data LabとBlueData は、こうした機能を提供するコンテナベースのデータサイエンス・プラットフォームの例です。 2. 様々なソフトウェア・ツールやバージョンに関するニーズへの対応が簡素化 SAS Platformの従来型の実装は、多数のユーザーによって共用されます。ユーザーは設定済みのソフトウェアを使用しなければなりませんが、それが最新バージョンであるとは限りません。コンテナを利用すると、IT部門はデータ分析担当者に対し、SASとオープンソースのソフトウェアを組み合わせた幅広い種類のコンテナイメージを提供することができます。例えば、SAS 9.4、SAS Studio、Jupyter Notebookを組み合わせたコンテナイメージも可能ですし、SAS Studio、Jupyter Notebook、R Studioのいずれからでもアクセスできる形でSAS Viyaの機械学習機能を提供するようなイメージも可能です。IT部門は、試用版ソフトウェアを提供することさえ可能です。開発者は、特定のプロジェクトに必要なソフトウェア・コンポーネントやAPI群を組み合わせて、独自のコンテナイメージを作成することもできるようになります。 3. ソフトウェア・アップデートの容易化 実際には、コンテナ内のSASソフトウェアがアップデートされることはありません。必要なのは、新しいバージョンで別のコンテナイメージを作成し、それを用いて別のコンテナを構築することだけです。つまり、ソフトウェアのアッグレード中にユーザーの作業を邪魔することは一切ありません。週末の作業も不要ですし、アップグレードがうまく進まないときに、どうやってシステムを元に戻せばよいかパニックになることもありません。新しいコンテナをテストし、準備が整った段階でそれをユーザー向けに展開すればよいのです。様々なバージョンのコンテナイメージを保持できるため、ユーザーは時間的な余裕をもって自分のコードを各バージョンでテストしたり、問題がないことを確認した上で新しいバージョンに移行したりできるようになります。 4. スケーラブルかつ柔軟で、隔離された計算処理環境 コンテナ・オーケストレーター(例:Kubernetes)は、多くのコンテナを起動することで、大きなコンピューティング・リソースを割り当てることができます。そのため、オンボードするユーザーが増えても、ジョブがスローダウンすることはありません。リソース消費が特に激しいプロセスを実行する場合でも、それが他のユーザーに影響することはありません。各コンテナは、それぞれのマシンのリソースの範囲内でのみ実行可能です。したがって、より多くのパワーが必要な場合は、コンテナを停止し、より大きなマシン上でそれを起動し直します。作業の完了後にコンテナを終了すると、そのマシンは他のユーザーのために解放されます。 5. アナリティクスをWebアプリに統合することが可能 今や、アナリティクスは分析担当者だけのものでありません。デジタル変革に取り組んでいる組織は、顧客がデジタルチャネルを通じて利用するWebアプリやモバイルアプリの背後にアナリティクスを組み込もうとしています。具体的には、画像処理、レコメンデーション、意思決定支援などを含むAIアプリケーションなどが考えられます。これらのWebアプリは従来の方式で実装されたSAS Platformと組み合わせて機能させることも可能ですが、その一方で、必要なSASソフトウェア、分析モデル、小型の実行エンジンとしてのサポーティング・コードだけで構成した実行エンジンを軽量なコンテナに実装すると複数の利点があります。こうすることで、開発者は、他のユーザーに影響を与えることなく、SASソフトウェアの設定やAPI群を変更する自由を手にします。これは、アプリケーションがPythonまたはJavaで実装される方法に似ています。 6. 自動モデル・チューニング モデルの中には、データが変化するたびに、あるいは新しいフィードバックを受け取るたびに、頻繁に更新する必要があるものもあります。コンテナを利用すると、そうしたモデルを再チューニングし、その結果をコンテナ内にパッケージし、実業務環境にデプロイするまでのプロセスを自動化することができます。 7. DevOpsやCI/CDによるデプロイメントの合理化/効率化 典型的なSASユーザーはDevOpsの世界には馴染みがないかもしれませんが、DevOpsは昨今の主流となりつつあるアプリケーション開発手法です。アナリティクスをWebアプリに統合したい場合、私たちはこのプロセスに沿って進める必要があり、それを最も簡単に行う方法が、コンテナを利用する手法です。SASコードとモデルをコンテナ内にカプセル化すると、アプリ開発者(=Dev)側では、デプロイのために運用チーム(=Ops)側に渡す前に、コンテナに接続しテストを実行できるようになります。「継続的インテグレーション(CI)」と呼ばれる手法では、アプリ(SASのパーツを含むアプリ)の全てのブランチ(分岐)における変更は、それらが一緒に正しく機能する状態を確保するために、定常的にマージされ、自動テストにかけられます。「継続的デリバリー(CD)」と呼ばれる手法は、本番の業務環境へのリリースまでのプロセスを自動化します。これにより、アナリティクス・プリケーションの開発とデプロイを数週間ではなく、数日または数時間で完了することが可能になります。 8. ほぼ全ての場所にデプロイすることが可能 コンテナはポータブル性に優れているため、オンプレミスのデータセンターから、パブリッククラウドや、ドローン/トラック/列車に搭載されたエッジデバイスに至るまで、あらゆる種類の場所でSASの実行エンジンを動かすことが可能です。 コンテナは、イマジネーション豊かなアナリティクス活用を実現可能にする大きなポテンシャルをもたらします。あなたがSAS Viyaのライセンスをお持ちの場合は、SASが運営するDockerイメージ・ライブラリへのアクセス権を有していますから、そこから事前準備済みのコンテナイメージの形でSAS
SAS Global Forum 2019もいよいよ最終日を迎えました。一日目、二日目、三日目に引き続き、最終日の参加レポートを掲載します。 データサイエンティストに必要な倫理 本日は”The Good, The Bad, and The Creepy: Why Data Scientists Need to Understand Ethics”というセッションに参加してきました。数十年前、データの活用はあくまで統計学の中のみのものであり、扱えるデータの数もごく少数でした。しかし、計算機の発展、理論の進歩、機械学習との交わりにより、近年では膨大かつ複雑なデータも処理することができるようになりました。それに伴い、データ分析の際のごく少数のミスもしくは悪意のある行為によって多くの人々に甚大な被害をもたらしてしまう可能性があると指摘しました。データサイエンスは非常に強力ですが、それを適切に活用するためにデータサイエンティストには倫理観が必要不可欠です。特に「引き起こしうる害」を認識し、「同意」に基づいてデータを使用し、「自分が何を分析しているか」を正確に把握することが必要と指摘し、特に三点目の重要性を強調しました。 分析に用いるアルゴリズムは適切かについて、常に気を配らなくてはありません。アルゴリズムが害を引き起こす例として、あるバイアスの持ち主が書いたプログラムにはそのバイアスが含まれている事例を紹介しました。例えば、Webでの検索結果にジェンダーギャップや人種間格差が見受けられるのは、関連するバイアスも持つ人物が書いたアルゴリズム内にそのバイアスが反映されているからかもしれません。他の例として、アルゴリズムに対する根本的な理解不足が問題を引き起こしうる事例を紹介しました。例えば、二つの要素が明らかに無関係と思われる場合でも、あるアルゴリズムが相関関係を見出したという理由でその二要素に関係があると結論付けてしまうのは、そのアルゴリズムについての理解が足りていないということです。数理統計をブラックボックスとみなしてはならず、背景理論について正確に把握し、何を分析しているかを意識し続けることが必要不可欠だと語りました。 また、これらに基づき、将来データサイエンティスト間にヒエラルキーが生じる可能性を指摘しました。基礎的な数学・統計学の知識があるだけでは不十分。倫理や関連法律を理解しそれをアルゴリズムに照らし合わせ、顧客や無関係な人々に害を与えてしまう可能性がないかを吟味し、必要に応じて手法を変えられるデータサイエンティストがヒエラルキーの頂上に来るはずだと主張し、倫理の重要性を強調しました。 SAS Global Forum 2019 に参加して 今回のSAS Global Forum 2019で最も印象に残ったことは「アナリティクスの可能性」です。本日の基調講演で、理論物理学者のミチオ・カク氏は「将来、すべての業界にAIが導入される。人類にとってロケットは大きな革命だったが、今後、データを燃料、アナリティクスをエンジンとして、さらに大きな革命が起ころうとしている。」と語りました。実際、様々なセッションへの参加を通して、アナリティクスが活躍する分野が非常に多岐にわたっていること、そしてそのインパクトが非常に大きいことを改めて実感し、将来私たちの生活がどのように変わっていくのかと想像して心を躍らせました。また、学生向けセッションへの参加を通じて、「アナリティクスを用いて世界を変えたい」という志を抱く同年代の学生が世界各地で切磋琢磨していることを知りました。近い将来、彼らと力を合わせて社会に大きなインパクトをもたらす”何か”をするため、今後も日々精進します。
SAS Global Forum2019 三日目の参加レポートです。一日目、二日目に引き続き本日も数多くの魅力的なセッションが行われました。参加したセッションの中から特に興味深いと感じたものをいくつかピックアップしてご紹介します。 難民支援のためのデータサイエンス 最初にご紹介するセッションは”Data4Good: Helping IOM Forecast Logistics for Refugees in Africa”です。IOM(国際移住機関)と協力しデータを用いた難民支援の事例について説明しました。 今回の分析は主にエチオピアの難民キャンプについて行われました。まず難民キャンプの規模や種類、さらにどのような物資が不足しているかについての情報を、バブルの大きさや色を用いて地図上に可視化します。この結果から安全な水や入浴・洗濯の機会など主に公衆衛生に関する課題をどのキャンプも共通して抱えていることが分かりました。そこで公衆衛生に関する水・石鹸・洗濯などの具体的な要素について、それが不足しているキャンプの数をグラフ化した結果をもとに援助の優先順位を策定し、より効果的な援助を実現しました。次に、キャンプで生活する難民についての分析です。キャンプごとに、老人が多い・女性が多いなどの特徴があり、それに応じて必要とされる支援は変わってきます。しかし流動的なキャンプにおいてその傾向は日々変化することから、支援の過不足が発生していました。適切なタイミングで適切な支援を行うため、年齢や性別などに基づき難民をいくつかのセグメントに分け、それぞれについて一つのキャンプ内にいる人数を予測するモデルを作成しました。このモデルの予測を用いることで支援物資を適切なタイミングで必要量を配分し、無駄を削減しながら必要な支援を届けることが出来ました。さらに、IOMから集めたフィードバックを用いて日々モデルを改善し、よりよい支援を追求しました。 優秀なデータサイエンティストになるには 次に”How to Be an Effective Statistician”というセッションについてご紹介します。データサイエンティストとして20年以上の経験を持ち、第一線で活躍し続けているプレゼンターが、自身の経験を踏まえながら優れた統計家になるためのヒントを伝えました。彼は”Effective Statistician” とは、「適切な分析を、適切な方法で、適切なタイミングに行える統計家」と定義しています。そして、そのためには2つのスキルが重要だと語ります。 一つ目は「リーダーシップ」です。データサイエンティストは主としてチームで分析に取り組みます。データサイエンスには統計のスキルだけでなく、分析分野についての専門知識や根本的なビジネススキルなど様々な能力が必要であり、それらを全て備えている人は多くありません。そこでリーダーの出番です。各メンバーの得意不得意を考慮しながらタスクを割り振り、各々の欠点を補いながら総合力でプロジェクトを進めていきます。しかしここで「独裁的なリーダー」になってはならないと強調しています。ある課題を解決するためのデータを用いたアプローチの仕方は一通りではありません。チーム内でディスカッションを続け、一人一人の意見を尊重することで、課題の本質を理解し、チームとして大きなヴィジョンを描けるのだと語りました。 二つ目は「データを適切に解釈する力」です。データは何らかの解釈が付与されて初めて意味を持ちます。また、それを適切に処理する上でもデータの深い理解は不可欠です。データの表面上の傾向に踊らされず、本質を見抜き適切なアプローチを取るためには、やはりビジネスの知識が役に立つと語っていました。また、データの不足が判明した場合にはそれを収集する仕組みを新たに構築するなど、臨機応変に対応する力も要求されるとのことでした。 セッションの後、データサイエンティストには幅広いスキルが要求されることに呆然としたという学生の発言がありました。それに対し彼は「自分の可能性を制限しているのは多くの場合ネガティブな自己認識。どんなに優秀なデータサイエンティストでも10年後を正確に予測することはほぼ不可能で、10年後の自分を決めるのは自分自身。理想の自分になるため、日々できることを継続することこそ一番の近道。」というメッセージを伝え、学生を勇気づけていました。とても印象に残った言葉でした。 Kick Back Party さて、三日目の夜にはKick Back Partyが開催されました。バンドの演奏やカウボーイ衣装での記念撮影など様々な余興が催され、各々が素敵な時間を過ごしていました。個人的には、本場テキサスでロデオマシーンを楽しめたことが印象に残りました。日本でのパーティーとは一味違うアメリカらしい陽気な雰囲気を味わうことができ、貴重な経験となりました。
一日目に引き続き、SAS Global Forum 2019 の様子をお伝えします。二日目となる今日は主にStudent Symposium の様子についてレポートします。Student Symposiumはデータ分析スキルを競う学生用のコンペティションで、予選を勝ち抜いた八チームが各々の分析についてのプレゼンテーションを行いました(各チームの発表概要はこちら)。ここでは、特に印象に残った2チームの発表についてご紹介します。 起業を実現させる要因とは 1チーム目はオクラホマ州立大学のチームで、題名は”Exploring the Intensions of Entering Entrepreneurship for SAS® Global Forum 2019”です。起業が米国の資源の一つと言っても過言がないほど起業精神が浸透しているアメリカにおいて、起業を考える人は大勢いますが、全員が実際にビジネスを開始するわけではありません。起業の実現にどのような要素が影響するのかについて、データ分析により解き明かすことを目標とします。まず起業に関係する要素を「経済状況」「社会的要素(人脈など)」「人間性」「人類学的要素(ジェンダーなど)」の4つにカテゴライズし、起業に至った理由の中で最も大きな影響を与えたカテゴリを時系列に基づき分析しました。2008年ごろまでは経済状況が良かったこともあり、経済的必要性で起業する人は少数で、人脈などの社会的要素や人間性、中でも失敗を恐れない性格が起業を実現させる主な要因でした。しかし、2009年以降経済の悪化に伴い、自ら事業を立ち上げる必要性が出てきたことで経済状況に基づく起業が多数派となりました。その後経済が回復傾向になるにつれて再び経済状況の影響力は小さくなり、人類学的要素(ジェンダー)と人間性、特に功名心に基づく起業が増加しました。このように人々がビジネスを始めた理由を分析することで、今後の起業のトレンド予測や起業支援につなげるとのことでした。 バイアスのない公平な記事を書くために 2チーム目も同じくオクラホマ州立大学のチームで、題名は”Identifying Partisanship in Media Article”です。米国には強力な二大政党がありますが、それぞれの主張を対等に報道しているメディアは少なく、多かれ少なかれ偏りが生じています。偏りのある報道に晒され続けることで、盲目的にある党の主張が正しいものと信じ込んでしまい、深く考えずに投票してしまう事例も増えています。そこで、報道のバイアスを測るモデルを作成し、バイアスチェッカーとしての応用を考えることが本発表の目標です。初めに、二つの党の公式声明から、各々の政党の主張の特徴を学習させます。得られたモデルに各メディアの記事から抽出したキーワードのトピックを当てはめ、その記事を出したメディアがどちらの党派かを判別します。その結果、このモデルは90%以上の精度で記事からメディアの党派の判別が可能でした。このモデルを用いると、党派を感知されないような公平な記事を書くことができ、結果として偏りのない情報発信の助けになるとのことでした。 この二チーム以外の発表も面白いアイデアと確かなデータ分析手法に基づく非常に興味深いものであり、自分と同年代の学生がこれほどの研究・発表をしているのかと大いに刺激を受けました。彼らに負けないよう今後も精一杯頑張ろうと思います。 eポスター発表 本日は私もe-Poster Presenterとして分析結果の発表を行う機会を頂きました。”Forecasting CO2 Emissions of Electrical Generation By Using SAS® Software”と題し、発電において必要とされる各種条件を満たしながら、CO2排出量を最小にする電源構成の最適化モデルを構築し、2030年におけるCO2排出量をモデルごとに推定しました。様々な国からの参加者の皆様に発表をお聞きいただき、ディスカッションをしたりフィードバックを頂いたりと、非常に有意義な経験となりました。 詳しくは、6月11日に六本木のグランハイアット東京で開催されるSAS Japan 最大の年次イベントSAS Forum Japan 2019 内、"アナリティクスは営利目的だけじゃない!大学生が挑む Data
世界で二番目に大きいと言われる空港を有し、美しい新緑が広がるここテキサス州ダラスにて、SASの一大年次イベント、「SAS Global Forum 2019」が4/28~5/1に開催されています。数々の魅力的なセッションが催されており、各地からの参加者で今年も大盛況です。私は、同年代の学生たちがどのような活動をしているのか、また、後述するData for Good活動を推進するにはどうすればよいかを学ぶため、アカデミックセッションを中心に参加しました。本記事では一日目(4/28)のAcademic Sessionについてレポートします。 学生向けセッション Student Sessionでは、世界各地から集まった学生の視野を広げること、将来の一つの指針を授けることを目的として様々なプレゼンテーションが行われました。 データサイエンティストによるパネルディスカッション 最初に、経験豊かなデータサイエンティストたちをプレゼンターに迎え、「データサイエンティストになるには何を学べばよいか」「どのような人材が必要とされているか」などについてパネルデスカッションが行われました。データサイエンティストという概念は近年になって急激に広まったものであり、教育制度が追い付いていないという現状があります。データ分析の知識に加え、金融やビジネスなど、多岐にわたる応用的な知識にも精通していることが要求されており、それらを包括的に学ぶ方法や・何を専攻するかについての疑問を抱く学生は多いでしょう。それに対してプレセンターの一人は、「まずは統計学やプログラミング手法等の核となるデータ分析スキルを身に着けるべき」とアドバイスしていました。応用的な知識は本や授業で学ぶだけでは不十分で、社会での実践を通して学ぶ必要があります。そこで、まずはどこへでも応用可能な基礎力を身に着けてから、実践として各々の分野の専門知識を身に着けるべきとのことです。「自分が心から面白いと思う分野」に出会い、高い意欲と向上心を持って取り組める人材が求まれており、その分野が定まっていないうちは、最初にデータ分析の勉強をすべきと語っていました。 参加していた学生の多くは大学や大学院にてアナリティクスを専攻しているようでしたが、中には経営学を学ぶ中で副専攻として統計学を勉強している学生もおり、Global Forumならではの多様性を感じました。 Data for GoodとGather IQ 続いて、SAS USAのI-Sah Hsieh氏からData for Goodについてのプレゼンテーションです。I-Sah氏はハリケーンや地震などの災害時に、支援活動に関する意思決定をより効果的に進めるためのデータ分析プロジェクトを行った経験があり、それぞれの事例に関して紹介しました。それを通して、彼は「学校で学んだ知識を高々一セメスターだけにとどめているのはもったいない、積極的にアウトプットすべき」と強調し、その方法の一つとして、社会問題を解決するためにデータ分析であるData for Goodを紹介しました。彼は現在、国連の掲げる持続可能な開発目標(SDGs)に対してデータを用いたアプローチに取り組んでいます。貧困をなくすため・教育機会を増やすため、データを使ってできることは何でしょうか?その学びの一環として、一新されたSASのData for Goodアプリ、Gather IQが紹介されました。SDGsの17つの目標それぞれに対応して、問題の把握やデータの活用に役立つ様々な解説記事や分析結果が公開されています。各問題に対応するゲームや募金の仕掛けなどもあり、より多くの人にData for Goodのすそ野を広げるような仕様になっています。ぜひ一度お試しください。 講演後、個人的にI-Sah氏と直接ディスカッションをしました。Data for Goodの意義を再確認し、活動の進め方やデータ分析についてアドバイスをいただき、大変有意義な時間となりました。本ブログでもたびたびご紹介しておりますが、JapanでもData for Good 活動を推進する学生コミュニティがあり(第1回勉強会レポート)、様々な社会課題に対して主体的に分析を進めています。また、データ分析手法を学ぶ勉強会も開催予定です。ご興味のある方はこちらまでご連絡ください。JPNAcademicTeam@sas.com Student Sessionの締めくくりとして、金融やヘルスケアに関するデータサイエンスの具体例が紹介されました。また、夜に行われたOpening Sessionにおいても機械学習やアナリティクスの実用例が紹介され、データサイエンスの無限の可能性を感じました。 大学教員向けセッション 続いて、SAS Global Forum大学教員向けアカデミックセッションについてのレポートです。本セッションでは、データのプライバシーと倫理について、講演とテーブルごとにディスカッションを行いました。 テーマ(1) データサイエンスの隆盛と倫理 データサイエンスの拡大とともに、扱うデータの量と種類が増加してきました。それにより、少数の人間が大きな害悪を発生させることができるようになり、また、データ発生元の同意や認知を得ることが難しくなっています。さらに、データの発生時、取得時、操作時にバイアスが含まれてしまう可能性も大きく、このような状況のもとで、大学教育について以下の点でディスカッションを行いました。 学部としての、または大学としての責任は何か? 倫理についての講義は必要か? 民間企業や官公庁とどのように協力すればよいか。
SAS Japanでは昨年末より”Data for Good”を目指す学生コミュニティ「SAS Japan Student Data for Good community」を運営しています。このコミュニティでは世界の絶滅危惧種や通勤ラッシュ時の鉄道混雑緩和など、データを活用した社会課題の解決に取り組んでいます。 活動を更に加速させるために、Data for Goodのケーススタディを通じた課題設定・アナリティクスの適用法を学ぶ勉強会を開催しました。 この記事では勉強会の中で取り上げた事例を2つ紹介します。 1.ネパール地震でのIOMによる支援 1つ目の事例はSAS USが国際移住機構(IOM)と協力して行ったネパール地震における復興支援です。 2015年4月25日に起きたネパール地震では約90万棟が全半壊し、多くの住民が仮設キャンプ場での生活を余儀なくされました。IOMは現地でキャンプ場の運営等の支援活動を行っていましたが、6月から始まる本格的な雨季を前に風雨を凌げる住居の提供が喫緊の課題でした。 IOMの要請を受けたSAS USは国連商品貿易統計データベース(UN Comtrade)を利用した各国のトタン板の生産能力を分析し、その結果迅速なトタン板の供給を実現しました。この事例からは次の事が学べます。 データの可視化によって意思決定の支援ができる この事例では住宅復興支援に必要な物資の素早い調達という課題に対し、国連商品貿易統計データベースの300万件ものデータをSAS Visual Analyticsで分析し仕入れ先を可視化することで解決しています。 複雑で膨大なデータも適切に分析・要約・可視化することで経験ではない科学的根拠に基づいた新たな知見を導くことができます。 2. 大学中退率の改善 2つ目の事例はData for Goodを推進する社会団体であるDataKindが取り組んだアメリカのとある大学の中退率の改善です。 日本の大学と比べアメリカの大学は中退率が高く、 National Student Clearinghouseによると約半数近くの学生が学位を取得せず辞めていきます。DataKindは大学の依頼を受け、どの要素が中退に影響を与えるのか、また中退の危険性のある学生を事前に特定することに挑みました。 デモグラフィックデータや学業成績などの学生情報を10年分以上分析したところ、入試の成績と卒業は関連が確認できなかった一方で、GPAや専攻などが卒業に影響を与えていることが判明しました。 この結果を踏まえ20以上もの異なるアプローチのモデルを生成し改良を重ねた結果、生徒の中退を高い精度で予測するモデルを生み出しました。 詳しい内容は原文をご覧ください。この事例からは次の事が学べます。 未来を予測して事前に対処する この事例では、中退率の改善という課題に対して統計分析や機械学習を駆使し事前に中退リスクのある学生を特定することで解決を目指しています。事前の把握ができれば大学側は効率的な学生への支援が可能となるはずです。 上記以外にも参加者それぞれが事例紹介を行い、課題に対してのアナリティクスを用いたアプローチ方法を学びました。勿論データを分析のみで課題をすべて解決することはできませんが、従来の方法では成し得なかった突破口を生み出すことが実感でき、私たちの現在の取り組みに大きな示唆をもたらした有意義な会となりました。 SAS Japan Student Data for Good communityでは引き続き学生の参加者を募集しております。社会貢献を目指す活動を通してデータサイエンティストの役割である「課題の設定」から「データを用いた解決法の提示」までの一連の流れを経験できます。 興味をお持ちでしたら以下のアドレスまでご連絡ください。 JPNAcademicTeam@sas.com
データサイエンティストを目指す学生向けのセミナー「データサイエンティストのキャリアと活躍のかたち」の第三回が3/19(火)に開催されました。第一回・第二回に引き続き今回も多くの学生の皆様に参加していただき、有意義なセミナーとなりました。本記事では、当日の様子についてご紹介します。 本セミナーでは、データサイエンティストのキャリアと活躍の場や、ビジネス上でのアナリティクス活用方法について、スピーカーがこれまでの経験をもとにご紹介しました。 SASにおけるデータサイエンティスト はじめに、データサイエンティストのキャリアやスキルについてSAS JapanのSebastian Wikanderより講演を行いました。 前半は、自身のキャリアや経験をもとにした、データサイエンティストのキャリアの紹介です。キャリアの初めはトラックメーカーに就職。様々なビジネスモデルをデータを用いて分析することに魅力とやりがいを感じ、SASに転職しました。SASでの仕事は年齢・学歴・国籍等、多様性があり、より良いパフォーマンスが発揮できます。具体的な仕事例として、大手IT企業の業務プロセス改善プロジェクトと部品メーカーにおけるディープラーニング活用プロジェクトを紹介し、SASと顧客のノウハウを合わせるチームワークの重要性や、過去の学びやスキルをもとに常に新しいチャレンジへと挑戦する楽しさなどを伝えました。 次に、データサイエンティストに必要なスキルの紹介です。核となるデータサイエンススキルの他にも、プログラミングスキル、統計学や機械学習の知識、ビジネス能力、英語力を含むコミュニケーションスキルなど多種多様なスキルが必要だとし、データサイエンティストは事例に合わせて最適なスキルを活用する「スペシャリストよりジェネラリスト」という言葉は印象的でした。 最後にデータサイエンティストのやりがいとして、様々なアプローチの中から一つを選択する「クリエイティブ」な側面、ビジネスとしての「人との関わり」という点、「新たなチャレンジ」を続けワクワクした日々を送れるという点を挙げ、より多くの学生に興味を持って欲しいというメッセージを伝えました。 アナリティクス活用領域の概要 リスク管理 続いて、リスク管理におけるアナリティクスの活用について、SAS Japanの柳による講演です。 最初にビジネスにおけるリスクについて紹介しました。リスクとは「不確実性」であると指摘し、その不確実性を想定の範囲内で「リスク管理」し「収益−損失の最大化」という目的を達成するためにアナリティクスが活用されていると紹介しました。 具体例として、金融機関における「規制対応のリスク管理」と「収益を上げるためのリスク管理」を挙げています。前者は政策等で一定の枠組みが決まっており事象の予測が行いやすく、アナリティクスが最大限活用されています。一方後者は変動が大きく様々なシナリオが想定されるため、経済情勢・社会情勢等に基づいた多様なモデルをもとにシミュレーションを重ね、意思決定の判断基準にしています。 最後に金融機関におけるAIの活用について紹介しました。業務の効率化や人的ミス排除等を目的とした従来のIT化とは異なり、人間では処理できないほど膨大となったデータを扱うために金融機関でAIを導入する動きが進んでいるとのことです。しかし、AIの思考がブラックボックス化され判断の説明可能性が低いという問題点もあり、AIの思考の透明性をどう保証するかが今後の大きな課題の一つであると伝えました。 SASの学生向けData Science 推進活動 最後に、学生のデータサイエンスの学びの場としてData for Good 勉強会とSAS Student Data for Good communityを紹介しました。Data for Goodとは様々な社会問題をデータを用いて解決する取り組みであり、これまでにも世界の絶滅危惧種や通勤ラッシュ時の鉄道混雑緩和をData for Goodの活動具体例として紹介しました。学生が主体となりこの活動をより推進するため、SASでは「Data for Good勉強会」と「SAS Student Data for Good Community」という活動を企画しています。 Data for Good 勉強会とは、SASやData Kind(Data for Goodを推進する社会団体)の実施したData
SAS Viyaの分析機能をPythonから利用するためのハイレベルAPIパッケージであるDLPyでは、kerasと同等の簡潔なコーディングで、複雑な画像処理やディープラーニングを実行することができます。 そして、DLPyでは、kerasと同様に、2つの手法でディープラーニングのモデルを構築することができます。 Sequential modelとfunctional API modelです。 Sequentialとは、その名の通り、レイヤーを順序通りに積み重ねて、順序通りに実行していくモデルです。 以下は、DLPyを用いて、PythonからSAS Viyaのディープラーニング機能を使用して画像分類向けsequential modelのネットワークを定義している例です。 In [10]: model1 = Sequential(sess, model_table='Simple_CNN') model1.add(InputLayer(3, 224, 224, offsets=tr_img.channel_means)) model1.add(Conv2d(8, 7)) model1.add(Pooling(2)) model1.add(Conv2d(8, 7)) model1.add(Pooling(2)) model1.add(Dense(16)) model1.add(OutputLayer(act='softmax', n=2)) In [11]: model1.print_summary() Out[11]: In [12]: model1.plot_network() Out[12]: 一方、functional APIは、sequentialでは、表現することが難しい、より複雑な構造のモデルを構築する際に利用されます。 以下は、kerasの公式サイトに記載されている文面です。 “functional APIは,複数の出力があるモデルや有向非巡回グラフ,共有レイヤーを持ったモデルなどの複雑なモデルを定義するためのインターフェースです.” そして、DLPyでは、kerasと同様にsequential modelだけでなく、functional API modelの構築も可能になっています。 以下はその一例として、複数の入力と出力を持つような画像分類のためのディープラーニングモデルのネットワーク例です。 まず、テンソルオブジェクトを返すInput()によって、2つのテンソル、グレースケール画像とカラー(RGB)画像、を定義します。 グレースケール画像は2つの畳み込み層に送り込まれます。カラー画像はそれらとは別の畳み込み層に送り込まれます。
この記事はSAS Institute Japanが翻訳および編集したもので、もともとはXindian Longによって執筆されました。元記事はこちらです(英語)。 物体検出とは? 物体検出とはコンピューター・ビジョンの一分野であり、画像内に含まれる関心対象の物体を自動的に背景から区別して位置特定する手法です。例えば、図1に示す2つの画像では、いずれも前景に物体があります。左の画像では鳥が、右の画像では犬と人間が前景にあります。 「物体検出問題の解決」とは、「これらの物体をぴったりと囲むバウンディング・ボックスを配置し、それぞれのバウンディング・ボックスに対して正しい物体カテゴリーを関連付けること」を意味します。画像処理の領域における他のタスクと同様、物体検出を実行するときにもディープ・ラーニングは最先端の手法として力を発揮します。 物体検出の仕組み 物体検出に関する重要な問題の1つは、前景にある物体の数が画像によって様々に異なる、ということです。しかし、ここでは物体検出の仕組みを理解するために、まずは1つの画像に1個の物体しか存在しないと仮定し、この制約条件の下で物体検出問題を考えてみましょう。1つの画像に1個の物体しか存在しない場合、バウンディング・ボックスの発見と物体のカテゴリー判断という問題は、単純明快な方法で解決することができます。バウンディング・ボックスは4組の数値で表現されますから、バウンディング・ボックスの位置を学習するタスクは、回帰問題として無理なくモデル化することが可能です。そのタスクが済めば、物体のカテゴリー判断は分類問題として解くことができます。 ここでの「制約条件付きの物体検出」という課題に関する回帰および分類問題に対する解法を提供するのは、図2に示す畳み込みニューラル・ネットワーク(CNN)です。コンピューター・ビジョンの領域における他の従来型タスク(例:画像認識、キーポイント検出、セマンティック・セグメンテーションなど)の場合と同様、ここでの「制約条件付きの物体検出」という課題では、固定数のターゲットを扱います。これらのターゲットの当てはめは、固定数の分類または回帰問題としてターゲットをモデル化することによって実行可能です。 前述のとおり、真の物体検出はN個の物体を処理できなければなりません(Nの値は画像によって異なります)。残念ながら、図2に示したCNNは、このような、より一般的な問題を解決することができません。しかし、多くの矩形ボックスの位置とサイズについて仮説を立てることによってCNNの変種を使用し、CNNを物体の分類にのみ利用する、というやり方は可能かもしれません。私たちはそのような場合の矩形ボックスを、しばしば「ウィンドウ」と呼びます。ウィンドウ仮説を汎用的なものにするためには、画像内で考えられる全ての位置とサイズをカバーしなければなりません。それができれば、それぞれのサイズと位置のウィンドウについて、「その中に物体が存在するかどうか?」と、「存在する場合、物体のカテゴリーは何か?」を判断することが可能になります。 図3は、このアプローチで物体検出を実現する場合に候補となりうるウィンドウをいくつか示しています。画像は有限個のピクセルで構成されていますから、ウィンドウの総数は膨大です。検討すべきウィンドウの数の膨大さを考えると、このアプローチはコンピューティングの観点からは非実用的です。 ウィンドウを用いて物体を探すための効率的な手法 では、「一部のウィンドウだけを調べる」というスマートな方法で物体検出を実行することは可能でしょうか? 答えは「イエス」です。このような「ウィンドウの部分集合」を発見する方法には2つのアプローチがあり、それらは2つの異なる物体検出アルゴリズムへとつながります。 第1のカテゴリーのアルゴリズムは、最初にリージョン・プロポーザル(領域候補の抽出)を実行します。これは具体的には、コンピューター・ビジョンの従来の手法(選択的検索など)を用いて、あるいは、ディープ・ラーニングに基づくリージョン・プロポーザル・ネットワーク(region proposal network: RPN)を用いて、物体を含んでいる可能性の高い領域を選択する、ということです。候補ウィンドウの少数のセットを収集したら、セットの数だけ回帰モデルおよび分類モデルを定式化することによって、物体検出問題を解決することができます。このカテゴリーに属するアルゴリズムとしては、Faster R-CNN[1]、R_FCN[2]、FPN-FRCN[3] などがあります。このカテゴリーのアルゴリズムは、通常、「2段階法」と呼ばれます。これらは一般に、この後に紹介する「1段階法」に比べ、正確性は優れていますが、処理は低速です。 第2のカテゴリーのアルゴリズムは、固定位置にある固定サイズの物体だけを探します。これらの位置とサイズは、ほとんどのシナリオがカバーされるように戦略的に選択されます。通常、これらのアルゴリズムは、元の画像を固定サイズのグリッド(格子)領域に分割した上で、それぞれのグリッド領域に関して、あらかじめ決めておいた所定の形状およびサイズの、固定数の物体を予測することを試みます。このカテゴリーに属するアルゴリズムは「1段階法」と呼ばれます。この手法の例としては、YOLO[4]、SSD[5]、RetinaNet[6]などが挙げられます。このカテゴリーのアルゴリズムは、通常、より高速に実行できますが、正確性は劣ります。このタイプのアルゴリズムは、リアルタイム検出を必要とするアプリケーションで活用されることが多くなっています。 以下では、これらのうち2つの一般的な物体検出手法を取り上げ、もう少し詳しく検討します。 YOLOによる物体検出 YOLO (You Only Look Once) は、1段階の物体検出手法を用いる代表的なアルゴリズムです。このアルゴリズムが物体を検出するためにたどるステップを、図4とその下の箇条書きに示します。 元の画像を等サイズのグリッドに分割します。 それぞれのグリッドに関して、事前に定義した形状の、グリッドの中心を中心位置とするバウンディング・ボックスを、事前に設定した数だけ予測します。それぞれの予測には、クラス確率と物体信頼度(その領域が物体を含んでいるか、あるいは背景のみか)が関連付けられます。 最後に、高い物体信頼度およびクラス確率が関連付けられたバウンディング・ボックスを選択します。最も高いクラス確率を持つ物体クラスが、その物体のカテゴリーとなります。 事前に定義した形状の事前に設定した数のバウンディング・ボックスは「アンカーボックス」と呼ばれ、k平均法アルゴリズムによってデータから取得されます。アンカーボックスは、物体のサイズと形状についてデータセットから予備知識を捕捉します。異なるサイズおよび形状の物体を検出するためには、異なるアンカーが設計されます。例えば図5では、1つの場所に3種類のアンカーが表示されていますが、最終的には赤のアンカーボックスが中央の人物を検出します。言い換えると、アルゴリズムは、物体とこのアンカーボックスの適切なサイズを一緒に検出します。通常、最終的な予測は、アンカーの位置またはサイズ自体とは異なります。なぜなら、画像の特徴量マップから取得される最適化されたオフセット値が、アンカーの位置またはサイズに加算されるからです。 YOLOアルゴリズムのアーキテクチャを図6に示します。検出層は、多数の回帰および分類オプティマイザーを含んでおり、その数はアンカーの数によって決まります。 Faster RCNNによる物体検出 Faster RCNN[1] は、2段階の物体検出アルゴリズムです。図7は、Faster RCNNの2つの段階を示しています。アルゴリズム名に “Faster” と付いていますが、「1段階法よりも高速」という意味ではありません。この名称は歴史的な経緯を反映しており、以前のバージョン(オリジナルのRCNNアルゴリズム[7] やその後継のFast RCNN[8])よりも高速であることを示しています。Faster RCNNにおける高速化は、個々の関心領域(Region of Interest: RoI)に関する特徴抽出計算を共有する手法と、ディープ・ラーニングに基づくリージョン・プロポーザル・ネットワーク(RPN)の導入によって実現されています。 多数のCNN層を用いて特徴量マップを抽出した後、リージョン・プロポーザル・ネットワーク(RPN)が、物体を含んでいる可能性の高い多数のウィンドウを出力します。その後、アルゴリズムは、各ウィンドウ内部の特徴量マップを取得し、それらを固定サイズにリサイズ(またはポール)することで(=RoIプーリング)、物体のクラス確率とより正確なバウンディング・ボックスを予測します。
データサイエンティスト(以降、DSと表記)は、お好みのプログラミング言語を使用して、日々モデリングを行っています。昨今は、その中でもオープンソースのプログラミング言語であるPythonやRを使用されている方の割合が多くなってきているようです。その結果として、企業の分析組織やチーム内には複数の異なる言語を活用するDSが混在するケースも見受けられます。(一人で両方の言語を操る方もいます。) 「Pythonを操るAさんが作成されたモデルと、Rを操るBさんが作成されたモデル、どちらの精度が高いのかを容易かつビジュアルに比較することができたら…」 ということで、今回は、SAS ViyaのModel Studioを使用し、ビジュアルなパイプライン上での異なる言語間モデル精度比較をご紹介します。 手順は以下の通りです。 ① プロジェクトの新規作成と学習用のデータソース選択 ② パイプラインの作成と実行 ③ 実行結果(モデル精度)の確認 ① プロジェクトの新規作成と学習用のデータソース選択 「SAS Viya: ビジュアルパイプラインで予測モデル生成(基本編)」の「1.プロジェクトの新規作成と学習用のデータソース選択」を参照ください。 ② パイプラインの作成と実行 画面上部にある「パイプライン」をクリックします。 パイプラインには「データ」ノードのみが表示されています。左端の機能ノードアイコンをクリックすると、 パイプラインに追加可能な機能ノードのリストが表示されます。 まずは学習データに対する前処理として、欠損値補完を行います。 「データマイニングの前処理」内にある「補完」を「データ」ノード上にドラッグすると、 「データ」ノードの下に「補完」ノードが追加されます。 同様の手順で、「その他」内にある「オープンソースコード」を「補完」ノード上へドラッグすると、「補完」ノードの下に「オープンソースコード」ノードが追加されます。 機能ノードごとのオプション設定は、右側画面内で行います。 「言語」が「Python」であることを確認し、「開く」をクリックします。 開かれた画面内に、比較対象のPythonのコード(ランダムフォレストのモデル)をコピーします。右上の「保存」(フロッピーディスクアイコン)をクリックし、「閉じる」をクリックします。 ※ターゲット変数名や入力変数リスト名など、画面左側の変数名を使用することによって、オープンソースコードノードとその他のノード間でのデータ連携が可能となり、異なる言語のモデル間での精度比較も可能になります。各種規定変数名の詳細に関しては、オンラインマニュアルを参照してください。 「オープンソースコード」ノードの右側にある3つのドットが縦に並んでいる(スノーマン)アイコンをクリックし、「名前の変更」を選択し、 「Pythonフォレストモデル」に変更します。 このようにドラッグ操作でノードを追加する以外に、パイプライン上のメニューからノードを追加することもできます。 「補完」ノードのスノーマンアイコンをクリックし、「下に追加」>「その他」>「オープンソースコード」の順に選択すると、 「補完」ノードの下に「オープンソースコード」ノードが追加されます。 以降、同様の手順で比較対象のRのコード(ランダムフォレストのモデル)をコピーし、ノードの名前を変更します。 「オープンソースコード」ノードは、データに対する前処理として使用することもできます。デフォルトでは、「オープンソースコード」ノードは、データに対する前処理として認識されているので、これを「教師あり学習」に切り替えます。 PythonとRのモデルノードそれぞれのスノーマンアイコンをクリックし、「移動」>「教師あり学習」を選択します。 すると、「モデルの比較」ノードが追加され、PythonとRのモデルノードと接続されます。 パイプラインが完成したので、右上の「パイプラインの実行」アイコンをクリックし、実行します。 ③ 実行結果(モデル精度)の確認 処理が正常に完了したら、「モデル比較」ノードのスノーマンアイコンをクリックし、「結果」を選択します。 Rのフォレストモデルの方が精度が高い、チャンピオンモデルであると表示されました。 リフトやROC、様々な統計量で、精度を詳細に比較することもできます。 以上が、ビジュアルパイプラインでPythonとRのモデル精度を比較する手順です。 もちろん、必要に応じて、PythonやRのモデルとSASのモデルの精度を比較することもできます。 ※ビジュアルパイプラインでPythonとRのモデル精度を比較は、SAS Viya特設サイトにある動画でもご覧いただけます。 ※実際にPythonとRのモデル精度比較を試してみたい方は、Githubに公開されているアセットを活用ください。
第1回に引き続き、データサイエンティストを目指す学生向けのセミナー「データサイエンティストのキャリアと活躍のかたち」の第2回が1/31(木)に開催されました。当日の様子について紹介します。 このセミナーはデータサイエンティストのキャリアと活躍の場や、ビジネスではアナリティクスがどのように活用されているかについて、スピーカーがこれまでの経験をもとに紹介するものです。 経営幹部候補としてのデータサイエンティスト はじめに、データサイエンティストのキャリアについて、コニカミノルタジャパン株式会社・松木さんの講演です。コニカミノルタジャパンでは、2016年にデータサイエンス推進室を設置し、コピー機の買替・故障・受注の予測などにデータ分析を活用しているそうです。 まず、成果を出せるデータサイエンティストのキャリア形成についての話です。この話題の中では「データサイエンティストとは経営幹部候補、すなわち分析・数理モデルで経営課題を解決できる人材である」という一文がとても印象的でした。松木さんは、ただ分析作業ができる・数理モデルを作成できるだけではなく、それらの優れた技術をツールとして経営課題の解決ができる人材というのがデータサイエンティストのあるべき姿と考えると言っていました。 次に、データサイエンティストに求められるスキルについてです。そのスキルとは主に、分析スキル・ITスキル・ビジネススキルに分けられますが、その中でもビジネススキルは他の2つに比べて教育が困難であり、知識と経験が必要です。そこで実際にコニカミノルタジャパンでは、分析・ITスキルをもつデータサイエンティストと、ビジネススキルを持つ他部署メンバーとが共同して分析を行う仕組み(=タスクフォースユニット)でデータサイエンティストのビジネススキルを補うことを行っているそうです。 こうして、組織単位で分析を進めるにあたって欠かせないのがコミュニケーション能力です。ここで言うコミュニケーション能力とは、単純に人と仲良くなれるという意味よりも、「相手を理解するための、幅広い知識を習得する」「相手が理解できるようにデータサイエンスの見える化をする」ことを指します。現場や他部署メンバーの考えを理解するためのビジネスにおける幅広い知識、データサイエンスの知見がない人でも一目でわかる環境の構築が必要であるとのことでした。 講演の最後には、「データサイエンティストは多種多様な専門性が必要である」というメッセージをいただきました。これまでの話にもあったように、数理モデルの開発といった場面は仕事の一部で、ビジネススキルやコミュニケーション能力を活用することでいかに他の社員に、現場に「みせる」かが重要であるということを学生に伝えていただきました。 ビジネスで活用されるアナリティクス “顧客理解” 次に、ビジネスで活用されるアナリティクスについて、SAS Japanの庄子による講演です。 「通信販売サイトから自分だけのクーポンが送られてきた」、「動画配信サービスに自分好みの動画がおすすめされる」、「携帯電話の学割があれほどまで安い」などといった例を挙げ、私たちが日常生活においてデータ分析の恩恵をどれだけ受けていると思うか?という質問を導入として講義は始まりました。また、消費者のうち64%は支払う金額よりもそのもの自体の質を重視するにもかかわらず、それを完璧に捉えることが出来ている企業はわずか6%であるという話もあり、顧客理解の重要性を直観的に感じることが出来ました。 顧客理解について、前半ではそのコンセプトの紹介です。 顧客理解とは何を理解するのか?代表的な3つの項目があります。 「顧客の優良度・リスク」:どの顧客が特に大事か、損をもたらす可能性が高いか 「顧客の嗜好」:個々に異なる顧客の好みに対して何を薦めるべきか 「顧客の行動」:顧客の生活パターンや生活圏等を考慮する この3項目について、携帯キャリアの顧客理解に関する施策を顧客の加入から解約の流れに沿って例示していました。 後半は具体的に3つの項目についてどのような分析を行っているかについて、前半にもあった携帯キャリアの顧客理解に関連する具体的な施策に3項目をそれぞれ当てはめて紹介していました。ここではその一部を簡潔に紹介します。 「顧客の優良度」:生涯価値(Life Time Value)の算出(どれくらい先まで契約の継続をしそうか、機種変更はいつ頃しそうか) 「顧客の嗜好」:テキストを用いた趣味嗜好判定 「顧客の行動」:位置情報による生活圏の特定 最後には、「企業のデータ活用はまだまだ発展途上でみなさんの活躍が企業や世の中を大きく変える」という前向きなメッセージと、情報倫理のプライバシー懸念について「倫理観が大事”Don’t Be Evil”(by Google)」という助言の両方を学生に向けたメッセージとして伝えていました。 SAS student Data for Good communityの紹介 セミナーの最後には、学生のデータサイエンティストに向けた学びとしてSAS student Data for Good communityについて紹介しました。 「Data for Good」とは多岐にわたる社会的なテーマから課題を提示し、データを活用して解決しようとするものです。これまでにブログで紹介した世界の絶滅危惧種や通勤ラッシュ時の鉄道混雑緩和をData
私が小学生のころ、21世紀になると自動車は空を飛び、真空チューブの中のリニアモーターカーは時速2000kmに達するものだと思っていましたが、現在のような情報化社会は想像できていませんでした。初めてパソコンに触ったとき、何をするためのものなのかさっぱりわからなかったことを覚えています。 いまの小学生が大人になるころは、どのような社会になっているのでしょうか。10年先、20年先を想像することは難しいですが、子どもたちは、その社会で生きるための力を身につける必要があります。
近年、AIや機械学習がブームとなり、キーワードだけが先走りしている傾向にあります。結果、「AI・機械学習を活用する」こと自体が目的化し、ツールや環境を導入したものの、ビジネス価値創出に至らないケースも多いようです。 その最大の要因は、肝となる「アナリティクス・ライフサイクル」の欠如にあります。 まず、業務課題を明確化した上で、その課題を解決するためにはデータ分析が必要であり、分析には元となるデータが必要になります。必要なデータを準備し、その中身を探索し、その結果に基づいて予測モデルを開発し、作成されたモデルを業務に実装する、このサイクルを素早く回し続ける、これが、企業が抱える業務課題を解決し、ビジネス価値(収益の拡大、コストの削減、リスクの低減、など)を創出するための鍵なのです。 アナリティクス・ライフサイクルを構成する3つの要素: アナリティクス・ライフサイクルを素早く回すためには、上記3つの要素がシームレスに連携する必要があります。しかし、多くの企業では、従来から、複数の異なるベンダーの異なる商用ソフトウエアや環境、あるいはオープンソースソフトウエアなどを継ぎ接ぎして分析環境を構築してきたため、このサイクルを回すためには多大な時間を擁してしまい、変化への素早い対応は困難な状況にありました。 この課題に対して、AIプラットフォーム SAS® Viya®では、アナリティクス・ライフサイクルに必要な機能要素を網羅した上で、それぞれがシームレスに連携し、高速に回し続けることが可能となっています。 そして、SAS Viyaには、分析者のスキルレベルに応じて、プログラミングインターフェースとグラフィカルインターフェースの両方が備わっています。 データサイエンティストであれば、データの準備から探索、そしてモデル生成までをお好みの言語(SAS, Python, R, Java, Lua)を使用して実施することができます。 一方で、コーディングスキルを持たないビジネスユーザーであれば、統合グラフィカルユーザーインターフェース上でアナリティクス・ライフサイクルをシームレスかつ高速に回し続けることが可能となっています。 企業が、その企業の競合企業よりも早く、正確に、アナリティクス・ライフサイクルを回すことによって、以下が実現されます。: より多くの反応率の高いマーケティングキャンペーンをより早く実施し、より多くの新規顧客を獲得し、既存顧客の離反を防止 より早く正確に、より多くの製造設備の異常予兆を検出し、設備のダウンタイムを最小化し、生産量を最大化 より多くの種類の不正をより早く正確に検知し、不正により齎されるリスクや損失を低減し、企業の信頼度を向上 企業を取り巻く環境の変化に、より素早く対応 …など Data:データの準備 異なる分析要件ごとに、分析者自身で、分析に必要なデータは都度準備する必要があります。SAS Viyaでは、分析者自身で分析に必要なデータをセルフサービス型で準備することができるようになっています。 マウスのポイント&クリック操作だけで、データのプロファイリングからクレンジング、加工・変換・結合などを自由自在に行うことができ、分析プロセス全体の中で7、8割の工数を占めると言われるデータ準備工数や時間を大幅に削減することが可能となります。 Discovery:データの探索とモデル生成 次に、準備したデータの中身を探索します。SAS Viyaでは、コーディングスキルを持たないビジネスユーザーでもマウスの簡単操作だけで、データの探索や分析が可能になっています。単一の画面内で、過去の見える化から高度な機械学習までもが可能で、できあがった画面をレポートやダッシュボードとして即座に全社に公開し、共有することもできます。 データサイエンティストであれば、モデル生成の手前のビジュアルなデータ探索手段として活用することができます。 データ探索の結果に基づき、予測モデルを構築します。 SAS Viyaでは、ビジュアルなUIからマウスのドラッグ&ドロップ操作で、機械学習、時系列予測、テキスト解析の各種モデル生成プロセスをグラフィカルなフロー図(パイプライン)として描き、実行することが可能になっています。 このモデル生成パイプラインは、ドラッグ操作で一から作り上げることもできますし、SASの長年のベストプラクティスに基づき、予め用意されているパイプラインのテンプレートを使用して、精度の高い予測モデルを自動生成することも可能です。 Deployment:モデルの業務実装 生成されたモデルは統合的に管理した上で、業務に実装することができます。 モデル管理画面では、モデルにテストデータを当てはめてスコアリングテストの実施や、モデルのデプロイ(業務実装)、業務に実装後のモデル精度のモニタリング、再学習を実行し、モデル精度を改善、そしてバージョン管理など、モデルを統合管理することができます。 管理されたモデルは、異なる業務要件ごとに異なる環境へデプロイ(業務実装)することができます。 REST API:既存のアプリケーションからREST APIを通じて、SAS Viyaサーバー上にあるモデルにデータを当てはめてスコアリング(予測処理)を行い、結果を受け取ることができます。 インデータベース:モデルをデータベース内にデプロイし、データベース内で直接スコアリングを実施することができます。これによって、スコアリング対象の大量のデータを転送する必要が無くなり、処理の効率化や意思決定の迅速化も図れます。 インストリーム:SAS Viyaには、オンライン機械学習・リアルタイム処理向けにストリーミングのエンジンも実装されています。SAS Viyaのリアルタイムプロセスにモデルをデプロイすることで、リアルタイム・スコアリングも実現されます。 以上のように、企業が業務課題を解決し、ビジネス価値を創出するためには、「アナリティクス・ライフサイクル」が肝であり、このサイクルをシームレスかつ素早く回し続けることが、企業の変化対応力、競争力強化に直結するということです。 従来からSASを活用し、ビジネス価値を出している企業はすべてこのサイクルを回し続けています。そして、AIプラットフォームSAS Viyaでは、これを強力に支援することができるということです。
前回のブログ記事では、Data for Good活動の一環として、世界の絶滅危惧種についての考察をしました。本記事では、朝ラッシュ時の鉄道混雑について考えます。 首都圏における鉄道の通勤通学時間帯混雑率は、長期的にみて改善されているものの180%を超える路線が11路線あるなど(2017年)依然として満員電車は解消されていません。不快感や身体の圧迫はもとより、多くの乗客が集中することで、混雑による遅延が発生しています。車両の増備、長編成化、新路線の建設などハード面の強化により大幅な改善を図ることができますが、すでに容量の限界まで運行している場合や、構造物の制約、費用、期間の面からもこれらの施策をすぐに実現することは難しいです。そこで今回は、通勤ラッシュ回避のために乗客が通勤時間をずらすオフピーク通勤の実施について調査し、混雑緩和につながるかを検証したいと思います。 オフピーク通勤(時差通勤)は、個人の自発的な行動によるものであり、多くの会社・学校の始業時間がほぼ同じであるため鉄道事業者が呼びかけても定着することはありませんでした。2016年に「満員電車ゼロ」を含んだ公約を掲げ当選した小池都知事は、公約の実現のためオフピーク通勤を推進するキャンペーンである「時差Biz」を2017年にスタートしました。このことについて、東京都のサイトには以下の文章があります。 満員電車の混雑緩和は、社会の生産性向上のための重要な課題のひとつです。 東京都では、通勤時間をずらすことによって満員電車の混雑緩和を促進する「時差Biz」を実施中です。 時差Bizの参加に資格や決まりはなく、皆様が一斉に取り組むことにより、大きな効果があることが見込まれます。皆様のご参加、お待ちしております。 サイト内では、個人に対して時差通勤を推奨し、企業に対してフレックスタイム制やテレワークの導入などを推奨しています。参加企業は916社、鉄道事業者が集中取組期間中に臨時列車を運行するなど活動の広がりがみられますが、見込まれる効果は未知数なうえ関連するデータや分析結果も乏しいです。そのため簡単ではありますが、オフピーク通勤の効果の有無や程度を具体的に算出します。 まず、平成29年度の首都圏31区間におけるピーク時混雑率を示します。混雑率は、一定時間内の輸送人員(実際に輸送した乗客の数)を輸送力(車両の定員数の合計)で割ったものであり、最も高い東京メトロ東西線(木場→門前仲町)は199%と定員のほぼ2倍の人を乗せています。唯一100%を下回ったのは、JR東日本中央緩行線(代々木→千駄ヶ谷)で、混雑率は97%でした。 輸送人員と輸送力に注目すると、中央快速線の81,560人を筆頭に輸送人員が60,000人を超える路線が13路線ある一方で、輸送力は最も大きい小田急小田原線でも49,416人と大きな差があります。また、ピーク時の運行本数と編成数をみると、多くの路線で10両もしくはそれ以上の車両を2~3分おきに運行していて、これ以上輸送力を強化することは難しいです。 ここからは、オフピーク通勤の効果を検証するため、2つの仮想シナリオが実現した場合の結果を計算します。 1.時差通勤のみ 平成29年度から新たに追加された調査データを利用します。これは、首都圏36区間のピーク時と前後1時間の混雑率を算出したものです。 路線によってピーク時が違うため6:17~7:17から9:02~10:02まで約4時間にわたる混雑率を時間帯の早い順に並べたものが以下のグラフです。路線ごとのばらつきが大きいですが、3等分すると中心部が最も高くなり、ピークより前、ピークより後の順で混雑率が低下しています。このことは始業時間が決まっている場合、それを守るように通勤・通学する人が多いという説明ができるでしょう。 それぞれの路線についてピーク時と前後1時間の合計3時間の輸送人員と輸送力を算出し、そこからピーク時と前後1時間の3時間混雑率を算出したのが(例:ピーク時が7:30-8:30の場合、6:30-9:30の輸送人員/6:30-9:30の輸送力)、以下のグラフです。 混雑率をみると、すべての路線で国が目標としている180%を下回り大きく混雑が緩和されています。このことから、乗客の均等な利用を促す時差通勤は混雑率の低下につながるでしょう。 2.時差通勤+前後時間帯の増発 ピーク時と前後1時間の輸送人員と輸送力を時間帯ごとに示したのが以下のグラフです。ピーク時を中心に山ができていて、多くの乗客がピーク時に集中していることがわかります。 また、それぞれの路線でピーク時の輸送力を前後1時間においても実現した際のシナリオをもとに3時間混雑率を算出しました。(例:ピーク時が7:30-8:30の場合、6:30-9:30の輸送人員/(7:30-8:30の輸送力)×3)その結果、すべての路線で混雑率が150%を下回り、そのうち7路線は100%を下回りました。 しかし、ピーク時の前後1時間の輸送力を増強するためには列車の増発が必要で、鉄道事業者には新たなコストが発生します。このコストに見合うだけの効果が見込めなければ、事業者にとって列車を増発するインセンティブがありませんが、新倉(2009)によると、 増発による増加コストと混雑緩和による利用者便益を試算した結果、両者はほぼ同額でした。また、有料着席列車を導入することで、料金収入によって増加コストを賄うことが可能であるとし、列車の増発は双方にとってメリットがあると示しています。 首都圏36区間のデータからの計算結果をまとめると、ピーク時1時間の混雑率平均は165%でした。(最混雑区間は東京メトロ東西線木場→門前仲町:199%)また、ピーク時と前後1時間を加えた合計3時間の混雑率平均は143%となりました。(最混雑区間は、JR東日本横須賀線武蔵小杉→西大井:177%)そして、ピーク時の輸送力を前後1時間においても実現した場合には、合計3時間の混雑率平均は113%となることがわかりました。(最混雑区間は、東急田園都市線池尻大橋→渋谷:142%) 混雑と遅延の関係 つぎに、遅延証明書の発行状況に関するデータを利用して混雑との関係を調べます。東京圏(対象路線45路線の路線別)における1ヶ月(平日20日間)当たりの遅延証明書発行日数が記載されていて、平成28年度の1位は中央・総武線各駅停車の19.1日です。遅延証明書発行日数が10日を超えるのは45路線のうち29路線で、遅延の発生が常態化しています。 下の散布図は、先ほど使用した混雑率のデータと遅延証明書発行日数を組み合わせたものです。両者には正の相関がみられ、遅延が頻繁に発生している路線ほど混雑率が高くなっています。 遅延の発生は何によって説明されるかを明らかにするため、「混雑率(%)」「列車本数(本/h)」「営業キロ(km)」「他社乗り入れの有無(0or1)」の4つの変数を用いて回帰分析しました。分析の結果、混雑率のみが有意に正の影響を及ぼしていました。 上記データには遅延原因の記載もあり、大規模な遅延(30分以上の遅延)は、人身事故、車両・施設の故障、自然災害が原因である一方、小規模な遅延(10分未満の遅延)は、乗車時間超過が全体の47%を占め、ドアの再開閉が16%でした。これらは利用者の集中によるもので、オフピーク通勤によって混雑が緩和されれば、遅延の発生も減少することが予想されます。そして遅延が原因となっていた混雑の減少が見込まれます。 結論 結果をまとめると、計算上はオフピーク通勤・通学は混雑率の低下につながりますが、実現するには多くの人々の行動を変えなければなりません。そのためには、企業や学校の始業時間を分散させることや柔軟な勤務体系の導入などが必要です。理想的なのは6時台から9時台までムラのない通勤・通学ですが、数十万人が現在の出社・登校時間を変更することになり、さらなる取り組みの拡大が不可欠だといえるでしょう。また、オフピーク時における列車の増発は大幅な混雑緩和につながりますが、増加するコストの負担が課題であり、追加的な調査が必要です。そして、混雑と遅延については互いに影響し合い、一方が減るともう一方も減るという関係があるので、遅延対策の推進も混雑の緩和に寄与することがわかりました。 以上 SAS Visual Analytics 8.3 を用いて朝ラッシュ時におけるオフピーク通勤の有効性検証と混雑と遅延の関係について分析しました。SAS VAの各種使用法については、こちらのブログのシリーズでご説明しております。併せてご参照ください。 SAS Japanでは、学生がData for Goodを行うコミュニティ「SAS Japan Student Data for Good community」を発足します。目的としては、社会問題へのアプローチを通してData Scienceの流れの経験・スキルの向上、学生間の交流拡大、社会への貢献の達成があります。主な活動はふたつに分けられ、一つは社会課題の解決に向けたデータ分析で、オンラインでの議論や定期的な集まり、作成したレポートの公開、アクション(施策)の提案をします。もう一つは、イベント参加で、データサイエンスに関する講演への参加、データ分析コンペ出場、勉強会をすることを予定しています。これまで大学の講義や自習で学んだスキルの実践・アウトプットの場になるうえ、議論をしながらプロジェクトを進めることができます。(知識・アイデアの共有、その他参加者同士の交流)これは大人数の講義や独学ではできないですし、最終的には社会貢献にもつながります。 興味をお持ちでしたら以下のアドレスまでご連絡ください。みなさんの参加をお待ちしています。 JPNAcademicTeam@sas.com
“Data for Good”という言葉をご存知でしょうか。これはデータを活用して社会的な課題を解決しようとする活動です。SAS Japanでは”Data for Good”を目指した取り組みを展開しております。その一つとして、SASはData for Good活動をする学生コミュニティ、「SAS Japan Student Data for Good community」を発足します。これは、社会問題へのアプローチを通して、Data Scienceの流れの経験・スキルの向上・学生間の交流拡大・社会への貢献などの達成を目的とするコミュニティです。 このコミュニティのData for Good活動の一環として、本記事では世界の絶滅危惧種についての分析をご紹介します。 現在、世界中で何万種もの生物が絶滅の危機に瀕しています。個体数を減らすこととなった原因はもちろんそれぞれの生物によって異なるでしょうが、主たる原因は人間による環境破壊や開発であると言われています。確かに人間の活動が生物に悪影響を及ぼしうることは直感的に正しいと感じられますし、また、仮にそうだとすれば、人間の開発活動を示す値と絶滅危惧種の数には何らかの具体的な関係があるはずだと考えられます。そこで、今回は、国ごとの絶滅危惧種数や開発指数を用いて、それらの関係を調査します。 今回の調査ではSAS Visual Analytics 8.3を用いてデータ分析を行いました。 今回使用したデータのリストはこちらです。 総人口 (World Bank Data) https://data.worldbank.org/indicator/SP.POP.TOTL 面積 (World Bank Data) https://data.worldbank.org/indicator/AG.SRF.TOTL.K2 人口増加率 (World Bank Data) https://data.worldbank.org/indicator/SP.POP.GROW CO2排出量 (World Bank Data) https://data.worldbank.org/indicator/EN.ATM.CO2E.PC?locations=1W 一人当たりCO2排出量 (World Bank Data) https://data.worldbank.org/indicator/EN.ATM.CO2E.PC?locations=1W GDP (World
先日、-データサイエンティストに求められる「本当の役割」とは-のブログ記事内で紹介されたデータサイエンティストを目指す学生向けのセミナー「データサイエンティストのキャリアと活躍のかたち」の第1回が11/30(金)に開催されました。この記事では、当日の様子をお伝えします。 セミナーの内容は、データサイエンティストのキャリアと活躍の場や、ビジネスではアナリティクスがどのように活用されているかについて、スピーカーがこれまでの経験をもとに紹介するものです。今回は初回のセミナーということで、講演前にSASが学生向けに実施している取り組みの紹介と、データサイエンティストの役割であるデータを利用しビジネス課題の解決を図るという一連の流れを確認しました。 データサイエンティストに必要な資質 はじめに、データサイエンティストのキャリアについて株式会社GEOJACKASS大友さんの講演です。大友さんは、複数の企業・大学でのデータサイエンス業務の経験がある方です。 まず、JAXAに勤務していたときの業務内容の一例ということで、月周回衛星「かぐや」と小惑星探査機「はやぶさ」のデータを扱って周回軌道の可視化などに携わっていたことを実際の画像とともに説明していました。そして、データサイエンティストの業務の大部分は可視化とデータクレンジングを含む集計作業なので、まずは可視化から始めることを意識してほしいとのことでした。 つぎに、趣味の釣りを題材としたデータ分析の話です。釣りは常に一定の成果が得られるわけではなく、全く釣れない日もあれば、突然100尾釣れる日が続くこともあります。この急上昇する時期をピンポイントで当てようとデータをもとに予測システムを構築することを考えていました。そこで釣果予測をするために観測衛星から海水温、海上風速のデータ、海上保安庁から海流のデータを収集し、自治体の管理公園やTwitter、釣具屋にアップされている情報から過去の釣果実績のデータを収集してこれらを一括で管理する仕組みをつくりました。 こうして収集、整形したデータを利用した分析結果をもとに、宮城にヒラメ釣りに行くと、8枚釣ることができたそうです。また、そのほかの魚も大漁でした。ちなみにヒラメは一度の釣りで1枚釣れたら良いと言われているそうです。このシステムは開発途中とのことですが、仕事ではなくても趣味でデータサイエンスの実践は可能だということです。さいごに、この釣果予測で使った気象データが、仕事であるデータサイエンス業務のなかで役立ったケースを挙げ、自分の趣味、好きなことややりたいことを追求するのが最も大事なことで、技術はあとからついてくる。つまり、まずは目的を持つことが重要だというメッセージを学生に強く伝えていました。 データ活用とアナリティクス・ライフサイクル つぎに、ビジネスにおけるアナリティクスについてSAS Japanの畝見による講演です。 導入では、アナリティクスに関するキーワードである「機械学習」「ディープラーニング」「人工知能(AI)」などを一枚の図に整理し、それぞれの単語について説明をしていました。 前半は、ビジネス課題の解決にアナリティクスが活用されている事例の紹介です。「顧客理解・マーケティング分析」分野では、ダイレクトメールの配信を効果的にするためにどういった顧客をターゲットにすればよいかを探索する事例、商品の購入履歴や商品への評価をもとに顧客へおすすめ商品を提案するため用いられている決定手法の説明がありました。「不正検知」分野では、マネーロンダリングなどの不正行為を検知するために用いられている複数の手法の説明があり、「品質管理・異常検知」分野では、教師なし学習による異常検知の説明と、実際に航空会社においてエンジン部品故障を予測するために部品のセンサーデータを利用し、修理が必要な状態になる20日以前に故障の予兆を検知し可視化することを実現した事例の紹介がありました。また、品質管理ではブリヂストンにおけるタイヤ生産システムを自動化し品質のばらつきを低減した事例や、ある半導体メーカーは、従来の品質管理の取り組みに加え、ディープラーニングを取り入れた画像認識技術を追加して品質管理を強化しているなどアナリティクスの進化が応用されている事例の紹介がありました。 他にも、スポーツ関連企業では、スタジアムにあるカメラでサッカー選手の背番号を撮影し、各選手のパフォーマンスを分析するため、ディープラーニングによる画像認識が用いられているなどさまざまな業務・業種でアナリティクスが利用されているとのことです。 後半は、AIとアナリティクス活用の課題と対策についての話です。まず、とある企業でAI・機械学習を導入するプロジェクトがうまくいかなかったストーリーを提示して、データ活用とアナリティクスで成果を出せない理由を以下の3つに分類しています。 データハンドリングの課題(取得・加工・品質・準備) モデリングの課題(スキル課題や結果の一貫性など) モデル実装の課題(価値創出とガバナンス、実行と評価) ここで、「データ活用とアナリティクスで成果を出す=ビジネス課題の解決」には、 Data:アクセス、クレンジング、準備 Discovery:探索、分析、モデル生成 Deployment:モデル管理、組み込み、モニタリング の一連のプロセスからなる循環的な取り組み(アナリティクス・ライフサイクル)が必要だとし、ひとつひとつのステップについての説明がありました。そして、ビジネス価値の創出には、「"問い"→データ準備→探索→モデリング→"問い"→実装→実行→評価→"問い"」という8の字のアナリティクス・ライフサイクルも効果的であるという説明がありました。 さいごに、データサイエンティストの役割として求められることはビジネス価値の創出に貢献することで、そのためにはアナリティクス・ライフサイクルを迅速かつ丁寧に進めることが重要だと伝えていました。 SAS student Data for Good communityの紹介 セミナー内では、学生によるデータサイエンスの学びの例ということで、データを活用して社会的な課題を解決する「Data for Good」への取り組みを発表しました。そして、学生が集まってData for Good活動をするサークル「SAS student Data for Good community」を発足することと、その活動内容や意義についての説明をしました。第2回セミナーで追加的な情報をお伝えする予定です。 講演のあとには、軽食をとりながら講演者と参加者で歓談をしました。さまざまな専攻・学年の方が参加しており、講演者への質問や参加者どうしの会話が絶えず貴重な交流の場となりました。 次回の学生向けセミナー「データサイエンティストのキャリアと活躍のかたち」は1月31日(木)に開催予定です。みなさんの参加をお待ちしております。
PythonからSAS Viyaの機能を利用するための基本パッケージであるSWATと、よりハイレベルなPython向けAPIパッケージであるDLPyを使用して、Jupyter NotebookからPythonでSAS Viyaのディープラーニング機能を使用した時系列予測を試してみました。 大まかな処理の流れは以下の通りです。 1.必要なパッケージ(ライブラリ)のインポート 2.Sin波データの生成 3.セッションの作成 4.RNN向け時系列データセットの作成 5.モデル構造の定義 6.モデル生成(学習) 7.予測 1.必要なパッケージ(ライブラリ)のインポート swatやdlpyなど、必要なパッケージをインポートします。 import numpy as np import pandas as pd import matplotlib.pyplot as plt import swat.cas.datamsghandlers as dmh from swat import * import dlpy from dlpy import Sequential from dlpy.layers import * from dlpy.model import Optimizer, AdamSolver, Sequence
PythonからSAS Viyaの機能を利用するための基本パッケージであるSWATと、よりハイレベルなPython向けAPIパッケージであるDLPyを使用して、Jupyter NotebookからPythonでSAS Viyaの機能を使用して一般物体検出(Object Detection)を試してみました。 今回は、弊社で用意した数枚の画像データを使用して、処理の流れを確認するだけなので、精度に関しては度外視です。 大まかな処理の流れは以下の通りです。 1.必要なパッケージ(ライブラリ)のインポートとセッションの作成 2.一般物体検出向け学習用データの作成 3.モデル構造の定義 4.モデル生成(学習) 5.物体検出(スコアリング) 1.必要なパッケージ(ライブラリ)のインポートとセッションの作成 swatやdlpyなど、必要なパッケージをインポートします。 from swat import * import sys sys.path.append(dlpy_path) from dlpy.model import * from dlpy.layers import * from dlpy.applications import * from dlpy.utils import * from dlpy.images import ImageTable from dlpy.splitting import two_way_split from dlpy.blocks import *
最近、SNSなどで「AI開発ミステリー ~そして誰も作らなかった~」という記事が話題になりました。人工知能(AI)を導入しようという企業の最悪の顛末をコミカルに描いたジョーク・ストーリーですが、これを面白がる人が多いというのは、多少なりとも日本のIT業界の現実を反映しているのかもしれません。 このような事態になっているのは、AIに対する過度な期待が原因の一つかもしれません。AIは、機械に任せれば素晴らしいことが起こる魔法ではなく、明確に定義されたタスクを実行するように機械をトレーニングする方法です。人間が行うタスクを機械が代替することになるのですが、人間が活動しているシステムのなかで、どの部分を機械にやらせるかを考え、実装し、運用しなければなりません。これは、これまでSASが実現してきたアナリティクスの延長にほかなりません。 「AIが発達すればデータサイエンティストはいらない」という説もあります。データサイエンティストが機械学習を実装する役割だけを持つのであれば、そうかもしれません。しかし、本当に必要とされる仕事が「人間が活動するシステムの中でのアナリティクスの活用」であるなら、まさにAIが使われる仕組みを考え、実装し、運用できる状態にする人材こそが求められているのではないでしょうか。 今年5月、SAS Forum Japan のなかで開催された「データサイエンティスト・キャリア・トラック」では、アナリティクスを活用する組織のなかでデータサイエンティストがどのように活躍するかについて、企業の方々から学生向けの講演をいただきました。例えば、ITや数理モデルを使いこなせることは初級レベルで、ビジネススキルを身に着けながら、最終的には経営幹部候補となるキャリアパスを提示している組織や、一方で、趣味で培ったスキルをビジネスに生かすデータサイエンティストがいます。このように、データサイエンティストのキャリアは組織・個人によってさまざまですので、多様人材がそれぞれの強みをもって活躍することができそうです。 しかし、どの組織・個人でも共通しているのは「目的志向」である点です。何のためにデータ分析をするのか、それがどのような価値を持つのかを明確にしなければ、課題解決のためのデータ分析はできません。データサイエンティストは単にデータ分析の技術で課題解決するだけでなく、「課題設定」をする役割を持たなければ本当の価値は生み出せないのです。そもためには、さまざまな問題意識を抱える人たちと異業種交流をするなど、幅広い視野が必要となりそうです。 データサイエンティスト協会が示した3つのスキルのうち、「ビジネススキル」については、ときどき「ドメイン知識」(業界や業務についての知識)として紹介されることがあります。しかし、本当に必要なのは、その知識を解決すべき課題に変換する力だと考えます。データサイエンティストを目指す学生が、すべての業界・業務についての知識を得ることは難しいですが、アナリティクスが活用される代表的な業界において、どんな課題がどのようにアナリティクスにより解決されているかを知ることで、応用力を身に着けられるのではないでしょうか。そこで、SAS Japanでは、次のような内容の学生向けセミナー「データサイエンティストのキャリアと活躍のかたち」をシリーズで開催します。 データサイエンティストのキャリア ... 「データサイエンティスト・キャリア・トラック」の講師陣による、それぞれの組織や個人としてのデータサイエンティストのキャリアや活躍のかたちを紹介 ビジネスで活用されるアナリティクス ... データサイエンスやアナリティクスがどのような業界のどんな課題を解決するために活用されているかをSAS社員が紹介 学生によるデータサイエンスの学び ... 学生がどのようにデータサイエンスを学習しているかを学生自身による体験を交えながら紹介 第1回は11月30日(金)に開催します。データサイエンティストを目指す学生の皆様のご参加をお待ちしています。
SASでは、従来からオープン・AIプラットフォームであるSAS Viyaの機能をPythonから効率的に活用いただくためのハイレベルなPython向けAPIパッケージであるDLPyを提供してきました。 従来のDLPyは、Viya3.3以降のディープラーニング(CNN)と画像処理(image action set)のために作成された、Python API向けハイレベルパッケージです。 DLPyではKerasに似たAPIを提供し、より簡潔なコーディングで高度な画像処理やCNNモデリングが可能でした。 そして、この度、このDLPyが大幅に機能拡張されました。 最新版DLPy1.0では、以下の機能が拡張されています。 ■ 従来からの画像データに加え、テキスト、オーディオ、そして時系列データを解析可能 ■ 新たなAPIの提供: ・ RNN に基づくタスク: テキスト分類、テキスト生成、そして 系列ラベリング(sequence labeling) ・ 一般物体検出(Object Detection) ・ 時系列処理とモデリング ・ オーディオファイルの処理と音声認識モデル生成 ■ 事前定義ネットワーク(DenseNet, DarkNet, Inception, and Yolo)の追加 ■ データビジュアライゼーションとメタデータハンドリングの拡張 今回はこれらの拡張機能の中から「一般物体検出(Object Detection)」機能を覗いてみましょう。 SAS Viyaでは従来から画像分類(資料画像1.の左から2番目:Classification)は可能でした。例えば、画像に映っている物体が「猫」なのか「犬」なのかを認識・分類するものです。 これに加えて、DLPy1.0では、一般物体検出(資料画像1.の左から3番目:Object Detection)が可能になりました。 資料画像1. (引用:Fei-Fei Li & Justin Johnson & Serena Yeung’s Lecture
近年、クラウドファーストを唱える企業が増加し、データ分析のために、クラウド上に展開されている分析サービスを活用したり、クラウド上に独自に分析アプリケーションを構築するケースも増えています。 しかし、クラウド上にある分析サービスやアプリケーションで分析する対象のデータは、オンプレミス上に蓄積されているケースが大半であり、クラウドからこれらのデータにアクセスできるようにするための作業や環境設定は面倒かつ非効率で、膨大なデータをクラウドとやり取りするなどの運用コストも大きく、かつセキュリティのリスク回避も考慮しなければなりません。 こうした課題を解決するために、SAS ViyaではSAS Cloud Data Exchange (CDE)を提供しています。 SAS Cloud Data Exchange (CDE) は、プライベート/パプリックのクラウド上にあるアプリケーション(=SAS Viya)からファイヤーウォールの後ろにある、顧客のオンプレミス上にあるデータに安全かつ確実にアクセスし、大量のデータをクラウドへ高速に転送することを可能とするデータ接続機能です。 CDEは、SAS Viyaのセルフサービス・データ準備向け製品であるSAS Data Preparationに含まれる機能です。 CDEを使用すれば、クラウド上にあるSAS Viyaからオンプレミス上にある様々なデータソース(Oracle, Teradata, Hadoop etc.)へ最小限の手順で容易かつセキュアにアクセスすることが可能になります。 サポート対象データソース: ・DB2, ODBC, Apache Hive, Oracle, Redshift, SQL Server, Postgres, SAP HANA, Teradata, SAS Data Sets CDEでは、最小限の一つのポート(Https port)を使用し、オンプレミス上にあるデータソースにアクセスするための資格情報(ユーザーID /パスワード)も保護された領域に格納し、使用するため、安全性が高められています。 また、クラウド上のSAS Viyaが複数のワーカーノードで分散構成されている場合には、オンプレミス上のデータを並列で高速にSAS Viya環境へロードすることが可能です。 利用手順概要は以下の通りです。 オンプレミス側にSAS Data Agent
前回の記事では、SAS Visual Analytics を用いて時系列データを扱う手法をご説明しました。第7回目となる本記事では、データをグループ分けするクラスタリングについてご紹介します。 クラスタリングとは、多様な特徴を持つデータ群の中から、似通った性質を持つサンプルを抽出しグループ化する機械学習手法です。例えば、顧客をクラスタリングし、各クラスターの特徴(年齢・嗜好等)に合わせた適切なDMを送る、などの活用例があります。本記事では、行政基盤の性質に基づき都道府県をクラスタリングします。本ブログのシリーズの第3回・第5回にて同じデータを異なる手法で分析しておりますので、併せてご参照ください。 本記事では、総務省の「社会・人口統計体系 都道府県データ 社会生活統計指標 :D 行政基盤」のデータを使用しました。 SAS Visual Analytics 8.3 におけるクラスタリング分析 from SAS Institute Japan 本例で作成したクラスターの数は5つですが、オプションから数の変更ができます。特徴量のビンの数も同様に変更可能です。 さて、今回使用した5つの変数は第3回・第5回の記事の分析で、人口増減率に影響を及ぼすとされた要素でした。スライド内クラスター2のラインをご覧ください。財政力指数は低いものの、土木費割合が高いという特徴を共有するクラスターであると読み取れます。これは、第5回の記事のディシジョンツリーを用いた分析によると、財政力が弱いにも関わらず人口増減率が高い自治体の持つ特徴でした。したがってクラスター2内の要素の人口増減率が高い傾向にあることが予想されます。また最も要素数の多いクラスター5についてですが、どのビンにおいても概ね中程度の値を取っており、平均的なクラスターであるとみなせます。このようにクラスタリングによってデータを分類し、各クラスターの特徴に着目することで、データをより分析しやすくすることが可能です。 ここで、SAS Visual Analytics におけるクラスタリングに使われている手法、k-means法の仕組みついてご紹介します。ここではn個のデータをk個のクラスターに分類するとします。 1) n個のデータのうち最初のk個をクラスターの核とし、各データを一番近い核のクラスターに属するように分割します。 2) 各クラスターの重心を求めます。 3) 各データを、それぞれが一番近い重心のクラスターに属するように再分割します。 4) 再分割されたクラスターの重心を求め、(3)の操作をクラスターに変化がなくなるまで行います。 このように、最終的に変動がなくなったクラスターに基づきクラスタリングが行われています。 以上、クラスタリングの手法についてご説明しました。引き続き本ブログのシリーズでは、SAS Visual Analytics を用いた図表・グラフの作成や統計解析の方法について紹介いたします。ぜひご参照ください。 高校生・大学生を対象とした第2回和歌山県データ利活用コンペティションへの参加も募集中ですので、奮ってご参加ください。(追記:募集は締め切られました)