Compartir vía


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