microsoftml.rx_predict: Microsoft Machine Learning 모델을 사용하여 점수 매기기
사용
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
arevoscalepy 데이터 원본에서 학습된 Microsoft ML Machine Learning 모델을 사용하여 데이터 프레임 또는 revoscalepy 데이터 원본에서 인스턴스별 점수 매기기 결과를 보고합니다.
세부 정보
이진 분류자의 세 변수인 PredictedLabel, Score, Probability에 대한 점수 매기기, oneClassSvm 및 회귀 분류자에 대한 점수, 다중 클래스 분류자에 대한 PredictedLabel과 앞에 Score가 붙은 각 범주에 대한 변수 같은 항목이 기본적으로 출력에 보고됩니다.
인수
model
microsoftml 모델에서 반환된 모델 정보 개체입니다.
예를 들어 rx_fast_trees
또는 rx_logistic_regression
에서 반환된 개체입니다.
데이터
revoscalepy 데이터 원본 개체, 데이터 프레임 또는 .xdf
파일의 경로입니다.
output_data
변환된 데이터를 저장할 텍스트 또는 xdf 파일 이름이나 쓰기 기능이 있는 RxDataSource
를 출력합니다.
None이면 데이터 프레임이 반환됩니다. 기본값은 없음입니다.
write_model_vars
True
이면 모델의 변수가 점수 매기기 변수뿐만 아니라 출력 데이터 세트에 기록됩니다.
모델에서 입력 데이터 세트의 변수가 변환되면 변환된 변수도 포함됩니다. 기본값은 False
입니다.
extra_vars_to_write
output_data
에 포함할 입력 데이터에서 추가 변수 이름의 문자 벡터 또는 None
입니다.
write_model_vars
가 True
이면 모델 변수도 포함됩니다. 기본값은 None
입니다.
suffix
생성된 점수 매기기 변수에 추가할 접미사를 지정하는 문자열이거나 접미사가 없을 경우 None
입니다. 기본값은 None
입니다.
overwrite
True
이면 기존 output_data
를 덮어쓰고, False
이면 기존 output_data
를 덮어쓰지 않습니다. 기본값은 False
입니다.
data_threads
데이터 파이프라인에서 원하는 병렬 처리 수준을 지정하는 정수입니다. None이면 사용되는 스레드 수가 내부적으로 결정됩니다. 기본값은 없음입니다.
blocks_per_read
데이터 원본에서 읽은 데이터의 각 청크에 대해 읽을 블록 수를 지정합니다.
report_progress
행 처리 진행률에 대한 보고 수준을 지정하는 정수 값입니다.
0
: 진행률을 보고하지 않습니다.1
: 처리된 행 수가 출력되고 업데이트됩니다.2
: 처리된 행 및 타이밍이 보고됩니다.3
: 처리된 행 및 모든 타이밍이 보고됩니다.
기본값은 1
입니다.
verbose
원하는 출력의 양을 지정하는 정수 값입니다.
0
이면 계산 중에 자세한 정보가 출력되지 않습니다.
1
에서 4
사이의 정수 값은 더 많은 양의 정보를 제공합니다.
기본값은 1
입니다.
compute_context
유효한 revoscalepy.RxComputeContext로 지정되었으며 계산이 실행되는 컨텍스트를 설정합니다. 현재 로컬 및 revoscalepy.RxInSqlServer 컴퓨팅 컨텍스트가 지원됩니다.
kargs
컴퓨팅 엔진으로 전송된 추가 인수입니다.
반환
생성된 출력 데이터를 나타내는 데이터 프레임 또는 revoscalepy.RxDataSource 개체입니다. 기본적으로 점수 매기기 이진 분류자의 출력에는 PredictedLabel
, Score
, Probability
의 세 변수가 포함되고, rx_oneclass_svm
및 회귀에는 하나의 Score
변수가 포함되며, 다중 클래스 분류자에는 PredictedLabel
과 앞에 Score
가 붙은 각 범주에 대한 변수가 포함됩니다.
suffix
가 제공되면 이러한 출력 변수 이름의 끝에 추가됩니다.
추가 정보
rx_featurize
, revoscalepy.rx_data_step, revoscalepy.rx_import.
이진 분류 예제
'''
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))
출력:
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
회귀 예제
'''
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)
출력:
'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