ホームページ > バックエンド開発 > Python チュートリアル > AI/ML とアダプティブ アナリティクス ソリューションの橋渡し

AI/ML とアダプティブ アナリティクス ソリューションの橋渡し

DDD
リリース: 2024-09-13 06:27:07
オリジナル
748 人が閲覧しました

今日のデータ環境において、企業はさまざまな課題に直面しています。その 1 つは、すべての消費者が利用できる、統合され調和されたデータ レイヤー上で分析を行うことです。使用されている方言やツールに関係なく、同じ質問に対して同じ回答を提供できるレイヤー。
InterSystems IRIS Data Platform は、この統合されたセマンティック レイヤーを提供できる Adaptive Analytics のアドオンでこの問題に答えます。 DevCommunity には、BI ツール経由での使用に関する記事がたくさんあります。この記事では、AI を使用してそれを活用する方法と、洞察を元に戻す方法について説明します。
一歩ずつ進んでいきましょう...

アダプティブ アナリティクスとは何ですか?

開発者コミュニティ Web サイトで定義を簡単に見つけることができます
一言で言えば、データを構造化され調和された形式で、選択したさまざまなツールに配信して、さらなる利用と分析を行うことができます。同じデータ構造をさまざまな BI ツールに提供します。しかし...同じデータ構造を AI/ML ツールに提供することもできます!

Adaptive Analytics には、AI から BI へのブリッジを構築する AI-Link と呼ばれる追加コンポーネントがあります。

AI-Link とは一体何ですか?

これは、機械学習 (ML) ワークフローの主要な段階 (特徴量エンジニアリングなど) を合理化する目的で、セマンティック レイヤーとのプログラムによる対話を可能にするように設計された Python コンポーネントです。

AI-Link を使用すると、次のことが可能になります。

  • 分析データ モデルの機能にプログラムでアクセスします。
  • クエリを作成し、ディメンションとメジャーを探索します。
  • ML パイプラインをフィードします。 ...結果をセマンティック レイヤーに返し、他のユーザー (Tableau や Excel など) で再度利用できるようにします。

これは Python ライブラリなので、どの Python 環境でも使用できます。ノートブックも含みます。
そしてこの記事では、AI-Link を利用して Jupyter Notebook から Adaptive Analytics ソリューションに到達する簡単な例を示します。

これは、例として完全なノートブックを含む git リポジトリです: https://github.com/v23ent/aa-hands-on

前提条件

これ以降の手順は、次の前提条件が完了していることを前提としています。

  1. Adaptive Analytics ソリューションが稼働中 (データ ウェアハウスとして IRIS Data Platform を使用)
  2. Jupyter Notebook が稼働中
  3. 1.と2.の間の接続が確立できます

ステップ 1: セットアップ

まず、必要なコンポーネントを環境にインストールしましょう。これにより、以降の手順を実行するために必要ないくつかのパッケージがダウンロードされます。
'atscale' - これは接続するメインのパッケージです
'prophet' - 予測を行うために必要なパッケージ

pip install atscale prophet
ログイン後にコピー

次に、セマンティック層のいくつかの主要な概念を表す主要なクラスをインポートする必要があります。
Client - Adaptive Analytics への接続を確立するために使用するクラス;
Project - Adaptive Analytics 内のプロジェクトを表すクラス。
DataModel - 仮想キューブを表すクラス;

from atscale.client import Client
from atscale.data_model import DataModel
from atscale.project import Project
from prophet import Prophet
import pandas as pd 
ログイン後にコピー

ステップ 2: 接続

これで、データ ソースへの接続を確立する準備がすべて整ったはずです。

client = Client(server='http://adaptive.analytics.server', username='sample')
client.connect()
ログイン後にコピー

Adaptive Analytics インスタンスの接続の詳細を指定してください。組織を尋ねられたら、ダイアログ ボックスに応答し、AtScale インスタンスからのパスワードを入力してください。

接続が確立されたら、サーバー上で公開されているプロジェクトのリストからプロジェクトを選択する必要があります。プロジェクトのリストが対話型プロンプトとして表示され、その答えはプロジェクトの整数 ID になります。そして、データ モデルが唯一の場合は自動的に選択されます。

project = client.select_project()   
data_model = project.select_data_model()
ログイン後にコピー

ステップ 3: データセットを探索する

AI-Link コンポーネント ライブラリには AtScale が用意したメソッドが多数あります。これらを使用すると、所有しているデータ カタログを探索したり、データをクエリしたり、一部のデータを取り込んだりすることもできます。 AtScale のドキュメントには、利用可能なすべてのものを説明する広範な API リファレンスが含まれています。
まず、data_model のいくつかのメソッドを呼び出して、データセットが何であるかを見てみましょう:

data_model.get_features()
data_model.get_all_categorical_feature_names()
data_model.get_all_numeric_feature_names()
ログイン後にコピー

出力は次のようになります

Bridge AI/ML with your Adaptive Analytics solution

少し見て回ったら、「get_data」メソッドを使用して、関心のある実際のデータをクエリできます。クエリ結果を含むパンダ データフレームが返されます。

df = data_model.get_data(feature_list = ['Country','Region','m_AmountOfSale_sum'])
df = df.sort_values(by='m_AmountOfSale_sum')
df.head()
ログイン後にコピー

データドラマが表示されます:

Bridge AI/ML with your Adaptive Analytics solution

データセットを準備して、グラフにすぐに表示してみましょう

import matplotlib.pyplot as plt

# We're taking sales for each date
dataframe = data_model.get_data(feature_list = ['Date','m_AmountOfSale_sum'])

# Create a line chart
plt.plot(dataframe['Date'], dataframe['m_AmountOfSale_sum'])

# Add labels and a title
plt.xlabel('Days')
plt.ylabel('Sales')
plt.title('Daily Sales Data')

# Display the chart
plt.show()
ログイン後にコピー

出力:

Bridge AI/ML with your Adaptive Analytics solution

Step 4: Prediction

The next step would be to actually get some value out of AI-Link bridge - let's do some simple prediction!

# Load the historical data to train the model
data_train = data_model.get_data(
    feature_list = ['Date','m_AmountOfSale_sum'],
    filter_less = {'Date':'2021-01-01'}
    )
data_test = data_model.get_data(
    feature_list = ['Date','m_AmountOfSale_sum'],
    filter_greater = {'Date':'2021-01-01'}
    )
ログイン後にコピー

We get 2 different datasets here: to train our model and to test it.

# For the tool we've chosen to do the prediction 'Prophet', we'll need to specify 2 columns: 'ds' and 'y'
data_train['ds'] = pd.to_datetime(data_train['Date'])
data_train.rename(columns={'m_AmountOfSale_sum': 'y'}, inplace=True)
data_test['ds'] = pd.to_datetime(data_test['Date'])
data_test.rename(columns={'m_AmountOfSale_sum': 'y'}, inplace=True)

# Initialize and fit the Prophet model
model = Prophet()
model.fit(data_train)
ログイン後にコピー

And then we create another dataframe to accomodate our prediction and display it on the graph

# Create a future dataframe for forecasting
future = pd.DataFrame()
future['ds'] = pd.date_range(start='2021-01-01', end='2021-12-31', freq='D')

# Make predictions
forecast = model.predict(future)
fig = model.plot(forecast)
fig.show()
ログイン後にコピー

Output:

Bridge AI/ML with your Adaptive Analytics solution

Step 5: Writeback

Once we've got our prediction in place we can then put it back to the data warehouse and add an aggregate to our semantic model to reflect it for other consumers. The prediction would be available through any other BI tool for BI analysts and business users.
The prediction itself will be placed into our data warehouse and stored there.

from atscale.db.connections import Iris<br>
db = Iris(<br>
    username,<br>
    host,<br>
    namespace,<br>
    driver,<br>
    schema, <br>
    port=1972,<br>
    password=None, <br>
    warehouse_id=None<br>
    )

<p>data_model.writeback(dbconn=db,<br>
                    table_name= 'SalesPrediction',<br>
                    DataFrame = forecast)</p>

<p>data_model.create_aggregate_feature(dataset_name='SalesPrediction',<br>
                                    column_name='SalesForecasted',<br>
                                    name='sum_sales_forecasted',<br>
                                    aggregation_type='SUM')<br>
</p>
ログイン後にコピー




Fin

That is it!
Good luck with your predictions!

以上がAI/ML とアダプティブ アナリティクス ソリューションの橋渡しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート