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