microsoftml.rx_predict: asigna una puntuación con un modelo de Machine Learning de Microsoft
Uso
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)
Descripción
Notifica los resultados de puntuación por instancia en un marco de datos o un origen de datos de revoscalepy con un modelo de Machine Learning de Microsoft ML entrenado con el origen arevoscalepydata.
Detalles
Los siguientes elementos se notifican en la salida de manera predeterminada: puntuación en tres variables para los clasificadores binarios: PredictedLabel, Score y Probability; puntuación para los clasificadores oneClassSvm y de regresión; PredictedLabel para los clasificadores de varias clases, además de una variable para cada categoría antepuesta por la puntuación.
Argumentos
model
Objeto de información del modelo devuelto desde un modelo microsoftml.
Por ejemplo, un objeto devuelto desde rx_fast_trees
o rx_logistic_regression
.
datos
Objeto de origen de datos de revoscalepy, marco de datos o ruta de acceso a un archivo .xdf
.
output_data
Texto de salida o nombre de archivo xdf o RxDataSource
con funcionalidades de escritura en las que almacenar los datos transformados. Si es None, se devuelve un marco de datos. El valor predeterminado es None.
write_model_vars
Si es True
, las variables del modelo se escriben en el conjunto de datos de salida además de las variables de puntuación.
Si las variables del conjunto de datos de entrada se transforman en el modelo, también se incluyen las variables transformadas. El valor predeterminado es False
.
extra_vars_to_write
None
o vector de caracteres de nombres de variables adicionales de los datos de entrada que se incluirán en output_data
. Si write_model_vars
es True
, también se incluyen las variables del modelo. El valor predeterminado es None
.
sufijo
Cadena de caracteres que especifica el sufijo que se va a anexar a las variables de puntuación creadas o None
si no hay sufijo. El valor predeterminado es None
.
sobrescribir
Si es True
, se sobrescribe un output_data
existente; si es False
, no se sobrescribe un output_data
existente. El valor predeterminado es False
.
data_threads
Entero que especifica el grado de paralelismo deseado en la canalización de datos. Si es None, el número de subprocesos que se usa se determina internamente. El valor predeterminado es None.
blocks_per_read
Especifica el número de bloques que se leerán para cada fragmento de datos leídos del origen de datos.
report_progress
Valor entero que especifica el nivel de notificación del progreso del procesamiento de filas:
0
: no se notifica el progreso.1
: se imprime y actualiza el número de filas procesadas.2
: se notifican las filas procesadas y los intervalos.3
: se notifican las filas procesadas y todos los intervalos.
El valor predeterminado es 1
.
verbose
Valor entero que especifica la cantidad de salida deseada.
Si es 0
, no se imprime ninguna salida detallada durante los cálculos. Los valores enteros de 1
a 4
proporcionan cantidades crecientes de información.
El valor predeterminado es 1
.
compute_context
Establece el contexto en el que se ejecutan los cálculos, especificado con revoscalepy.RxComputeContext. Actualmente, se admiten los contextos de proceso local y revoscalepy.RxInSqlServer.
kargs
Argumentos adicionales que se envían al motor de proceso.
Devoluciones
Marco de datos u objeto revoscalepy.Revoscalepy.RxDataSource que representa los datos de salida creados. De forma predeterminada, la salida de la puntuación de los clasificadores binarios incluye tres variables: PredictedLabel
, Score
y Probability
; rx_oneclass_svm
y la regresión incluyen una variable: Score
; y los clasificadores de varias clases incluyen PredictedLabel
más una variable para cada categoría antepuesta por Score
. Si se proporciona suffix
, se agrega al final de estos nombres de variable de salida.
Vea también
rx_featurize
, revoscalepy.rx_data_step, revoscalepy.rx_import.
Ejemplo de clasificación binaria
'''
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))
Salida:
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
Ejemplo de regresión
'''
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)
Salida:
'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