Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Usage
microsoftml.rx_fast_forest(formula: str,
data: [revoscalepy.datasource.RxDataSource.RxDataSource,
pandas.core.frame.DataFrame], method: ['binary',
'regression'] = 'binary', num_trees: int = 100,
num_leaves: int = 20, min_split: int = 10,
example_fraction: float = 0.7, feature_fraction: float = 1,
split_fraction: float = 1, num_bins: int = 255,
first_use_penalty: float = 0, gain_conf_level: float = 0,
train_threads: int = 8, random_seed: int = None,
ml_transforms: list = None, ml_transform_vars: list = None,
row_selection: str = None, transforms: dict = None,
transform_objects: dict = None, transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
ensemble: microsoftml.modules.ensemble.EnsembleControl = None,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
Description
Rychlý doménový struktura služby Machine Learning
Podrobnosti
Rozhodovací stromy jsou neparametrické modely, které provádějí sekvenci jednoduchých testů na vstupech. Tento postup rozhodování je mapuje na výstupy nalezené v trénovací datové sadě, jejichž vstupy se podobaly zpracovávané instanci. Rozhodnutí se provádí v každém uzlu datové struktury binárního stromu na základě míry podobnosti, která mapuje každou instanci rekurzivně přes větve stromu, dokud se nedosáhne příslušného uzlu typu list a vrácené výstupní rozhodnutí.
Rozhodovací stromy mají několik výhod:
Jsou efektivní při výpočtu i využití paměti během trénování a předpovědi.
Můžou představovat nelineární rozhodovací hranice.
Provádějí integrovaný výběr a klasifikaci funkcí.
Jsou odolné v přítomnosti hlučných funkcí.
Rychlá regrese doménové struktury je náhodná doménová struktura a implementace regresní doménové struktury pomocí učení regresního stromu v rx_fast_trees.
Model se skládá ze souboru rozhodovacích stromů. Každý strom v rozhodovacím lese vypíše gaussovské rozdělení predikcí. Agregace se provádí přes soubor stromů, aby bylo možné najít Gaussovské rozdělení nejblíže kombinované distribuci pro všechny stromy v modelu.
Tento klasifikátor rozhodovacího lesa se skládá ze souboru rozhodovacích stromů. Obecně platí, že modely souborů poskytují lepší pokrytí a přesnost než jednotlivé rozhodovací stromy. Každý strom v rozhodovací doménové struktuře vypíše Gaussian rozdělení.
Arguments
vzorec
Vzorec, jak je popsáno v revoscalepy.rx_formula.
Výrazy interakce a F() v microsoftml se v současné době nepodporují.
data
Objekt zdroje dat nebo řetězec znaku určující soubor .xdf nebo objekt datového rámce.
metoda
Znakový řetězec označující typ Fast Tree:
"binary"pro výchozí binární klasifikaci rychlého stromu nebo"regression"pro regresi rychlého stromu.
num_trees
Určuje celkový počet rozhodovacích stromů, které se mají vytvořit v souboru. Vytvořením více rozhodovacích stromů můžete potenciálně získat lepší pokrytí, ale doba trénování se zvyšuje. Výchozí hodnota je 100.
num_leaves
Maximální počet listů (terminálových uzlů), které lze vytvořit v libovolném stromu. Vyšší hodnoty potenciálně zvětší velikost stromu a získají lepší přesnost, ale riskuje přeurčení a vyžaduje delší dobu trénování. Výchozí hodnota je 20.
min_split
Minimální počet trénovacích instancí potřebných k vytvoření listu To znamená, že minimální počet dokumentů povolených v listu regresního stromu z dat s dílčím vzorkem. "rozdělením" se rozumí, že funkce na každé úrovni stromu (uzlu) jsou náhodně rozdělené. Výchozí hodnota je 10.
example_fraction
Zlomek náhodně zvolených instancí, které se mají použít pro každý strom. Výchozí hodnota je 0,7.
feature_fraction
Zlomek náhodně zvolených funkcí, které se mají použít pro každý strom. Výchozí hodnota je 0,7.
split_fraction
Zlomek náhodně zvolených funkcí, které se mají použít pro každé rozdělení. Výchozí hodnota je 0,7.
num_bins
Maximální početjedinečných Výchozí hodnota je 255.
first_use_penalty
Funkce nejprve používá penalizační koeficient. Výchozí hodnota je 0.
gain_conf_level
Nárok na spolehlivost stromové fitování (by měl být v rozsahu [0,1]). Výchozí hodnota je 0.
train_threads
Počet vláken, která se mají použít při trénování. Pokud není zadán žádný , určuje se počet vláken, která se mají použít interně. Výchozí hodnota je None.
random_seed
Určuje náhodné počáteční. Výchozí hodnota je None.
ml_transforms
Určuje seznam transformací MicrosoftML, které se mají provést s daty před trénováním nebo Žádná , pokud se neprovedou žádné transformace. Viz featurize_text, categoricala categorical_hash, pro transformace, které jsou podporovány.
Tyto transformace se provádějí po všech zadaných transformacích Pythonu.
Výchozí hodnota je None.
ml_transform_vars
Určuje vektor znaku názvů proměnných, který má být použit v ml_transforms nebo None , pokud se žádný použít.
Výchozí hodnota je None.
row_selection
NEPODPORUJE SE. Určuje řádky (pozorování) ze sady dat, které má model používat s názvem logické proměnné ze sady dat (v uvozovkách) nebo logickým výrazem pomocí proměnných v sadě dat. Například:
row_selection = "old"použije pouze pozorování, ve kterých jeTruehodnota proměnnéold.row_selection = (age > 20) & (age < 65) & (log(income) > 10)používá pouze pozorování, ve kterých je hodnotaageproměnné mezi 20 a 65 a hodnotoulogincomeproměnné je větší než 10.
Výběr řádku se provede po zpracování všech transformací dat (viz argumenty transforms nebo transform_function). Stejně jako u všech výrazů row_selection je možné definovat mimo volání funkce pomocí expression funkce.
transformuje
NEPODPORUJE SE. Výraz formuláře, který představuje první kolo transformací proměnných. Stejně jako u všech výrazů transforms je možné definovat (nebo row_selection) mimo volání funkce pomocí expression funkce.
transform_objects
NEPODPORUJE SE. Pojmenovaný seznam obsahující objekty, na které lze odkazovat pomocí transforms, transform_functiona row_selection.
transform_function
Proměnná transformační funkce.
transform_variables
Znakový vektor vstupních proměnných množiny dat potřebných pro transformační funkci.
transform_packages
NEPODPORUJE SE. Vektor znaku určující další balíčky Pythonu (mimo balíčky zadané v RxOptions.get_option("transform_packages")) k dispozici a předem načtený pro použití v transformačních funkcích proměnných.
Například explicitně definované v funkcích revoscalepy prostřednictvím jejich transforms a transform_function argumentů nebo těch, které jsou definovány implicitně prostřednictvím jejich formula nebo row_selection argumentů. Argumentem transform_packages může být také Žádný, což znamená, že nejsou předem načteny žádné balíčky mimo RxOptions.get_option("transform_packages") .
transform_environment
NEPODPORUJE SE. Uživatelem definované prostředí, které bude sloužit jako nadřazené všem prostředím vyvinutým interně a které se používají k transformaci proměnných dat.
Pokud transform_environment = Nonese místo toho použije nové prostředí hash s nadřazeným revoscalepy.baseenv.
blocks_per_read
Určuje početblokůch
report_progress
Celočíselná hodnota, která určuje úroveň generování sestav o průběhu zpracování řádků:
0: Nebyl hlášen žádný průběh.1: Počet zpracovaných řádků se vytiskne a aktualizuje.2: Jsou hlášeny řádky zpracovávané a časování.3: Jsou hlášeny řádky zpracovávané a všechna časování.
podrobný
Celočíselná hodnota, která určuje požadovanou velikost výstupu.
Pokud 0se během výpočtů nevytiskne žádný podrobný výstup. Celočíselné hodnoty, od 1 které se 4 poskytují rostoucí množství informací.
compute_context
Nastaví kontext, ve kterém jsou výpočty provedeny, zadané s platným RxComputeContext.
V současné době se podporují místní a RxInSqlServer výpočetní kontexty.
Soubor
Kontrolní parametry pro přemíscení
Návraty
Objekt FastForest s natrénovaným modelem.
Poznámka:
Tento algoritmus je vícevláknový a vždy se pokusí načíst celou datovou sadu do paměti.
Viz také
Odkazy
Regresní doménová struktura quantile
Od stumpů po stromy až po lesy
Příklad binární klasifikace
'''
Binary Classification.
'''
import numpy
import pandas
from microsoftml import rx_fast_forest, 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_forest(
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))
Výstup:
Not adding a normalizer.
Making per-feature arrays
Changing data from row-wise to column-wise
Beginning processing data.
Rows Read: 186, Read Time: 0, Transform Time: 0
Beginning processing data.
Processed 186 instances
Binning and forming Feature objects
Reserved memory for tree learner: 7176 bytes
Starting to train ...
Not training a calibrator because a valid calibrator trainer was not provided.
Elapsed time: 00:00:00.2704185
Elapsed time: 00:00:00.0443884
Beginning processing data.
Rows Read: 62, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0253862
Finished writing 62 rows.
Writing completed.
Rows Read: 5, Total Rows Processed: 5, Total Chunk Time: Less than .001 seconds
isCase PredictedLabel Score
0 False False -36.205067
1 True False -40.396084
2 False False -33.242531
3 False False -87.212494
4 True False -13.100666
Příklad regrese
'''
Regression.
'''
import numpy
import pandas
from microsoftml import rx_fast_forest, 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_forest(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)
Výstup:
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, 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: 21372 bytes
Starting to train ...
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.0644269
Elapsed time: 00:00:00.0109290
Beginning processing data.
Rows Read: 29, Read Time: 0.001, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0314390
Finished writing 29 rows.
Writing completed.
Solar_R Wind Temp Score
0 190.0 7.4 67.0 26.296144
1 20.0 16.6 63.0 14.274153
2 320.0 16.6 73.0 23.421144
3 187.0 5.1 87.0 80.662109
4 175.0 7.4 89.0 67.570549