Tag: 機械学習

Analytics
0
キンモクセイの香りに浸かって

秋の風物詩であるキンモクセイ(金木犀)は、オレンジ色のフルーティで甘い香りが特徴で、英名はまさしく「フレラント・オリーブ(Fragrant olive)」。香りを楽しむには朝がおすすめで、酵素が活発になるため香りが強くなるそう。ぜひ通勤・通学時に香ってほしい。 キンモクセイはすべて国から持ち込まれた雄株のみで増やしたクローンなので、通常の植物と違って、同じ地域では一斉に開花する。サクラの場合とは逆に、キンモクセイの開花は寒くなる地域から徐々に、東北から九州に向かって進んでいく。ちなみに北海道と沖縄には挿し木がないらしい。 さて、今春のサクラの開花が暖冬で約1週間遅れたのに続き、今秋のキンモクセイも平年より遅れ気味の開花。これは夏が長引いたのが影響しているはずである。実際に10月の平均気温を見ると、関東や近畿は平年より高め、中国地方や九州北部は平年並み、ということで関東や近畿で開花が遅れているとみている。 サクラの開花予測には積算気温が用いられるが(春になると回帰分析を思いだす)、キンモクセイも高温が続くと遅れるため、同様の指標が考えられる。より精緻な統計モデルで予測することも可能である。おくれじとキンモクセイの香りに浸りながら、開花日を予測してみたい。 住宅価格や企業の売上予測においても、ローン支払いの不履行の可能性を見通すにしても、因果解析の手法が用いられる。11~12月は、線形回帰、ロジスティック回帰、生存時間など因果解析のコースがオンパレード(トレーニングコース詳細とスケジュール | SAS)、興味があれば受講してみるのも良いだろう。 2024年11月初旬 相吉 

Analytics
0
統計学に羽が生えて「コスモス」へ

秋の花といえば、「秋桜」という漢字名を持つコスモスが思い浮かぶ。コスモスはピンク、赤、白、黄、オレンジ、さらには複合色といったさまざまな色があり、実にカラフルである。発色やその遺伝的要因について統計的に研究することは面白いかもしれない。品種改良や育種に役立つ情報が得られるはずだ。 コスモスは非常に丈夫で、日当たりと風通しの良い場所であれば、土質をあまり選ばずに育つ。したがって、庭や花壇で栽培され、切り花や生け花などにも利用されてきた。コスモスの花壇のデザインに関する研究も興味深い。色の組み合わせや配置が視覚的、心理的にどう影響するかを統計的に分析すれば、より素敵なレイアウトやデザインが見つかるだろう。 さて、コスモスという名前は、ギリシャ語で「秩序」や「調和」を意味するそう。色の組み合わせがどれだけ秩序を保ち、調和しているかという視点で花壇のレイアウトやデザインを観察するのも、秋を楽しむ一つの方法かもしれない。 秩序や調和という意味に加え、花が星型に開いて輝く様子から、宇宙を意味する「コスモス」という名前が付けられたのかもしれない。 統計学の世界に長年身を置いてきた私にとって、機械学習やAIはまさに新大陸、いや宇宙と言っても過言ではない。ビッグデータとマシンパワーの力によって、統計学に手足が付いた、羽が生えたように進化したと言えると思う。SASでは、機械学習やAIのトレーニングコースが、中級から上級まで、年に数回開催されているので(トレーニングコース詳細とスケジュール | SAS)、ぜひ受講してみてはどうだろうか。 2024年10月初旬 相吉

Analytics
0
ひまわりの成長ルールを見つけようと

夏といえばひまわり。鮮やかな黄色は一輪でも強い存在感を放ち、我が家の食卓を飾る花でもある。ひまわりの花は常に太陽に向かって咲き、時間とともに太陽を追いかけるとされている。しかし、実際にはこのように動くのは芽生えから開花前のつぼみの時期までの話だ。 自然界にあるひまわりの成長には、太陽、気温、降水量、土壌など多くの要因が影響するが、これらの要因がどう関係するのだろうか。人工的な実験でも可能だが、たとえばひまわりの成長データを収集し、統計分析を用いることで最適な成長条件や栽培環境が特定できるはずだ。また、ビッグデータならではの機械学習アルゴリズムを使えば成長のルールやパターンを見つけることもできる。アナリティクスを駆使すれば(SASで開講中のアナリティクスコースはこちら⇒トレーニングコース | SAS)、収穫量の予測や最適な施肥方法、栽培条件も見つけられるだろう。実際、ひまわりの市場は世界で5.6兆円に登る巨大なマーケットなのだ。 ところで、ひまわりといえば気象衛星を連想するのは私だけだろうか。初代号が1977年に打ち上げられ、今度が10号になるが、最初は愛称で呼ばれていたものが後に正式名称となった。気象庁のサイト(気象庁 Japan Meteorological Agency)では、ほぼリアルタイムでひまわりの衛星写真がさまざまな切り口から見られるが、天気や防災に関する情報のほか、上記のような分析に欠かせない環境や気象のデータも豊富に提供されている。 2024年9月初旬 相吉

Analytics
0
バラといえばナイチンゲールのバラ

幼い頃、家の庭にたくさんのバラがあり、手入れが大変だった思いがある。トゲに刺されて痛い思いをしたり、傷になったりしたことを覚えている。興味深いことに、統計学の歴史にはナイチンゲールの「バラ」というグラフが登場する。 「白衣の天使」として知られるイギリスの看護師フロレンス・ナイチンゲールは、優れた統計学者でもあった。彼女は19世紀のクリミア戦争で看護師として派遣され、膨大な戦死者・傷病者データを分析し、多くの兵士が戦傷ではなく劣悪な衛生状態のために命を落としていることを明らかにした。その後、政治や行政に向けに「ローズダイアグラム」という革新的なグラフで報告した。 ローズダイアグラムは、円グラフの一種で、死因を視覚的に示すチャートである。月ごとの死亡者数を戦傷を赤、衛生状態や栄養不足を青、その他の要因を黒で色分けし、それぞれの面積で表現したものである(Florence Nightingale's Rose Diagram)。このグラフにより、衛生改善の必要性が明確になり、医療環境の改善が進んで傷病兵の死亡率が大幅に減少したのは言うまでもない。 統計学は記述統計と推測統計に分かれ、記述統計はデータの特徴を分かりやすく表現することを目的とする。ナイチンゲールの事例は、記述統計とデータ可視化が如何に重要かを物語っている。SASには「SAS Visual Analytics」という優れた可視化ツールがあり、基礎から上級までの関連コースも提供されている(SASトレーニングコース)。 2024年8月初旬 相吉

Analytics
0
アジサイと書いて統計学と機械学習と読む

この時期の私の楽しみは、散歩の途中でかわいらしい色とりどりのアジサイの花を眺めることだ。アジサイは、「集まる」や「寄せ集める」という意味があり、花弁がいくつも集まっている咲き姿に由来しているそうだ。別名「七変化」とも呼ばれており、土の性質によって花色が変わるのが特徴。土が酸性だとブルー系、中性からアルカリ性だとピンク系になるそうだ。面白いことに、ブルーのアジサイをアルカリ性の土に植え替えると薄紫色のアジサイに変化するそうだ。 「統計学と機械学習の違いは何か」という質問を受けることがある。土の性質で色が変わるアジサイのように、機械学習と統計学も同じような関係ではないかと思う。両者の目的は似ているが、ビッグデータと高度な計算能力という土俵の違いが機械学習の発展に大きく寄与したのは間違いない。ただ、機械学習の歴史は比較的新しいが、統計学がなければその発展は考えにくい。例えば、決定木分析は機械学習が流行る前から統計学の手法の一つだったが、機械学習の進展とともに進化してきた。ちなみに決定木分析は樹形図の形式で結果を出力し、そのため初心者でも理解しやすい分析手法の一つ。SASでは、機械学習をはじめとして、ニューラルネットワーク、AI関連のトレーニングコースが年に数回開催されている(SASトレーニングコース)。 ※Google Trendによると日本での検索数は、2016年当りから交差する形で機械学習が統計学を上回るようになった。機械学習が統計学より広まったのは、ビジネスパーソンであろうが消費者であろうが、意思決定の場面で使われる頻度や処理速度に関連があると思う。 2024年7月初旬 相吉

Advanced Analytics | Analytics | Artificial Intelligence | Data for Good | Data Visualization | Internet of Things | Machine Learning | SAS Culture
小林 泉 0
SAS社員としての誇りーミツバチ・森林・絶滅危惧種の保護や医療への貢献にAI/アナリティクスを活用

SASの一つの顔は、アナリティクスで営利目的の意思決定を支援 筆者は、SAS社員として、20年以上に渡りアナリティクスおよびAIで企業・組織を支援してきました。 金融機関における、リスク管理や債権回収の最適化 通信業における、顧客LTV最大化、ネットワーク最適化やマーケティング活動の最適化 製造業における、需要予測、在庫最適化、製造品質の向上や調達最適化 流通・小売業における、需要予測やサプライチェーン最適化 運輸業における、輸送最適化や料金最適化 ライフサイエンス・製薬企業における、業務の最適化 官公庁における、市民サービス向上のための不正検知 など、様々な業種・業務においてアナリティクスの適用によるお客様のビジネス課題の解決に携わってきました。営利目的(ここでは市民サービスの向上も含めることにします)の企業・組織におけるアナリティクスの活用目的は主に以下の3つに集約されます。 収益(売り上げ)の増大 コストの低減 リスク管理 アナリティクスは、いわゆる「データ分析」を手段とし、過去起きたことを把握して問題を定義し、次に将来を予測し、様々な選択肢の中から最適な予測に基づいて意思決定をしていくことになりますが、その過程の中で、起きてほしい事象を予測して促進したり、起きてほしくない事象を予測して防いだり、その予測のばらつきを管理したりということを行っていきます。 このような営利目的でのアナリティクスの活用はSASという会社が誕生した40年以上前から行われており、基本的な活用フレームワークは変わっていません。IT技術の進化によって、利用可能なデータの種類や大きさが、増えてきただけにすぎないと言えます。例えば、昨今のAIブームの代表格であるディープラーニングですが、ディープラーニングという処理方式の進化と、GPUという処理機械の進化によって、非構造化データをより良く構造化しているものであり、もちろんモデリング時のパラメータ推定値は何十億倍にはなっていますが、モデリングのための1データソースにすぎません。もう少しするとディープラーニングも使いやすくなり、他の手法同様、それを使いこなすあるいは手法を発展させることに時間を費やすフェーズから、(中身を気にせず)使いこなせてあたりまえの時代になるのではないでしょうか。 SASのもう一つの顔、そして、SAS社員としての誇り、Data for Goodへのアナリティクスの適用 前置きが長くなりましたが、SAS社員としてアナリティクスに携わってきた中で幸運だったのは、データの管理、統計解析、機械学習、AI技術と、それを生かすためのアプリケーション化、そのためのツール、学習方法や、ビジネス価値を創出するための方法論や無数の事例に日常的に囲まれていたことだと思います。それにより、それら手段や適用可能性そのものを学習したり模索することではなく、その先の「どんな価値創出を成すか?」「様々な問題がある中で優先順位の高い解くべき問題はなにか?」という観点に時間というリソースを費やすことができていることだと思います。そのような日常の仕事環境においては、アナリティクスの活用を営利目的だけではなく、非営利目的の社会課題の解決に役立てるというのは企業の社会的責任を果たす観点においても必然であり、Data for Goodの取り組みとしてSAS社がユニークに貢献できることであり、SAS社員として誇れるところだと考えています。 最終的に成果を左右するのは「データ」 そして、もう一つの真実に我々は常に直面します。クラウド・テクノロジー、機械学習、ディープラーニングなどの処理テクノロジーがどんなに進歩しようともアナリティクス/AIによって得られる成果を左右するのは「データ」です。どのようなデータから学習するかによって結果は決まってきます。 IoT技術で収集したセンサーデータは知りたい「モノ」の真実を表しているだろうか? 学習データに付与されたラベル情報は正確だろうか? 学習データは目的を達成するために必要な集合だろうか? そのデータは顧客の心理や従業員の心理をどこまで忠実に表しているだろうか? 特に、Data for Goodのチャレンジはまさにそのデータ収集からスタートします。ほとんどの場合、データは目的に対して収集する必要があります。そして、下記の取り組みのうち2つはまさに、我々一人一人が参加できる、市民によるデータサイエンス活動として、AI/アナリティクスの心臓部分であるデータをクラウドソーシングによって作り上げるプロジェクトです。 Data for Good: 人間社会に大きな影響を及ぼすミツバチの社会をより良くする 概要はこちらのプレスリリース「SAS、高度なアナリティクスと機械学習を通じて健康なミツバチの個体数を増大(日本語)」をご参照ください。 ミツバチは、人間の食糧に直接用いられる植物種全体の75%近くに関して受粉を行っていますが、ミツバチのコロニーの数は減少しており、人類の食糧供給の壊滅的な損失につながる可能性があります。この取り組みでは、IoT, 機械学習, AI技術, ビジュアライゼーションなどSAS のテクノロジーを活用し、ミツバチの個体数の保全/保護する様々なプロジェクトを推進しています。この取り組みは以下の3つのプロジェクトから成り立っています。 ミツバチの群れの健康を非侵襲的に監視 SASのIoT部門の研究者は、SAS Event Stream ProcessingおよびSAS Viyaソフトウェアで提供されているデジタル信号処理ツールと機械学習アルゴリズムを用いて、ミツバチの巣箱の状態をリアルタイムで非侵襲的に追跡するために、生物音響監視システムを開発しています。このシステムによって養蜂家は、コロニーの失敗につながりかねない巣箱の問題を効果的に理解し、予測できるようになります。 関連ページ:5 ways to measure

Advanced Analytics | Analytics | Artificial Intelligence | Data Visualization | Machine Learning
SAS Viya: ビジュアルパイプラインでスコアリング

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特設サイトにデモ動画を近々公開予定です。

Advanced Analytics | Artificial Intelligence | Machine Learning
SAS Japan 0
ディープ・ラーニングにおける物体検出

この記事は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プーリング)、物体のクラス確率とより正確なバウンディング・ボックスを予測します。

Advanced Analytics | Analytics | Artificial Intelligence | Machine Learning
PythonやRで開発されたモデルの精度をビジュアルパイプラインで簡単比較

データサイエンティスト(以降、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に公開されているアセットを活用ください。

Artificial Intelligence
SAS Viya:RNNでsin波を予測してみた

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

1 2 3 5