microsoftml.rx_predict: Wyniki z wykorzystaniem modelu uczenia maszynowego 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

Raporty wynikają z punktacji na instancję w ramach danych lub źródle danych revoscalepy z wykorzystaniem wytrenowanego modelu Microsoft ML Machine Learning ze źródłem arevoscalepydata.

Szczegóły

Domyślnie w wyniku raportowane są następujące elementy: punktacja dla trzech zmiennych dla klasyfikatorów binarnych: PredictedLabel, Score i Probability; wynik dla oneClassSvm i klasyfikatorów regresji; PredictedLabel dla klasyfikatorów wieloklasowych, plus zmienna dla każdej kategorii poprzedzona przez Wynik.

Arguments

model

Obiekt informacji o modelu zwrócony z modelu Microsoftml. Na przykład obiekt zwracany z rx_fast_trees lub rx_logistic_regression.

dane

Obiekt źródłowy revoskale, ramka danych lub ścieżka do pliku .xdf .

output_data

Wyjście tekstu lub nazwy pliku xdf lub z RxDataSource możliwością zapisu do przechowywania przekształconych danych. Jeśli Brak, zwrócona jest ramka danych. Wartość domyślna to Brak.

write_model_vars

Jeśli True, zmienne w modelu są zapisywane do zbioru danych wyjściowych oprócz zmiennych punktujących. Jeśli zmienne z zestawu danych wejściowych zostaną przekształcone w modelu, uwzględnia się także zmienne transformowane. Wartość domyślna to False.

extra_vars_to_write

Nonelub wektor znaków dodatkowych nazw zmiennych z danych wejściowych, które należy uwzględnić w .output_data Jeśli write_model_vars jest , Trueuwzględniane są również zmienne modelu. Wartość domyślna to None.

suffix

Ciąg znaków określający sufiks do dołączania do utworzonej zmiennej punktacji lub None in, nie ma sufiksu. Wartość domyślna to None.

zastąpić

Jeśli True, istniejące output_data jest nadpisane; jeśli False istniejące output_data nie jest nadpisane. Wartość domyślna to False.

data_threads

Liczba całkowita określająca pożądany stopień równoległości w potoku danych. Jeśli Zero, liczba użytych wątków jest ustalana wewnętrznie. Wartość domyślna to Brak.

blocks_per_read

Określa liczbę bloków do odczytu dla każdego fragmentu danych odczytywanych ze źródła danych.

report_progress

Wartość całkowita określająca poziom raportowania postępu przetwarzania wierszy:

  • 0: nie zgłoszono żadnego postępu.

  • 1: liczba przetworzonych wierszy jest drukowana i aktualizowana.

  • 2: są zgłaszane przetworzone wiersze i chronometraż.

  • 3: są zgłaszane wiersze przetworzone i wszystkie chronometraż.

Wartość domyślna to 1.

pełny

Wartość całkowita określająca ilość żądanych danych wyjściowych. Jeśli 0podczas obliczeń nie są drukowane żadne pełne dane wyjściowe. Wartości całkowite z 1 , aby 4 zapewnić coraz większe ilości informacji. Wartość domyślna to 1.

compute_context

Ustawia kontekst, w którym są wykonywane obliczenia określone przy użyciu prawidłowej wersji revoscalepy. RxComputeContext. Obecnie lokalne i revoscalepy. Obsługiwane są konteksty obliczeniowe RxInSqlServer .

kargs

Dodatkowe argumenty wysyłane do aparatu obliczeniowego.

Zwroty

Ramka danych lub revoskalepa. Obiekt RxDataSource reprezentujący utworzone dane wyjściowe. Domyślnie, wyniki z binarnych klasyfikatorów punktowania zawierają trzy zmienne: PredictedLabel, Score, oraz Probability; rx_oneclass_svm a regresja zawiera jedną zmienną: Score; a klasyfikatory wieloklasowe zawierają PredictedLabel plus zmienną dla każdej kategorii poprzedzoną przez Score. Jeśli podano a suffix , dodaje się je na końcu tych nazw zmiennych wyjściowych.

Przykład klasyfikacji binarnej

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

Output:

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

Przykład regresji

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

Output:

'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