Teilen über


microsoftml.rx_predict: nimmt Bewertungen unter Verwendung eines Microsoft Machine Learning-Modells vor

Verwendung

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)

BESCHREIBUNG

Meldet Bewertungsergebnisse instanzbezogen in einem Datenrahmen oder einer revoscalepy-Datenquelle mithilfe eines trainierten Microsoft ML Machine Learning-Modells mit arevoscalepydata-Quelle.

Details

Die folgenden Elemente werden in der Ausgabe standardmäßig angegeben: Bewertung für drei Variablen für die binären Klassifizierer: PredictedLabel, Score und Probability. Der Punktwert für oneClassSvm und Regressionsklassifikatoren, PredictedLabel für Multiklassen-Klassifizier sowie eine Variable für jede Kategorie, der „Score“ vorangestellt ist.

Argumente

model

Ein Modellinformationsobjekt, das von einem Microsoft ML-Modell zurückgegeben wird. Beispielsweise ein Objekt, das von rx_fast_trees oder rx_logistic_regression zurückgegeben wird.

data

Ein revoscalepy-Datenquellenobjekt, ein Datenrahmen oder der Pfad zu einer .xdf-Datei.

output_data

Ausgabetext oder Name der XDF-Datei oder RxDataSource mit Schreibfunktionen zum Speichern transformierter Daten. Falls None, wird ein Datenrahmen zurückgegeben. Der Standardwert ist None.

write_model_vars

Falls True, werden die Variablen des Modells zusätzlich zu den Bewertungsvariablen in das Ausgabedataset geschrieben. Wenn Variablen aus dem Eingabedataset im Modell transformiert werden, werden auch die transformierten Variablen einbezogen. Der Standardwert ist False.

extra_vars_to_write

None oder ein Zeichenvektor mit den Namen zusätzlicher Variablen aus den Eingabedaten, die in output_data einbezogen werden sollen. Wenn write_model_varsTrue ist, werden auch Modellvariablen einbezogen. Der Standardwert ist None.

Suffix

Eine Zeichenfolge, die das Suffix angibt, das an die erstellten Bewertungsariablen angefügt werden soll, oder None, wenn es kein Suffix gibt. Der Standardwert ist None.

overwrite

Falls True, wird ein vorhandenes output_data-Element überschrieben. Falls False, wird ein vorhandenes output_data-Element nicht überschrieben. Der Standardwert ist False.

data_threads

Eine ganze Zahl, die den gewünschten Grad von Parallelität in der Datenpipeline angibt. Falls None, wird die Anzahl der verwendeten Threads intern bestimmt. Der Standardwert ist None.

blocks_per_read

Gibt die Anzahl der Blöcke an, die für jeden Datenblock gelesen werden, der aus der Datenquelle gelesen wird.

report_progress

Ein ganzzahliger Wert, der die Berichtsebene für den Status der Zeilenverarbeitung angibt:

  • 0: Es wird kein Status gemeldet.

  • 1: Die Anzahl der verarbeiteten Zeilen wird ausgegeben und aktualisiert.

  • 2: Verarbeitete Zeilen und Zeitsteuerungen werden gemeldet.

  • 3: Verarbeitete Zeilen und alle Zeitsteuerungen werden gemeldet.

Der Standardwert ist 1.

Ausführlich

Ein ganzzahliger Wert, der die gewünschte Ausgabemenge angibt. Falls 0, erfolgt während der Berechnungen keine ausführliche Ausgabe. Ganzzahlige Werte von 1 bis 4 liefern zunehmend mehr Informationen. Der Standardwert ist 1.

compute_context

Legt den Kontext fest, in dem Berechnungen erfolgen, angegeben mit einer gültigen Angabe für revoscalepy.RxComputeContext. Derzeit werden lokale und revoscalepy.RxInSqlServer-Computekontexte unterstützt.

kargs

Zusätzliche Argumente, die an die Compute-Engine gesendet werden.

Gibt zurück

Ein Datenrahmen oder revoscalepy.RxDataSource-Objekt, das die erstellten Ausgabedaten darstellt. Standardmäßig umfasst die Ausgabe binärer Bewertungsklassifizierer drei Variablen: PredictedLabel, Score und Probability. rx_oneclass_svm und Regression enthalten eine Variable: Score. Multiklassen-Klassifizierer enthalten PredictedLabel plus eine Variable für jede Kategorie, der Score vorangestellt ist. Wenn ein suffix angegeben wird, wird es an das Ende dieser Ausgabevariablennamen angehängt.

Siehe auch

rx_featurize, revoscalepy.rx_data_step, revoscalepy.rx_import.

Beispiel für binäre Klassifizierung

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

Ausgabe:

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

Regressionsbeispiel

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

Ausgabe:

'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