Share via


microsoftml.rx_predict : scores utilisant un modèle Machine Learning Microsoft

Usage

microsoftml.rx_predict(model,
    data: typing.Union[revoscalepy.datasource.RxDataSource.RxDataSource,
    pandas.core.frame.DataFrame],
    output_data: typing.Union[revoscalepy.datasource.RxDataSource.RxDataSource,
    str] = None, write_model_vars: bool = False,
    extra_vars_to_write: list = None, suffix: str = None,
    overwrite: bool = False, data_threads: int = None,
    blocks_per_read: int = None, report_progress: int = None,
    verbose: int = 1,
    compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None,
    **kargs)

Description

Les rapports de scoring par instance génèrent une trame de données ou une source de données revoscalepy à l’aide d’un modèle Machine Learning Microsoft ML formé avec la source arevoscalepydata.

Détails

Les éléments suivants sont signalés dans la sortie par défaut : scoring sur trois variables pour les classifieurs binaires : PredictedLabel, Score et Probability. Le Score pour les classifieurs oneClassSvm et de régression, PredictedLabel pour les classifieurs multiclasses, plus une variable pour chaque catégorie précédée du score.

Arguments

model

Objet d’informations de modèle retourné à partir d’un modèle microsoftml. Par exemple, un objet retourné par rx_fast_trees ou rx_logistic_regression.

data

Un objet source de données revoscalepy, une trame de données ou le chemin d’accès à un fichier .xdf.

output_data

Texte de sortie ou nom de fichier XDF ou un RxDataSource avec des fonctionnalités d’écriture pour stocker les données transformées. Si le résultat est Aucun, une trame de données est retournée. La valeur par défaut est Aucun.

write_model_vars

Si la valeur est True, les variables dans le modèle sont écrites dans le jeu de données de sortie en plus des variables de calcul de score. Si les variables du jeu de données d’entrée sont transformées dans le modèle, les variables transformées sont également incluses. La valeur par défaut est False.

extra_vars_to_write

None ou le vecteur de caractère des noms de variables supplémentaires à partir des données d’entrée à inclure dans le output_data. Si write_model_vars est True, les variables de modèle sont également incluses. La valeur par défaut est None.

suffix

Chaîne de caractères qui spécifie le suffixe à ajouter aux variables de score créées ou None en l’absence de suffixe. La valeur par défaut est None.

overwrite

Si True, output_data existant est écrasé. Si False, output_data existant n’est pas remplacé. La valeur par défaut est False.

data_threads

Entier spécifiant le degré de parallélisme souhaité dans le pipeline de données. Si aucune valeur n’est définie, le nombre de threads utilisés est déterminé en interne. La valeur par défaut est Aucun.

blocks_per_read

Spécifie le nombre de blocs à lire pour chaque segment de données lu à partir de la source de données.

report_progress

Valeur entière qui spécifie le niveau de création de rapports sur la progression du traitement de la ligne :

  • 0 : aucune progression n’est signalée.

  • 1 : le nombre de lignes traitées est imprimé et mis à jour.

  • 2 : les lignes traitées et les minutages sont signalés.

  • 3 : les lignes traitées et l’ensemble des minutages sont signalés.

La valeur par défaut est 1.

verbose

Valeur entière qui spécifie la quantité de sortie souhaitée. Si la valeur est 0, aucune sortie détaillée n’est imprimée au cours des calculs. Les valeurs entières de 1 à 4 fournissent des quantités d’informations croissantes. La valeur par défaut est 1.

compute_context

Définit le contexte dans lequel les calculs sont exécutés, spécifiés avec un contexte revoscalepy.RxComputeContext valide. Actuellement, les contextes de calcul locaux et revoscalepy.RxInSqlServer sont pris en charge.

kargs

Arguments supplémentaires envoyés au moteur de calcul.

Retours

Une trame de données ou un objet revoscalepy.RxDataSource qui représente les données de sortie créées. Par défaut, la sortie des classifieurs binaires de scoring inclut trois variables : PredictedLabel, Score et Probability. rx_oneclass_svm et la régression comprennent une variable Score et les classifieurs multiclasses incluent PredictedLabel plus une variable pour chaque catégorie précédée de Score. Si un suffix est fourni, il est ajouté à la fin de ces noms de variables de sortie.

Voir aussi

rx_featurize, revoscalepy.rx_data_step, revoscalepy.rx_import.

Exemple de classification binaire

'''
Binary Classification.
'''
import numpy
import pandas
from microsoftml import rx_fast_linear, rx_predict
from revoscalepy.etl.RxDataStep import rx_data_step
from microsoftml.datasets.datasets import get_dataset

infert = get_dataset("infert")

import sklearn
if sklearn.__version__ < "0.18":
    from sklearn.cross_validation import train_test_split
else:
    from sklearn.model_selection import train_test_split

infertdf = infert.as_df()
infertdf["isCase"] = infertdf.case == 1
data_train, data_test, y_train, y_test = train_test_split(infertdf, infertdf.isCase)

forest_model = rx_fast_linear(
    formula=" isCase ~ age + parity + education + spontaneous + induced ",
    data=data_train)
    
# RuntimeError: The type (RxTextData) for file is not supported.
score_ds = rx_predict(forest_model, data=data_test,
                     extra_vars_to_write=["isCase", "Score"])
                     
# Print the first five rows
print(rx_data_step(score_ds, number_rows_read=5))

Sortie :

Automatically adding a MinMax normalization transform, use 'norm=Warn' or 'norm=No' to turn this behavior off.
Beginning processing data.
Rows Read: 186, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 186, Read Time: 0.001, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 186, Read Time: 0.001, Transform Time: 0
Beginning processing data.
Using 2 threads to train.
Automatically choosing a check frequency of 2.
Auto-tuning parameters: maxIterations = 8064.
Auto-tuning parameters: L2 = 2.666837E-05.
Auto-tuning parameters: L1Threshold (L1/L2) = 0.
Using best model from iteration 590.
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.6058289
Elapsed time: 00:00:00.0084728
Beginning processing data.
Rows Read: 62, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0302359
Finished writing 62 rows.
Writing completed.
Rows Read: 5, Total Rows Processed: 5, Total Chunk Time: 0.001 seconds 
  isCase PredictedLabel     Score  Probability
0  False           True  0.576775     0.640325
1  False          False -2.929549     0.050712
2   True          False -2.370090     0.085482
3  False          False -1.700105     0.154452
4  False          False -0.110981     0.472283

Exemple de régression

'''
Regression.
'''
import numpy
import pandas
from microsoftml import rx_fast_trees, rx_predict
from revoscalepy.etl.RxDataStep import rx_data_step
from microsoftml.datasets.datasets import get_dataset

airquality = get_dataset("airquality")

import sklearn
if sklearn.__version__ < "0.18":
    from sklearn.cross_validation import train_test_split
else:
    from sklearn.model_selection import train_test_split

airquality = airquality.as_df()


######################################################################
# Estimate a regression fast forest
# Use the built-in data set 'airquality' to create test and train data

df = airquality[airquality.Ozone.notnull()]
df["Ozone"] = df.Ozone.astype(float)

data_train, data_test, y_train, y_test = train_test_split(df, df.Ozone)

airFormula = " Ozone ~ Solar_R + Wind + Temp "

# Regression Fast Forest for train data
ff_reg = rx_fast_trees(airFormula, method="regression", data=data_train)

# Put score and model variables in data frame
score_df = rx_predict(ff_reg, data=data_test, write_model_vars=True)
print(score_df.head())

# Plot actual versus predicted values with smoothed line
# Supported in the next version.
# rx_line_plot(" Score ~ Ozone ", type=["p", "smooth"], data=score_df)

Sortie :

'unbalanced_sets' ignored for method 'regression'
Not adding a normalizer.
Making per-feature arrays
Changing data from row-wise to column-wise
Beginning processing data.
Rows Read: 87, Read Time: 0.001, Transform Time: 0
Beginning processing data.
Warning: Skipped 4 instances with missing features during training
Processed 83 instances
Binning and forming Feature objects
Reserved memory for tree learner: 22620 bytes
Starting to train ...
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.0390764
Elapsed time: 00:00:00.0080750
Beginning processing data.
Rows Read: 29, Read Time: 0.001, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0221875
Finished writing 29 rows.
Writing completed.
   Solar_R  Wind  Temp      Score
0    290.0   9.2  66.0  33.195541
1    259.0  15.5  77.0  20.906796
2    276.0   5.1  88.0  76.594643
3    139.0  10.3  81.0  31.668842
4    236.0  14.9  81.0  43.590839