Dans le paysage des données actuel, les entreprises sont confrontées à un certain nombre de défis différents. L’une d’elles consiste à effectuer des analyses au-dessus d’une couche de données unifiée et harmonisée disponible pour tous les consommateurs. Une couche capable de fournir les mêmes réponses aux mêmes questions, quel que soit le dialecte ou l'outil utilisé.
InterSystems IRIS Data Platform répond à cela avec un module complémentaire d'Adaptive Analytics qui peut fournir cette couche sémantique unifiée. Il existe de nombreux articles dans DevCommunity sur son utilisation via les outils BI. Cet article expliquera comment le consommer avec l'IA et également comment remettre quelques informations en retour.
Allons-y étape par étape...
Vous pouvez facilement trouver une définition sur le site Web de la communauté des développeurs
En quelques mots, il peut fournir des données sous une forme structurée et harmonisée à divers outils de votre choix pour une consommation et une analyse ultérieures. Il fournit les mêmes structures de données à divers outils de BI. Mais... il peut également fournir les mêmes structures de données à vos outils d'IA/ML !
Adaptive Analytics possède un composant supplémentaire appelé AI-Link qui établit ce pont entre l'IA et la BI.
Il s'agit d'un composant Python conçu pour permettre une interaction programmatique avec la couche sémantique dans le but de rationaliser les étapes clés du flux de travail d'apprentissage automatique (ML) (par exemple, l'ingénierie des fonctionnalités).
Avec AI-Link, vous pouvez :
Comme il s'agit d'une bibliothèque Python, elle peut être utilisée dans n'importe quel environnement Python. Y compris les cahiers.
Et dans cet article, je vais donner un exemple simple d'accès à la solution Adaptive Analytics de Jupyter Notebook à l'aide d'AI-Link.
Voici le référentiel git qui aura le Notebook complet comme exemple : https://github.com/v23ent/aa-hands-on
Les autres étapes supposent que vous ayez rempli les conditions préalables suivantes :
Tout d'abord, installons les composants nécessaires dans notre environnement. Cela téléchargera quelques packages nécessaires au fonctionnement des étapes suivantes.
'atscale' - c'est notre package principal pour se connecter
'prophet' - package dont nous aurons besoin pour faire des prédictions
pip install atscale prophet
Ensuite, nous devrons importer des classes clés représentant certains concepts clés de notre couche sémantique.
Client - classe que nous utiliserons pour établir une connexion à Adaptive Analytics ;
Projet - classe pour représenter les projets dans Adaptive Analytics ;
DataModel - classe qui représentera notre cube virtuel ;
from atscale.client import Client from atscale.data_model import DataModel from atscale.project import Project from prophet import Prophet import pandas as pd
Nous devrions maintenant être prêts à établir une connexion à notre source de données.
client = Client(server='http://adaptive.analytics.server', username='sample') client.connect()
Allez-y et spécifiez les détails de connexion de votre instance Adaptive Analytics. Une fois que l'organisation vous a demandé de répondre dans la boîte de dialogue, veuillez saisir votre mot de passe de l'instance AtScale.
Une fois la connexion établie, vous devrez ensuite sélectionner votre projet dans la liste des projets publiés sur le serveur. Vous obtiendrez la liste des projets sous forme d'invite interactive et la réponse doit être l'ID entier du projet. Et puis le modèle de données est sélectionné automatiquement s'il est le seul.
project = client.select_project() data_model = project.select_data_model()
Il existe un certain nombre de méthodes préparées par AtScale dans la bibliothèque de composants AI-Link. Ils permettent d'explorer le catalogue de données dont vous disposez, d'interroger des données et même d'ingérer certaines données. La documentation AtScale contient une référence API détaillée décrivant tout ce qui est disponible.
Voyons d'abord quel est notre ensemble de données en appelant quelques méthodes de data_model :
data_model.get_features() data_model.get_all_categorical_feature_names() data_model.get_all_numeric_feature_names()
Le résultat devrait ressembler à ceci
Une fois que nous avons regardé un peu, nous pouvons interroger les données réelles qui nous intéressent en utilisant la méthode 'get_data'. Il renverra un DataFrame pandas contenant les résultats de la requête.
df = data_model.get_data(feature_list = ['Country','Region','m_AmountOfSale_sum']) df = df.sort_values(by='m_AmountOfSale_sum') df.head()
Qui affichera votre datadrame :
Préparons un ensemble de données et montrons-le rapidement sur le graphique
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()
Sortir:
La prochaine étape serait de réellement tirer une certaine valeur du pont AI-Link - faisons une prédiction simple !
# 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'} )
Nous obtenons ici 2 ensembles de données différents : pour entraîner notre modèle et le tester.
# 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)
Et puis nous créons un autre dataframe pour accueillir notre prédiction et l'affichons sur le graphique
# 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()
Sortir:
Une fois notre prédiction en place, nous pouvons la remettre dans l'entrepôt de données et ajouter un agrégat à notre modèle sémantique pour la refléter pour les autres consommateurs. La prédiction serait disponible via n'importe quel autre outil BI pour les analystes BI et les utilisateurs professionnels.
La prédiction elle-même sera placée dans notre entrepôt de données et y sera stockée.
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')
C'est ça !
Bonne chance avec vos prédictions !
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3