IBM SPSS Modeler にSalesforce のデータをシームレスに読み込み・リードコンバージョン予測モデルを作成:CData ODBC Driver

こんにちは。CData Software Japan リードエンジニアの杉本です。

データサイエンティスト向けのツールとして有名なIBM SPSS Modeler でCData Driver を利用し、各種クラウドサービスのデータを取り込み、予測モデル作成につなげる方法を紹介したいと思います。

IBM SPSS Modeler とは?

IBMが提供するビジュアル・データサイエンスと機械学習(ML)のソリューションです。

https://www.ibm.com/jp-ja/products/spss-modeler

SPSS Modeler はローコードで予測モデルの作成およびモデルの作成に必要なデータ加工などのプレパレーションを実施できます。

今回の記事ではこのSPSS Modeler にSalesforce のデータを取り込んで予測モデルの作成を行ってみたいと思います。

SPSS Modeler にSalesforce のデータを取り込むための課題と解決策

さて、今回の記事では前述の通りSPSS Modeler に Salesforce のデータを取り込んでいきます。 Salesforce では REST APIが提供されているので、一見連携しやすいように見えますが、SOQLを発行するインターフェースがベースになっており、単純にSPSS Modeler からはアクセスすることができません。

https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/resources_query.htm

そのため、例えば手動でCSVをダウンロードしSPSS Modeler にアップロードする、Python などでプログラムなどを開発しSalesforce のデータを吸い上げる、などの対応が必要となってしまうでしょう。

そこで今回の記事ではこのボトルネックを「CData ODBC Driver」を活用することで解消します。

https://www.cdata.com/jp/odbc/

SPSS Modeler ではデータベース接続機能により、ODBC を経由して各種RDB のデータ取り込みをサポートしています。

このODBC 接続とCData ODBC Driver を組み合わせることで、SPSS Modeler で特別な開発やPython でのプログラミングなどをすることなく、Salesforfce などの各種クラウドサービスへの接続が可能になります。

なお、今回のシナリオでは Salesforce を例に紹介していますが、kintone や Marketo・Amazon Marketplace といったSaaS から、MongoDB やDynamoDB といったNoSQL まで、幅広いデータソースに対してCData ODBC Driver で接続が可能です。

https://www.cdata.com/jp/odbc/

とは言っても、説明だけではイメージできない部分もあると思うので、実際に連携を試してみましょう。

CData Salesforce ODBC Driver のインストール

最初にCData Salesforce ODBC Driver を対象のマシンにインストールします。

以下のURL から30日間のトライアルがダウンロードできます。

https://www.cdata.com/jp/drivers/salesforce/odbc/

インストーラーを入手後、対象のマシンでセットアップを進めていきます。

セットアップが完了すると、以下のようにODBC DSNの接続設定画面が表示されるので、Salesforce への認証に必要な情報を入力します。

プロパティ

設定値

Auth Scheme

Basic

User

Salesforce ログインメールアドレス

Password

Salesforce ログインパスワード

Security Token

Salesforce で取得したトークン

接続完了後、メタデータタブから利用できるテーブル・ビューの情報を確認できます。

ここで予めSalesforce のどのオブジェクト、項目を利用するか確認しておくと良いでしょう。

SPSS Modeler を立ち上げて新規ストリームを作成

それではSPSS Modeler を使ってSalesforce のデータを取り込んでみましょう。

Windows のスタートメニューから「IBM SPSS Modeler Subscription」を立ち上げて、新しいストリームを作成します。

データベース入力を追加

まず「入力」タブにある「データベース」をストリーム上に配置します。

配置したアイコンをダブルクリックするとデータベースの接続設定画面が出てくるので「データソース」から「新規データベース接続の追加」をクリックします。

すると以下のようにODBC DSNの一覧が表示されるので、先程構成したSalesforce のDSNを選択して、「接続」をクリックしましょう。

ユーザー名・パスワードなどの認証情報は事前にすでに入力してあるので、空白のままで構いません。

これでSalesforce への接続を確立できます。

接続を追加したら、どんなデータを取り込むのか、テーブルまたはSQLクエリーで設定します。

とりあえず手軽に取り込めるテーブル名での指定を行ってみます。「データの選択」をクリックし

表示されたテーブル・ビューの一覧の中から取り込みたい対象のテーブルを選択しましょう。

フィルター・データ型の設定・プレビュー

あとはフィルター条件として、どの項目を取り込むかどうかという設定や

モデル作成の際に利用するデータ型やロールを設定すればOKです。

データのプレビューを確認すると、以下のようにSalesforce のデータを確認できました。

せっかくなので、「データ検査」にも繋げて、データの傾向も確認してみましょう。

以下のように各項目のデータの最小・最大・平均、有効な値かどうかなどが確認できます。

このようにとてもシンプルな手順でSalesforce のデータをSPSS Modeler に取り込むことができました。

実際に予測モデルを作成してみる

それでは簡単なシナリオですが、Salesforce のデータを使って、リードのコンバージョン評価を行う予測モデルを作ってみたいと思います。

以下のSalesforceのリードオブジェクトに存在する年間売上やリードソース、従業員などの情報をもとに、このリードが取引先としてコンバートするかどうかを予測するモデルにしたいと思います。

リードソースはわかりやすいように二値化し、予測の対象になるStatusは「Closed - Converted」になったデータをもとにしたいと思います。

SPSS Modeler ではデータ加工もお手の物ですが、今回はせっかくなのでデータベース接続の機能を活かして、SQLで記述してみました。

SELECT Id,
CONTAINS(LeadSource,'WEB') LeadSource_Web, 
CONTAINS(LeadSource,'Purchased List') LeadSoure_PurchasedList,
CONTAINS(LeadSource,'Phone Inquiry') LeadSource_PhoneInquiry,
CONTAINS(LeadSource,'Partner Referral') LeadSource_PartnerReferral,
CAST(AnnualRevenue AS bigint) AnnualRevenue,
NumberOfEmployees,
CONTAINS(Status,'Closed - Converted') Converted,
FROM Lead;

これを以下のようにデータベース接続で指定します。

フィルターではすべての項目を対象にし

データ型の尺度などを適切に設定しておきます。また「ロール」の項目として「Converted」のフィールドを「対象」に設定しておきます。

合わせて「値の読み込み」も実施しておきましょう。

「データのプレビュー」で取得結果も確認しておきます。

データベース接続の設定が完了したら、「モデル作成」のタブから利用するモデルを繋げます。今回は自動分類を使ってみました。

自動分類では対象とするモデルを選択して、学習を実施できます。今回は「C5」「ロジスティック回帰」「ニューラルネット」を選択してみましたが、皆さんのユースケースに合わせて選択してみてください。

設定が完了したら「実行」ボタンをクリックして、モデル作成を進めます。

以下のようにモデルのアイコンが表示されれば作成完了です。

作成されたモデルの詳細を確認するとモデルの精度など細かい結果が確認できます。

おわりに

このようにCData ODBC Driver を利用することで、各種クラウドサービスのデータをSPSS Modeler に取り込んで、活用できるようになります。

CData では Salesforce 以外にもODBC Driver を多数提供しています。Kintone や HubSpot、Sansanなど様々なデータソースをサポートしているので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

https://www.cdata.com/jp/odbc/

ご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。

https://www.cdata.com/jp/support/submit.asp

トライアル・お問い合わせ

関連コンテンツ