microsoftml.rx_predict: Pontuações usando um modelo de aprendizado de máquina 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

A pontuação por instância relatórios resulta em um data frame ou fonte de dados 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 padrão: 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 multiclasse, mais uma variável para cada categoria anteposta pela Pontuação.

Argumentos

modelo

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

dados

Um objeto fonte de dados revoscalepy , um data frame ou o caminho para um .xdf arquivo.

output_data

Texto de saída ou nome de arquivo xdf ou com RxDataSource capacidades de gravação para armazenar dados transformados. Se não houver nenhum, um quadro de dados é retornado. O valor padrão é None.

write_model_vars

Se True, variáveis no 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 padrão é False.

extra_vars_to_write

None ou vetor de caracteres 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 padrão é None.

sufixo

Uma string de caracteres especificando o sufixo para adicionar a(s) variável(s) de pontuação criada(s) ou None em there não há sufixo. O valor padrão é None.

substituir

Se True, um existente output_data é sobrescrevido; se False um existente output_data não for sobrescrevido. O valor padrão é 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 padrão é None.

blocks_per_read

Especifica o número de blocos a serem lidos para cada parte dos dados lidos da fonte de dados.

report_progress

Um valor inteiro que especifica o nível de relatório sobre o progresso do processamento de linhas:

  • 0: nenhum progresso é relatado.

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

  • 2: linhas processadas e intervalos são relatados.

  • 3: linhas processadas e todos os intervalos são relatados.

O valor padrão é 1.

detalhada

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

compute_context

Define o contexto no qual os cálculos são executados, especificado com um revoscalepy válido. RxComputeContext. Atualmente local e revoscalepy. Há suporte para contextos de computação RxInSqlServer .

kargs

Argumentos adicionais enviados ao mecanismo de computação.

Returns

Um quadro de dados ou uma revoscalpia. Objeto RxDataSource representando os dados de saída criados. Por padrão, a saída dos classificadores binários de pontuação inclui três variáveis: PredictedLabel, Score, e Probability; rx_oneclass_svm e regressão inclui uma variável: Score; e classificadores multiclasse incluem PredictedLabel mais uma variável para cada categoria anteposta por Score. Se a suffix for fornecido, ele é adicionado ao final desses 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