microsoftml.rx_predict: Microsoft 機械学習モデルを使用してスコア付けする
使用法
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)
説明
arevoscalepydata ソースを含むトレーニング済みの Microsoft ML 機械学習モデルを使用して、インスタンスごとのスコアリング結果をデータ フレームまたは revoscalepy データ ソースでレポートします。
説明
既定では、出力に次の項目がレポートされます。2 項分類子の 3 つの変数に対するスコアリング: PredictedLabel、Score、Probability。oneClassSvm と回帰分類子のスコア。多クラス分類子の PredictedLabel と、前にスコアが付加された各カテゴリの変数。
引数
model
microsoftml モデルから返されるモデル情報オブジェクト。
たとえば、rx_fast_trees
または rx_logistic_regression
から返されるオブジェクト。
data
revoscalepy データ ソース オブジェクト、データ フレーム、または .xdf
ファイルへのパス。
output_data
出力テキストまたは xdf ファイル名、または変換されたデータを格納する書き込み機能がある RxDataSource
。
None の場合、データ フレームが返されます。 既定値は None です。
write_model_vars
True
の場合、モデル内の変数は、スコアリング変数に加えて出力データ セットに書き込まれます。
入力データ セットの変数がモデルで変換される場合は、変換された変数も含まれます。 既定値は False
です。
extra_vars_to_write
None
または、入力データから output_data
に含める追加の変数名の文字ベクトル。
write_model_vars
が True
の場合、モデル変数も含まれます。 既定値は None
です。
suffix
作成されたスコアリング変数に追加するサフィックスを指定する文字列。または、サフィックスがない場合は None
。 既定値は None
です。
overwrite
True
にすると既存の output_data
が上書きされます。False
にすると、既存の output_data
は上書きされません。 既定値は False
です。
data_threads
データ パイプラインで必要な並列処理の次数を指定する整数。 None の場合、使用されるスレッドの数は内部的に決定されます。 既定値は 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
の 3 つの変数が含まれます。rx_oneclass_svm
と回帰には、1 つの変数 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))
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
回帰の例
'''
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