This blog focuses on using SASPy for modeling and machine learning.
Tag: Python
Parts 1 and 2 of this blog post discussed exploring and preparing your data using SASPy. To recap, Part 1 discussed how to explore data using the SASPy interface with Python. Part 2 continued with an explanation of how to prepare your data to use it with a machine-learning model.
Bringing the power of SAS to your Python scripts can be a game changer. An easy way to do that is by using SASPy, a Python interface to SAS allowing Python developers to use SAS® procedures within Python. However, not all SAS procedures are included in the SASPy library. So,
Site relaunches with improved content, organization and navigation. In 2016, a cross-divisional SAS team created developer.sas.com. Their mission: Build a bridge between SAS (and our software) and open source developers. The initial effort made available basic information about SAS® Viya® and integration with open source technologies. In June 2018, the
In just over six months, football fans across Europe face a logistical maze: how to follow their favourite teams from stadium to stadium as games are played all over the continent. We described the challenge and optimisation approach we took in a separate piece. In this gallery, we walk
The “last mile” is well known in telecommunications and supply chains. Now we face it in the analytical world as well. Read why!
Generating a word cloud (also known as a tag cloud) is a good way to mine internet text. Word (or tag) clouds visually represent the occurrence of keywords found in internet data such as Twitter feeds.
なぜ“sasctl”が必要なのか? オープンソースとの統合性はSAS Viyaの一つの重要な製品理念であり、そのための機能拡張を継続的に行っています。その一環として”sasctl”という新しいパッケージがリリースされました。SAS Viyaでは従来から、PythonからViyaの機能を使用するために”SWAT”パッケージを提供しており、SAS Viyaのインメモリー分析エンジン(CAS)をPythonからシームレスに活用し、データ準備やモデリングをハイパフォーマンスで実行することができるようになっていました。しかし、データ準備やモデル開発は、アナリティクス・ライフサイクル(AI&アナリティクスの実用化に不可欠なプロセス)の一部のパートにすぎません。そこで、開発されたモデルをリポジトリに登録・管理して、最終的に業務に実装するためのPython向けパッケージとして”sasctl”が生まれたのです。 sasctlの概要 sasctlで提供される機能は、大まかに、3つのカテゴリーに分けられます。 また、この3つのカテゴリーは、お互いに依存する関係を持っています。 1.セッション sasctlを使用する前に、まずSAS Viyaのサーバーに接続する必要があります。(この接続は、ViyaマイクロサービスのRESTエンドポイントに対して行われることに注意してください) SAS Viyaのサーバーへの接続は、セッションのオブジェクトを生成することにより行われます。 >>> from sasctl import Session >>> sess = Session(host, username, password) この時点で、sasctlはViya環境を呼び出して認証し、この後のすべての要求に自動的に使用される認証トークンを受け取りました。 ここからは、このセッションを使用してViyaと通信します。 2.タスク タスクは一般的に使用される機能を意味し、可能な限りユーザーフレンドリーになるように設計されています。各タスクは、機能を実現するために、内部的にViya REST APIを複数回呼び出しています。例えば、register_modelタスクではREST APIを呼び出し、下記の処理を実行しています: リポジトリの検索 プロジェクトの検索 プロジェクトの作成 モデルの作成 モデルのインポート ファイルのアップロード その目的としては、ユーザーがPythonを使って、アナリティクス・ライフサイクルで求められるタスクを実行する際に、sasctlの単一のタスクを実行するだけで済むようにすることです。 >>> from sasctl.tasks import register_model >>> register_model(model, 'My Model', project='My Project') 今後も継続的に新しいタスクを追加していきますが、現在のsasctlには下の2つのタスクを含まれています:
This article continues a series that began with Machine learning with SASPy: Exploring and preparing your data (part 1). Part 1 showed you how to explore data using SASPy with Python. Here, in part 2, you will learn how to begin to prepare your data to use it within a
This series of videos spotlights a very powerful API that lets you use Python while also having access to the power of SAS Deep Learning.
One of the features of SAS Grid Manager (and SAS Grid Manager for Platform) introduced in SAS 9.4 M6 is the capability for the grid provider software to handle open-source workloads in addition to traditional SAS jobs. In this post, we’ll take a look at the steps required to get your SAS Grid Manager environment set up to utilize this functionality, and we’ll demonstrate the process of submitting Python code for execution in the SAS Grid.
SASPy is a powerful Python library that interfaces with SAS and can help with your machine-learning solutions. SASPy was created for Python programmers to leverage the power of SAS within their Python scripts. If you are not familiar with SASPy, see the following resources: Introducing SASPy: Use Python code to
Editor's Note: This article was translated and edited by SAS USA and was originally written by Makoto Unemi. The original text is here. SAS previously provided SAS Scripting Wrapper for Analytics Transfer (SWAT), a package for using SAS Viya functions from various general-purpose programming languages such as Python. In addition
今回は「オペレーショナル・アナリティクス for Data Scientist」をメインテーマとしてご紹介します。企業で分析業務を行うデータサイエンティストの皆様はご存知の通り、モデルは開発しただけでは意味がありません。そのモデルを業務に実装(デプロイ)してはじめて、ビジネス課題を解決し、価値を創出することができるわけです。SASが長年蓄積してきたナレッジをご覧ください。 1.Using SAS® Viya® to Implement Custom SAS® Analytics in Python: A Cybersecurity Example この論文は、SASの分析機能により支えられているプロダクションレベルのアナリティクスソリューションを開発しようとしているデータサイエンティストを対象としています。本文では、SAS ViyaとCloud Analytics Service(CAS)に基づく、CASの構築基盤とサイバーセキュリティを説明します。そして、SASアナリティクスを本番環境でPythonで実装する方法を説明します。 2.What’s New in FCMP for SAS 9.4 and SAS Viya この論文では、下記いくつかポイントをメインとして議論していきます。まず、SASが提供しているFunctionコンパイラー(FCMP)の新しい特徴を紹介し、それから主にFCMPアクションセットを中心とし、リアルタイムアナリティクススコアリングコンテナ(ASTORE)とPythonのインテグレーションについても説明します。それらの説明により、SASの新しいテクノロジーに対し、更なる理解を頂けることを期待しています。 3.Influencer Marketing Analytics using SAS® Viya® この論文はSAS Viyaを使って、マーケティングアナリティクスを行う事例を紹介します。近来、マーケティングはますますインフルエンサーが大きな役割をしめるようになってきています。それらのインフルエンサーたちはソーシャルメディアのコンテンツ作成者であり、多くのフォロワーを持ち、人々の意見に影響を与え、購入を検討する人々にも影響を与えています。インフルエンサーマーケティングは、より伝統的なマーケティングチャンネルと同じようにコストがかかるため、企業にとって最も効果的なインフルエンサーを選択することは非常に重要です。 こういった背景において、この論文では、ソーシャルメディアで本当に影響力をもつ人、そしてその影響程度はなにかについて分析することを目指しています。ケーススタディは、感情面の影響を与えることに焦点を当てています。また、多くのフォロワーを持つインフルエンサーとその色んな投稿とアクティビティを分析します。実施するには、Pythonのライブラリとコードが使用されます。次に、彼らのアクティビティとネットワークを分析して、それらの影響範囲を分析します。これらの分析には、SAS Viyaのテキストおよびネットワーク分析機能が使用されます。データ収集ステップ(Python)はクライアントとしてJupyter Notebookを使用していますが、分析ステップは主にSAS Visual Text Analytics(Model Studio)とSAS Visual Analyticsを使用して行われています。 4.Take
前回に引き続き、SAS Global Forum 2019で公開された論文をご紹介します。今回は、SASユーザを含め、SAS言語とオープンソース言語の機能を共に活用することで、様々なビジネス課題に対応できるようなコーディング事例をいくつかピックアップします。 1.Deep Learning with SAS® and Python: A Comparative Study ご存知の通り、SASはディープランニングに関する専門性の高いかつ豊富な機能と製品を提供しています。この論文では、SASとPythonに対し、それぞれ違うデータタイプ(例えば:構造化と非構造化、イメージ、テキスト、シーケンシャルデータ等々)を使ったディープラーニングのモデリングを比較する論文となります。主にSAS環境でのディープランニングフレームワーク、そして、SASとPython言語のディープランニングプログラミングの違いによって、それぞれのメリットとデメリットの紹介となります。 2.Utilization of Python in clinical study by SASPy Pythonは近年最も使われているプログラミング言語になってきました。そして現在、機械学習とAI領域でもよく使われています。Pythonの一番のアドバンテージはその豊かなライブラリを通じ、多種多様な分析をインプリメントできることです。SASは臨床研究領域で最も強力な分析製品でありながら、さらにPythonを使うことによって、そのレポーティング機能、例えば、データ管理、データ可視化を拡張できます。これもSASプログラマーユーザのキャリアに対し、潜在的なメリットです。その様な背景において、SASPyはその可能性を実現します。SASPyはPythonコードの中でSASのセッションをスタートできるPythonパッケージライブラリとなります。この論文では、基本的なSASPyの使用方法とSASのデータセットを処理するヒントについて紹介しています。そして、Pythonを使って、臨床研究で使えそうなレポーティング機能について検討します。 3.Everything is better with friends: Executing SAS® code in Python scripts with SASPy SASPyはSASがPythonプログラミング用に開発したモジュールで、SASシステムに代わるインタフェースを提供しています。SASPyを通じて、SASプロシージャはPythonスクリプトと構文で実行することができ、かつ、SASデータセットとそれに相当するPythonデータフレームの間にデータを転送することも可能です。それにより、SASプログラマーはPythonの柔軟性を利用してフロー制御を行うことができ、PythonプログラマーはSAS分析をスクリプトに組み込むこともできます。この論文では、Pythonスクリプト内で通常のSASコードとSASPyの両方を使用した一般的なデータ分析タスクの例を幾つか紹介し、それぞれの重要なトレードオフを強調し、多種プログラミング言語ユーザになれることの価値を強調しています。SAS University Edition用のJupyterLabインタフェースを使用し、それらの例を再現するための説明も含まれています。それらのSASとPythonのインテグレーション例はJupyter Notebookとしてダウンロードできます。 ダウンロード:https://github.com/saspy-bffs/sgf-2019-how 4.Modeling with Deep Recurrent Architectures: A Case Study of
A simple example of how you can combine SAS and open-source technologies to solve real business issues.
IT managers see the potential for cost-cutting from transitioning application development to open source software (OSS). Today, companies can hire recent college graduates with skills in open source development and avail themselves of the free software. But is all that glitters really gold? Users groups and more formal workgroups are
例年と同様に、SAS Instituteはグローバル各国でフォーラムを開催しました。日本ではSAS Forum Japanと題して6月11日に東京の六本木で開催され、また、アメリカSAS本社はダラスでSAS Global Forum 2019を開催(4/28~5/1)し、その中では多数の論文が発表されています。本シリーズでは、これらの論文の中から、OSSとSASプラットフォーム製品のユースケース、OSSコーディング開発・運用事例、クラウドアーキテクチャの設計と運用等々の注目された内容を選別した上で、4回に分けて紹介していきます。 第1回「OSS言語から活用できるオープンなSASプラットフォーム」 近年、OSS(オープンソースソフトウェア)プログラミング言語が数多くのデータサイエンティストや企業によって利用され、分析モデルが開発されています。PythonやR、Luaなどデータサイエンティストや開発者たちに好かれたプログラミング言語はアナリティクス業界に革新をもたらしました。SASはそれらのOSSユーザと企業の要望に応じ、従来のSASユーザとOSSプログラミングユーザーたちが共同作業、かつ連携できるようなプラットフォームを提供しています。 今回は、OSSユーザがどのような方法を利用し、SASプラットフォーム上で自由自在なデータ分析を行えるのかをテーマとし、SAS Global Forumで公開した論文をご紹介します。 1.Open Visualization with SAS® Viya® and Python この論文では、オープンソース言語の一つであるPythonに関し、SAS ViyaのSWAT(Scripting Wrapper for Analytics Transfer)を通じて、メインにオープンソースのグラフィックテクノロジー、特にPythonのMatplotライブラリ、そして現在主流となっているD3の可視化フレームワークとのインテグレーション技術について紹介しています。本文で用いた例は、統計プログラミングのサンプルを使って、Jupyter NotebookからSAS Viyaの機能を呼び出し、最終的に、mpld3で作られた静的なグラフを動的グラフに変更した例となります。 2.SWAT’s it all about? SAS Viya® for Python Users SASは2016の7月にPythonライブラリSWATをリリースしました。それにより、PythonユーザはSASのCASに接続して、SAS Viyaの各種機能を使えるようになりました。SWATを利用することで、SAS言語バックグラウンドを持っていないユーザには、SAS言語ユーザと同じくCASとSAS Viyaの各種機能を使用できるようになります。この論文では、Python SWATを通じて、CASセッションへ接続し、PythonからCASへデータをロードし、さらにCASアクションで実行して分析する一連作業をデモンストレーションの形で紹介します。使用するデータは、SASほかのアプリケーション、例えばVisual Analyticsなどでも利用できる様子を紹介します。 3.Deploying Models Using SAS® and Open Source 近来、機械学習と人工知能の議論はほとんどの時間がモデル開発の議論に費やされています。しかし、モデルによって得られる洞察をどのように効率的にビジネス価値創出に適用するかに関してはほとんど議論されていません。この論文では、モデルの構築に応じ、Docker、Flask、Jenkins、Jupyter、Pythonなどのオープンソースプロジェクトとの組み合わせで、SASを使用してモデルを展開するためのDevOpsプリンシパルの使用例を紹介します。例に使われている関連アプリケーションはグローバルなユーザベースを持つ資産上のレコメンド・エンジンとなります。この使用例は、セキュリティ、待ち時間、スケーラビリティ、再現性に直面する必要があることをめぐってディスカッションします。最後に、その解決策となるソリューションとその課題となる部分を含めて説明します。 4.SAS®
You can now easily embed a python script in a SAS decision with SAS Intelligent Decisioning. If you want to execute in MAS, you do not need to wrap it in DS2 anymore. The python code node does it for you. Here is how you can achieve it in less than 5 minutes.
SAS Intelligent Decisioning enables users to create, test, control versioning and trace analytically driven decisions all in one solution.
What does an analytics platform look like? We might imagine a large server with data and software used for a wide range of operational reporting, BI and data analysis. There may be development and test environments. But typically most users will be working in the same production environment, sharing the
Building a predictive model is generally not the end of the project. Indeed, there is a major difference between building a model and actually getting it ready for people to use in their products and services. Even if the purpose of the model is to increase knowledge of the data,
Fünf Antworten und eine Frage: Bei vielen Anwendungen haben sich die großen Unternehmen daran gewöhnt, dass diese zunehmend in die Cloud wandern. Das ist bei SAS als global agierendem Konzern auch nicht anders. Reisekostenabrechnung, Personalverwaltung, IT-Support – alles längst Cloud-Anwendungen. Wann aber ist es für Analytics Zeit, in die Wolke
Major European football (soccer) leagues came to an end after an intensive year. Manchester City claimed the Premier League title after a high-intensity title race against Liverpool. It is unbelievable that Liverpool would have won 25 out of the last 27 PL titles with 97 points. Luckily, the Reds
Two sayings I’ve heard countless times throughout my life are “Work smarter, not harder,” and “Use the best tool for the job.” If you need to drive a nail, you pick up a hammer, not a wrench or a screwdriver. In the programming world, this could mean using an existing
In this blog, I use a Recurrent Neural Network (RNN) to predict whether opinions for a given review will be positive or negative. This prediction is treated as a text classification example. The Sentiment Classification Model is trained using deepRNN algorithms and the resulting model is used to predict if new reviews are positive or negative.
Have you ever wondered if love at first sight really exists? And if it exists, what qualities are people drawn too? Watch any romantic comedy and you’ll see this phenomenon play out on the big screen. Which begs the question, “If it can happen to them why not me?” Let’s
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つの畳み込み層に送り込まれます。カラー画像はそれらとは別の畳み込み層に送り込まれます。
I look forward to Pi Day every year at SAS because it's a day of celebration including yummy pies and challenging games that challenge you to recall the digits after the decimal point in Pi. Plus you get to wear Pi t-shirts (I have about seven). Today, though we are going to talk about DLPy which sounds like Pi and
データサイエンティスト(以降、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に公開されているアセットを活用ください。