Published on

August 28, 2020

Utilisation de l’apprentissage automatique pour prédire l’espérance de vie et les dépenses de santé dans SQL Server

En tant que data scientist travaillant pour une compagnie d’assurance, l’une de vos tâches peut consister à prédire l’espérance de vie d’un pays donné pour les prochaines années, ainsi que les dépenses de santé correspondantes et la population. Dans cet article de blog, nous allons explorer comment vous pouvez utiliser SQL Server pour y parvenir en utilisant des techniques d’apprentissage automatique.

Mise en place de l’environnement

Avant de commencer, assurez-vous d’avoir SQL Server installé sur votre machine. Vous pouvez télécharger et installer la dernière version de SQL Server depuis le site officiel de Microsoft. Une fois installé, ouvrez SQL Server Management Studio (SSMS) pour commencer à travailler avec la base de données.

Chargement de l’ensemble de données

La première étape consiste à charger l’ensemble de données dans SQL Server. Vous pouvez obtenir les données sur l’espérance de vie et les dépenses de santé à partir de sources fiables telles que Our World In Data. Téléchargez l’ensemble de données au format CSV et enregistrez-le dans un emplacement accessible à votre instance SQL Server.

Ensuite, ouvrez SSMS et connectez-vous à votre instance SQL Server. Créez une nouvelle base de données et une nouvelle table pour stocker l’ensemble de données. Utilisez la requête SQL suivante pour créer la table :

CREATE TABLE LifeExpectancy (
    Country VARCHAR(100),
    Year INT,
    LifeExpectancy FLOAT,
    HealthcareExpenditure FLOAT,
    Population INT
);

Une fois la table créée, vous pouvez utiliser l’Assistant d’importation et d’exportation SQL Server pour charger les données du fichier CSV dans la table. Suivez les instructions de l’assistant pour faire correspondre les colonnes du fichier CSV aux colonnes correspondantes de la table.

Exploration de l’ensemble de données

Après avoir chargé l’ensemble de données, vous pouvez commencer à explorer les données à l’aide de requêtes SQL. Par exemple, vous pouvez récupérer l’espérance de vie moyenne et les dépenses de santé moyennes pour chaque pays à l’aide de la requête suivante :

SELECT Country, AVG(LifeExpectancy) AS AvgLifeExpectancy, AVG(HealthcareExpenditure) AS AvgHealthcareExpenditure
FROM LifeExpectancy
GROUP BY Country;

Cette requête vous donnera l’espérance de vie moyenne et les dépenses de santé moyennes pour chaque pays de l’ensemble de données.

Construction du modèle d’apprentissage automatique

Maintenant que nous avons chargé l’ensemble de données dans SQL Server, nous pouvons construire un modèle d’apprentissage automatique pour prédire l’espérance de vie et les dépenses de santé pour un pays donné. SQL Server offre des capacités d’apprentissage automatique intégrées grâce à la fonctionnalité Machine Learning Services.

Tout d’abord, activez la fonctionnalité Machine Learning Services dans SQL Server en exécutant la requête SQL suivante :

EXEC sp_configure 'external scripts enabled', 1;
RECONFIGURE;

Ensuite, créez une procédure stockée qui entraînera le modèle d’apprentissage automatique à l’aide de l’ensemble de données. La procédure stockée devrait prendre le nom du pays en entrée et renvoyer l’espérance de vie et les dépenses de santé prédites pour ce pays. Voici un exemple de ce à quoi pourrait ressembler la procédure stockée :

CREATE PROCEDURE PredictLifeExpectancy
    @Country VARCHAR(100),
    @LifeExpectancy FLOAT OUTPUT,
    @HealthcareExpenditure FLOAT OUTPUT
AS
BEGIN
    DECLARE @Script NVARCHAR(MAX);
    SET @Script = N'
        DECLARE @Model VARBINARY(MAX);
        DECLARE @Predictions TABLE (LifeExpectancy FLOAT, HealthcareExpenditure FLOAT);

        -- Entraîner le modèle
        EXEC sp_execute_external_script
            @language = N'Python',
            @script = N'
                import pandas as pd
                from sklearn.linear_model import LinearRegression

                # Charger l'ensemble de données
                data = pd.read_sql("SELECT Year, LifeExpectancy, HealthcareExpenditure FROM LifeExpectancy WHERE Country = ''" + @Country + "''", conn)

                # Diviser les données en caractéristiques et cible
                X = data[["Year"]]
                y_life_expectancy = data[["LifeExpectancy"]]
                y_healthcare_expenditure = data[["HealthcareExpenditure"]]

                # Entraîner le modèle de régression linéaire
                model_life_expectancy = LinearRegression()
                model_life_expectancy.fit(X, y_life_expectancy)

                model_healthcare_expenditure = LinearRegression()
                model_healthcare_expenditure.fit(X, y_healthcare_expenditure)

                # Faire des prédictions
                predictions_life_expectancy = model_life_expectancy.predict(X)
                predictions_healthcare_expenditure = model_healthcare_expenditure.predict(X)

                # Stocker les prédictions dans la table
                predictions = pd.DataFrame({"LifeExpectancy": predictions_life_expectancy.flatten(), "HealthcareExpenditure": predictions_healthcare_expenditure.flatten()})
                OutputDataSet = predictions
            ',
            @input_data_1 = N'SELECT 1 AS Dummy',
            @input_data_1_name = N'Dummy',
            @output_data_1_name = N'OutputDataSet',
            @params = N'@Country VARCHAR(100)',
            @Country = @Country,
            @output_data_1_table = @Predictions OUTPUT;

        -- Obtenir les prédictions
        SELECT TOP 1 @LifeExpectancy = LifeExpectancy, @HealthcareExpenditure = HealthcareExpenditure
        FROM @Predictions;
    ';

    EXEC sp_executesql @Script;
END;

Avec la procédure stockée en place, vous pouvez maintenant l’appeler pour faire des prédictions pour un pays spécifique. Voici un exemple de la façon d’appeler la procédure stockée :

DECLARE @LifeExpectancy FLOAT, @HealthcareExpenditure FLOAT;

EXEC PredictLifeExpectancy
    @Country = 'France',
    @LifeExpectancy = @LifeExpectancy OUTPUT,
    @HealthcareExpenditure = @HealthcareExpenditure OUTPUT;

SELECT @LifeExpectancy AS PredictedLifeExpectancy, @HealthcareExpenditure AS PredictedHealthcareExpenditure;

Cette requête renverra l’espérance de vie et les dépenses de santé prédites pour le pays ‘France’.

Conclusion

Dans cet article de blog, nous avons exploré comment utiliser SQL Server pour prédire l’espérance de vie et les dépenses de santé en utilisant des techniques d’apprentissage automatique. En exploitant les capacités d’apprentissage automatique intégrées de SQL Server, vous pouvez facilement construire et déployer des modèles d’apprentissage automatique directement dans la base de données. Cela vous permet d’effectuer des analyses avancées et de faire des prédictions sans avoir besoin d’exporter des données vers des outils ou des plateformes externes.

En combinant la puissance de SQL Server et de l’apprentissage automatique, vous pouvez obtenir des informations précieuses et prendre des décisions éclairées en fonction des données disponibles.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.