SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
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

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

現在、機械学習が大ブームを巻き起こしており、各種ビジネスへ応用拡大の勢いはとどまるところを知りません。一方で、「“機械学習”という名前は聞くけど、よくわからない…。」、「“機械学習”について学んでみたいけど、プログラミングに自信はない…。」などと考えている方も少なくないはずです。そこで本記事では、煩わしいプログラミングなしで機械学習が学べる「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®

Data for Good | SAS Events | Students & Educators
0
第二回Data for Good勉強会 活動レポート

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)にて開催予定です。 現場で活躍されているデータサイエンティストの方々から、具体的なお仕事の内容や学生の内に学ぶべきこと等をお伝えする予定です。 みなさんのご参加お待ちしております。

1 2 3 26