今日のデータ環境において、企業はさまざまな課題に直面しています。その 1 つは、すべての消費者が利用できる、統合され調和されたデータ レイヤー上で分析を行うことです。使用されている方言やツールに関係なく、同じ質問に対して同じ回答を提供できるレイヤー。
InterSystems IRIS Data Platform は、この統合されたセマンティック レイヤーを提供できる Adaptive Analytics のアドオンでこの問題に答えます。 DevCommunity には、BI ツール経由での使用に関する記事がたくさんあります。この記事では、AI を使用してそれを活用する方法と、洞察を元に戻す方法について説明します。
一歩ずつ進んでいきましょう...
開発者コミュニティ Web サイトで定義を簡単に見つけることができます
一言で言えば、データを構造化され調和された形式で、選択したさまざまなツールに配信して、さらなる利用と分析を行うことができます。同じデータ構造をさまざまな BI ツールに提供します。しかし...同じデータ構造を AI/ML ツールに提供することもできます!
Adaptive Analytics には、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()
出力:
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:
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>
That is it!
Good luck with your predictions!
以上がAI/ML とアダプティブ アナリティクス ソリューションの橋渡しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。