SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Advanced Analytics | Programming Tips
SAS Viyaで線形回帰

SAS Viyaで線形回帰を行う方法を紹介します。 言語はPythonを使います。 SAS Viyaで線形回帰を行う方法には大きく以下の手法が用意されています。 多項回帰: simpleアクションセットで提供。 一般化線形回帰または一般線形回帰: regressionアクションセットで提供。 機械学習で回帰: 各種機械学習用のアクションセットで提供。 今回は単純なサインカーブを利用して、上記3種類の回帰モデルを作ってみます。   【サインカーブ】 -4≦x<4の範囲でサインカーブを作ります。 普通に \(y = sin(x) \)を算出しても面白みがないので、乱数を加減して以下のようなデータを作りました。これをトレーニングデータとします。 青い点線が \(y=sin(x)\) の曲線、グレーの円は \(y=sin(x)\) に乱数を加減したプロットです。 グレーのプロットの中心を青い点線が通っていることがわかります。 今回はグレーのプロットをトレーニングデータとして線形回帰を行います。グレーのプロットはだいぶ散らばって見えますが、回帰モデルとしては青い点線のように中心を通った曲線が描けるはずです。 トレーニングデータのデータセット名は "sinx" とします。説明変数は "x"、ターゲット変数は "y" になります。 各手法で生成したモデルで回帰を行うため、-4≦x<4 の範囲で0.01刻みで"x" の値をとった "rangex" というデータセットも用意します。 まずはCASセッションを生成し、それぞれのデータをCASにアップロードします。 import swat host = "localhost" port = 5570 user = "cas" password = "p@ssw0rd"

Machine Learning
小林 泉 0
機械学習のパラメータをオートチューニングしよう(回帰編)!

先日投稿した「機械学習のパラメータをオートチューニングしよう(分類編)!」の続きです。 今回は回帰分析をオートチューニングします。 あらまし 機械学習の課題はパラメータチューニングで、手動で最高のパラメータを探そうとすると、とても時間がかかり効率的ではありません。 SAS Viyaではパラメータチューニングを自動化するオートチューニング機能を提供しています。 オートチューニング機能を使うことで、限られた時間内、条件下で最高のパラメータを探索し、予測モデルを生成することができます。   今回やること 今回はオートチューニングを使って数値予測モデルを生成します。 使うデータは架空の銀行の金融商品販売データです。顧客の取引履歴と営業履歴から構成されており、新たな金融商品の販売数を予測するデータとなっています。 内容は以下のようになっており、約5万行、22列の構成です。 1行1お客様データとなっていて、顧客の口座情報や取引履歴、営業履歴が1行に収納されています。 ターゲット変数はcount_tgtで、これは各顧客が購入した金融商品数を表しています。 ほとんどが0(=未購入)ですが、購入されている顧客の購入数を予測するモデルを生成します。 今回はランダムフォレストを使って予測したいと思います。 ランダムフォレストは別々の決定木を複数作り、各決定木の予測値をアンサンブルして最終的な予測値とする機械学習の一種です。   まずは手動で予測 SAS Viyaでランダムフォレストを使って予測モデルを生成するにあたり、まずはCASセッションを作ってトレーニングデータとテストデータをインメモリにロードします。 # PythonからCASを操作するためのSWATライブラリをインポート import swat   # 接続先ホスト名、ポート番号、ユーザー名、パスワードを指定 host = "localhost" port = 5570 user = "cas" password = "p@ssw0rd"   # mysessionという名称のCASセッションを作成 mysession = swat.CAS(host, port, user, password)  

Machine Learning
小林 泉 0
機械学習のパラメータをオートチューニングしよう(分類編)!

機械学習で予測モデルを作るとき、課題のひとつにパラメータのチューニングがあります。 パラメータとはどういう設定値や制限値で機械学習の予測モデルを作るのかを示すものです。 料理に例えると、チャーハンを作る過程が機械学習のアルゴリズムだとすると、どういう具材をどのくらいの量入れるのかがパラメータです。 お米の品種や卵の有無、豚肉か鶏肉か、調味料の種類や量がパラメータになります。チャーハンの良し悪しはこれらパラメータの良し悪しに左右されます。おいしいチャーハンを食べるためには、具材をベストな組み合わせと量で投入する必要があります。 昼食においしいチャーハンを食べたので、チャーハンでたとえました。 話を戻すと、機械学習の決定木の深さであったり、ニューラルネットワークのニューロン数であったり、パラメータは自分で設定する必要があります。機械学習では複数のパラメータを組み合わせて、ベストなレシピを作らねば良い予測モデルは作れません。   SAS Viyaでは各種機械学習アルゴリズムを提供していますが、各機械学習にそれぞれのパラメータが用意されています。料理に例えると、メニューにチャーハンのみならず餃子、ラーメン、寿司、ステーキ、チーズケーキがあるようなものです。シェフ(≒データサイエンティスト)は全てのベストなレシピ(≒パラメータ)を探索せねばならず、労力がいります。 しかし! SAS Viyaには更に便利な機能として、オートチューニングというものが用意されています。 オートチューニングは最も良いパラメータを短い時間で探索してくれる機能です。料理に例えると、究極のチャーハンレシピをViyaが自動的に作ってくれる機能です。夢のようですね。 オートチューニングでは機械学習のパラメータを変えながら複数の予測モデルを作り、最も良い予測モデルのパラメータを探してくれるというものです。決定木だけでもパラメータは10種類以上あるのですが、それらの最良な値をみつけてくれます。 パラメータチューニングを行う際、最も安易な探索方法は各パラメータの全パターンを試すことです。全パターンを試せば、その中から最も良いものはたしかにみつかります。しかし欠点はパラメータチューニングに長い時間がかかってしまい、現実的な手法ではありません。 SAS Viyaのオートチューニングはより賢いパラメータ探索のアルゴリズムを4種類用意しています。 遺伝的アルゴリズム(Genetic Algorithm, GA):パラメータを遺伝子と見立てて、淘汰、交叉、突然変異を組み換えすことでパラメータを探索する。 ラテン超方格サンプリング(Latin HyperCube Sampling, LHS):層別サンプリングの一種で、各パラメータをn個の区間に分割し、区間からランダムに値を取り出してパラメータを探索する。 ベイズ最適化(Bayesian Optimization):説明変数と予測の間にブラックボックス関数があると仮定し、ブラックボックス関数のパラメータの分布を探索する。 ランダムサンプリング(Random Sampling):ランダムにパラメータの値を選択して探索する。 探索アルゴリズムを詳しく説明していると終わらないので説明を短くまとめました。SAS Viyaではいずれかのアルゴリズムを利用してオートチューニングを実行することができます。   今回はPythonからSAS Viyaを操作して、オートチューニングを試してみたいと思います。 まずはPython SWATをimportし、CAS Sessionを生成してデータをロードします。 # PythonからCASを操作するためのSWATライブラリをインポート import swat   # mysessionという名称のCASセッションを作成 mysession = swat.CAS(host, port, user, password)   #

Machine Learning
SAS Viyaのチートシートを作ってみました。

SAS Viyaでは購入前に使い勝手を試していただくため、無償使用版を提供しています。 https://www.sas.com/ja_jp/software/viya.html#preview もう試していただいた方もいらっしゃるかもしれませんが、SAS StudioやJupyter Notebook、Visual AnalyticsからSAS Viyaを操作して、データマイニングや機械学習を便利に試していただくことが可能です。 この無償使用環境では動作確認済みのデモプログラムを提供していますので、機械学習やプログラミングに不慣れでも迷うことはありません。   しかし機械学習を実業務で使い始めようとすると、どのプロシージャやメソッドを使えば良いのか、わからなくなることが多々あります。 SAS Viyaでは機械学習ユーザに不足ないよう、多種多様なプロシージャを提供していますが、プロシージャが増えるとどの場面でどれを使うんだっけ?と迷ってしまいます。   そこで、SAS Viyaのチートシートを作ってみました。 このチートシートを使えば、用途にあわせて必要なプロシージャを選択していくことができます。 SAS Viyaが提供するプロシージャから重要なものを掲載しています。   SAS ViyaはSAS PROCとActionsetという2種類のプログラミング仕様があります。 チートシートもPROC用とActionset用で2種類作りました。   PDF版は以下にありますので、ぜひご参照ください。 viya_cheat_sheet_20170721_jp  

1 45 46 47 48 49 56