microsoftml.rx_predict: Pontuações usando um modelo Microsoft de aprendizagem automática

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

A pontuação por instância reporta resultados numa fonte de data frame ou revoscalepy usando um modelo treinado de Microsoft ML Machine Learning com a fonte arevoscalepydata.

Detalhes

Os seguintes itens são reportados na saída por defeito: pontuação em três variáveis para os classificadores binários: PredictedLabel, Score e Probability; a Pontuação para oneClassSvm e classificadores de regressão; PredictedLabel para classificadores Multi-class, mais uma variável para cada categoria precedida pela Pontuação.

Arguments

modelo

Um objeto de informação do modelo devolvido de um modelo microsoftml. Por exemplo, um objeto devolvido de rx_fast_trees ou rx_logistic_regression.

dados

Um objeto fonte de dados revoscalepy , um quadro de dados ou o caminho para um .xdf ficheiro.

output_data

Texto de saída ou nome de ficheiro xdf ou um RxDataSource com capacidades de escrita para armazenar dados transformados. Se não houver, é devolvida uma trama de dados. O valor predefinido é None.

write_model_vars

Se True, as variáveis do modelo são escritas no conjunto de dados de saída além das variáveis de pontuação. Se variáveis do conjunto de dados de entrada forem transformadas no modelo, as variáveis transformadas também são incluídas. O valor predefinido é False.

extra_vars_to_write

None ou vetor de carácter de variáveis adicionais nomes dos dados de entrada para incluir no output_data. Se write_model_vars for True, variáveis do modelo também são incluídas. O valor predefinido é None.

suffix

Uma cadeia de caracteres que especifica o sufixo para adicionar a(s) variável(s) de pontuação criada(s) ou None não existe sufixo. O valor predefinido é None.

substituir

Se True, um existente output_data for sobrescrito; se False um existente output_data não for sobrescrito. O valor predefinido é False.

data_threads

Um inteiro que especifica o grau desejado de paralelismo no pipeline de dados. Se não for nenhum, o número de threads usados é determinado internamente. O valor predefinido é None.

blocks_per_read

Especifica o número de blocos a ler para cada bloco de dados lido da fonte de dados.

report_progress

Um valor inteiro que especifica o nível de reporte sobre o progresso do processamento da linha:

  • 0: Não há progresso reportado.

  • 1: o número de linhas processadas é impresso e atualizado.

  • 2: as linhas processadas e os tempos são reportados.

  • 3: linhas processadas e todos os tempos são reportados.

O valor predefinido é 1.

verbose

Um valor inteiro que especifica a quantidade de saída desejada. Se 0, não é impressa nenhuma saída detalhada durante os cálculos. Valores inteiros de 1 para 4 fornecer quantidades crescentes de informação. O valor predefinido é 1.

compute_context

Define o contexto em que os cálculos são executados, especificado com uma revoscalpy válida. RxComputeContext. Atualmente local e revoscalepy. São suportados contextos de computação RxInSqlServer .

Kargs

Argumentos adicionais enviados ao motor de computação.

Devoluções

Uma trama de dados ou uma revoscalpy. O objeto RxDataSource representa os dados de saída criados. Por defeito, a saída dos classificadores binários de pontuação inclui três variáveis: PredictedLabel, , e Probability; rx_oneclass_svm e a regressão inclui uma variável: Score; e os classificadores multiclasse incluem PredictedLabel mais uma variável para cada categoria precedida por ScoreScore. Se for fornecido a, suffix é adicionado ao final destes nomes das variáveis de saída.

Exemplo de classificação binária

'''
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))

Saída:

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

Exemplo de regressão

'''
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)

Saída:

'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