今日のデータ環境では、企業はさまざまな課題に直面しています。その 1 つは、すべての消費者が利用できる、統合され調和されたデータ層上で分析を行うことです。使用されている方言やツールに関係なく、同じ質問に対して同じ回答を提供できるレイヤー。
InterSystems IRIS Data Platform は、この統合されたセマンティック レイヤーを提供できる Adaptive Analytics のアドオンによってその問題に答えます。 DevCommunity には、BI ツール経由での使用に関する記事がたくさんあります。この記事では、AI を使用してそれを活用する方法と、洞察を元に戻す方法について説明します。
一歩ずつ進んでいきましょう...
開発者コミュニティ Web サイトで定義を簡単に見つけることができます
一言で言えば、データを構造化され調和された形式で、選択したさまざまなツールに配信して、さらなる利用と分析を行うことができます。同じデータ構造をさまざまな BI ツールに提供します。しかし...同じデータ構造を AI/ML ツールに提供することもできます!
アダプティブ アナリティクスには、AI から BI への橋渡しをする AI-Link と呼ばれる追加コンポーネントがあります。
これは、機械学習 (ML) ワークフローの主要な段階 (特徴エンジニアリングなど) を合理化する目的で、セマンティック レイヤーとのプログラムによる対話を可能にするように設計された Python コンポーネントです。
AI-Link を使用すると、次のことができます:
Pythonライブラリなので、どのPython環境でも使用できます。ノートブックを含む。
この記事では、AI-Link を利用して Jupyter Notebook から Adaptive Analytics ソリューションに到達する簡単な例を示します。
これは、例として完全なノートブックを含む git リポジトリです: https://github.com/v23ent/aa-hands-on
これ以降の手順は、次の前提条件が完了していることを前提としています。
まず、必要なコンポーネントを環境にインストールしましょう。これにより、以降の手順を実行するために必要ないくつかのパッケージがダウンロードされます。
'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
これで、データ ソースへの接続を確立する準備が整いました。
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()
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()
出力は次のようになります
少し見て回ったら、「get_data」メソッドを使用して、関心のある実際のデータをクエリできます。クエリ結果を含むパンダ データフレームが返されます。
df = data_model.get_data(feature_list = ['Country','Region','m_AmountOfSale_sum']) df = df.sort_values(by='m_AmountOfSale_sum') df.head()
データドラマが表示されます:
データセットを準備して、グラフにすぐに表示しましょう
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()
出力:
次のステップは、実際に AI-Link ブリッジから何らかの値を取得することです - 簡単な予測をしてみましょう!
# 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'} )
ここでは、モデルのトレーニングとテストのために、2 つの 異なる データセットを取得します。
# 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)
そして、予測に対応する別のデータフレームを作成し、グラフに表示します
# 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()
出力:
予測を適切に設定したら、それをデータ ウェアハウスに戻し、セマンティック モデルに集計を追加して、他の消費者に反映できます。この予測は、BI アナリストやビジネス ユーザーにとって、他の BI ツールを通じて利用できます。
予測自体はデータ ウェアハウスに配置され、そこに保存されます。
from atscale.db.connections import Iris
db = Iris(
username,
host,
namespace,
driver,
schema,
port=1972,
password=None,
warehouse_id=None
)data_model.writeback(dbconn=db,
table_name= 'SalesPrediction',
DataFrame = forecast)data_model.create_aggregate_feature(dataset_name='SalesPrediction',
column_name='SalesForecasted',
name='sum_sales_forecasted',
aggregation_type='SUM')
それです!
あなたの予想がうまくいきますように!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3