In der heutigen Datenlandschaft stehen Unternehmen vor einer Reihe unterschiedlicher Herausforderungen. Eine davon besteht darin, Analysen auf der Grundlage einer einheitlichen und harmonisierten Datenschicht durchzuführen, die allen Verbrauchern zur Verfügung steht. Eine Ebene, die unabhängig vom verwendeten Dialekt oder Werkzeug dieselben Antworten auf dieselben Fragen liefern kann.
Die InterSystems IRIS Data Platform beantwortet diese Frage mit einem Add-on von Adaptive Analytics, das diese einheitliche semantische Ebene bereitstellen kann. In DevCommunity gibt es viele Artikel über die Verwendung über BI-Tools. In diesem Artikel geht es darum, wie man es mit KI nutzt und wie man einige Erkenntnisse zurückgewinnt.
Gehen wir Schritt für Schritt vor...
Eine Definition finden Sie leicht auf der Website der Entwickler-Community
Kurz gesagt: Es kann Daten in strukturierter und harmonisierter Form an verschiedene Tools Ihrer Wahl zur weiteren Nutzung und Analyse liefern. Es liefert dieselben Datenstrukturen an verschiedene BI-Tools. Aber... es kann auch dieselben Datenstrukturen an Ihre KI/ML-Tools liefern!
Adaptive Analytics verfügt über eine zusätzliche Komponente namens AI-Link, die diese Brücke von KI zu BI schlägt.
Es handelt sich um eine Python-Komponente, die eine programmatische Interaktion mit der semantischen Ebene ermöglichen soll, um wichtige Phasen des maschinellen Lernworkflows (ML) zu optimieren (z. B. Feature-Engineering).
Mit AI-Link können Sie:
Da es sich um eine Python-Bibliothek handelt, kann sie in jeder Python-Umgebung verwendet werden. Einschließlich Notizbücher.
Und in diesem Artikel gebe ich ein einfaches Beispiel für die Erreichung einer Adaptive Analytics-Lösung aus Jupyter Notebook mithilfe von AI-Link.
Hier ist das Git-Repository, das das vollständige Notebook als Beispiel enthält: https://github.com/v23ent/aa-hands-on
Für die weiteren Schritte wird davon ausgegangen, dass die folgenden Voraussetzungen erfüllt sind:
Zuerst installieren wir die benötigten Komponenten in unserer Umgebung. Dadurch werden einige Pakete heruntergeladen, die für weitere Schritte erforderlich sind.
'atscale' – das ist unser Hauptpaket zum Verbinden
'Prophet' – Paket, das wir für Vorhersagen benötigen
pip install atscale prophet
Dann müssen wir Schlüsselklassen importieren, die einige Schlüsselkonzepte unserer semantischen Ebene darstellen.
Client – Klasse, die wir verwenden, um eine Verbindung zu Adaptive Analytics herzustellen;
Projekt – Klasse zur Darstellung von Projekten innerhalb von Adaptive Analytics;
DataModel – Klasse, die unseren virtuellen Würfel darstellt;
from atscale.client import Client from atscale.data_model import DataModel from atscale.project import Project from prophet import Prophet import pandas as pd
Jetzt sollten wir bereit sein, eine Verbindung zu unserer Datenquelle herzustellen.
client = Client(server='http://adaptive.analytics.server', username='sample') client.connect()
Fahren Sie fort und geben Sie die Verbindungsdetails Ihrer Adaptive Analytics-Instanz an. Sobald Sie nach der Organisation gefragt werden, antworten Sie im Dialogfeld und geben Sie dann bitte Ihr Passwort aus der AtScale-Instanz ein.
Bei bestehender Verbindung müssen Sie dann Ihr Projekt aus der Liste der auf dem Server veröffentlichten Projekte auswählen. Sie erhalten die Liste der Projekte als interaktive Eingabeaufforderung und die Antwort sollte die ganzzahlige ID des Projekts sein. Und dann wird das Datenmodell automatisch ausgewählt, wenn es das einzige ist.
project = client.select_project() data_model = project.select_data_model()
Es gibt eine Reihe von Methoden, die von AtScale in der AI-Link-Komponentenbibliothek vorbereitet wurden. Sie ermöglichen es, den vorhandenen Datenkatalog zu durchsuchen, Daten abzufragen und sogar einige Daten wieder aufzunehmen. Die AtScale-Dokumentation enthält eine ausführliche API-Referenz, die alles beschreibt, was verfügbar ist.
Sehen wir uns zunächst an, was unser Datensatz ist, indem wir einige Methoden von data_model aufrufen:
data_model.get_features() data_model.get_all_categorical_feature_names() data_model.get_all_numeric_feature_names()
Die Ausgabe sollte etwa so aussehen
Sobald wir uns ein wenig umgesehen haben, können wir die tatsächlichen Daten, an denen wir interessiert sind, mit der Methode „get_data“ abfragen. Es wird ein Pandas-DataFrame zurückgegeben, der die Abfrageergebnisse enthält.
df = data_model.get_data(feature_list = ['Country','Region','m_AmountOfSale_sum']) df = df.sort_values(by='m_AmountOfSale_sum') df.head()
Hier wird Ihr Datadrame angezeigt:
Lassen Sie uns einen Datensatz vorbereiten und ihn schnell in der Grafik anzeigen
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()
Ausgabe:
Der nächste Schritt wäre, tatsächlich einen Nutzen aus der AI-Link-Brücke zu ziehen – machen wir eine einfache Vorhersage!
# 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'} )
Wir erhalten hier 2 verschiedene Datensätze: um unser Modell zu trainieren und zu testen.
# 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)
Und dann erstellen wir einen weiteren Datenrahmen, um unsere Vorhersage aufzunehmen und sie im Diagramm anzuzeigen
# 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()
Ausgabe:
Sobald wir unsere Vorhersage getroffen haben, können wir sie zurück in das Data Warehouse stellen und unserem semantischen Modell ein Aggregat hinzufügen, um sie für andere Verbraucher widerzuspiegeln. Die Vorhersage wäre über jedes andere BI-Tool für BI-Analysten und Geschäftsanwender verfügbar.
Die Vorhersage selbst wird in unserem Data Warehouse abgelegt und dort gespeichert.
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')
Das ist es!
Viel Glück mit Ihren Vorhersagen!
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3