Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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
Быстрый лес машинного обучения
Сведения
Деревья принятия решений — это непараметрические модели, которые выполняют последовательность простых тестов на входных данных. Эта процедура принятия решений сопоставляет их с выходными данными, найденными в обучаемом наборе данных, входные данные которых были похожи на обрабатываемый экземпляр. Решение принимается на каждом узле структуры данных двоичного дерева на основе меры сходства, которая сопоставляет каждый экземпляр рекурсивно по ветвям дерева до достижения соответствующего конечного узла и возвращаемого выходного решения.
Деревья принятия решений имеют несколько преимуществ:
Они эффективны как в вычислениях, так и в памяти во время обучения и прогнозирования.
Они могут представлять нелинейные границы принятия решений.
Они выполняют интегрированный выбор компонентов и классификацию.
Они устойчивы в присутствии шумных признаков.
Быстрая регрессия леса — это случайный лес и реализация леса квантилильной регрессии с помощью обучающегося rx_fast_treesдерева регрессии.
Модель состоит из ансамбля деревьев принятия решений. Каждое дерево в лесу принятия решений выводит распределение Gaussian путем прогнозирования. Агрегирование выполняется над ансамблем деревьев, чтобы найти распределение Gaussian ближе всего к объединенному распределению для всех деревьев в модели.
Этот классификатор леса принятия решений состоит из ансамбля деревьев принятия решений. Как правило, модели ансамбля обеспечивают лучшее покрытие и точность, чем одно дерево принятия решений. Каждое дерево в лесу принятия решений выводит распределение Gaussian.
Arguments
формула
Формула, как описано в revoscalepy.rx_formula.
Термины взаимодействия и F() в настоящее время не поддерживаются в microsoftml.
данные
Объект источника данных или символьная строка, указывающая XDF-файл или объект кадра данных.
method
Символьная строка, обозначающая тип быстрого дерева:
"binary"для двоичной классификации быстрого дерева по умолчанию или"regression"для быстрой регрессии дерева.
num_trees
Указывает общее количество деревьев принятия решений для создания в ансамбле. Создавая больше деревьев принятия решений, вы можете получить лучшее покрытие, но время обучения увеличивается. Значение по умолчанию — 100.
num_leaves
Максимальное количество листьев (узлов терминала), которые можно создать в любом дереве. Более высокие значения потенциально увеличивают размер дерева и получают лучшую точность, но рискуют перенаправляться и требовать больше времени обучения. Значение по умолчанию — 20.
min_split
Минимальное количество экземпляров обучения, необходимых для формирования конечной части. То есть минимальное количество документов, разрешенных в листе дерева регрессии, из вложенных данных. Разделение означает, что функции на каждом уровне дерева (узла) делятся случайным образом. Значение по умолчанию — 10.
example_fraction
Доля случайных выбранных экземпляров, используемых для каждого дерева. Значение по умолчанию — 0,7.
feature_fraction
Доля случайных выбранных признаков, используемых для каждого дерева. Значение по умолчанию — 0,7.
split_fraction
Доля случайных выбранных функций для каждого разделения. Значение по умолчанию — 0,7.
num_bins
Максимальное количество отдельных значений (bins) для каждой функции. Значение по умолчанию — 255.
first_use_penalty
Функция сначала использует коэффициент штрафа. Значение по умолчанию — 0.
gain_conf_level
Требование достоверности для крепления дерева (должно находиться в диапазоне [0,1]). Значение по умолчанию — 0.
train_threads
Количество потоков, используемых в обучении. Если задано значение None , количество используемых потоков определяется внутренне. Значение по умолчанию — None.
random_seed
Указывает случайное начальное значение. Значение по умолчанию — None.
ml_transforms
Указывает список преобразований MicrosoftML для выполнения данных перед обучением или Нет , если преобразования не выполняются. См featurize_text. раздел , categoricalа также categorical_hashсведения о поддерживаемых преобразованиях.
Эти преобразования выполняются после любых указанных преобразований Python.
Значение по умолчанию — None.
ml_transform_vars
Указывает вектор символов имен переменных, используемых или ml_transformsнет , если они не используются.
Значение по умолчанию — None.
row_selection
НЕ ПОДДЕРЖИВАЕТСЯ. Указывает строки (наблюдения) из набора данных, которые должны использоваться моделью с именем логической переменной из набора данных (в кавычках) или логическим выражением с помощью переменных в наборе данных. Рассмотрим пример.
row_selection = "old"используются только наблюдения, в которых значение переменнойoldравноTrue.row_selection = (age > 20) & (age < 65) & (log(income) > 10)Использует только наблюдения, в которых значениеageпеременной составляет от 20 до 65, а значениеlogпеременнойincomeбольше 10.
Выбор строки выполняется после обработки любых преобразований данных (см. аргументы transforms или transform_function). Как и во всех выражениях, row_selection можно определить вне вызова функции с помощью expression функции.
Преобразует
НЕ ПОДДЕРЖИВАЕТСЯ. Выражение формы, представляющей первый раунд преобразований переменных. Как и во всех выражениях, transforms (или row_selection) можно определить вне вызова функции с помощью expression функции.
transform_objects
НЕ ПОДДЕРЖИВАЕТСЯ. Именованный список, содержащий объекты, на которые можно ссылаться, transformstransform_functionи row_selection.
transform_function
Функция преобразования переменной.
transform_variables
Символьный вектор входных переменных набора данных, необходимых для функции преобразования.
transform_packages
НЕ ПОДДЕРЖИВАЕТСЯ. Вектор символов, указывающий дополнительные пакеты Python (за пределами указанных в RxOptions.get_option("transform_packages")) для обеспечения доступности и предварительной загрузки для использования в функциях преобразования переменных.
Например, те, которые явно определены в функциях revoscalepy через их transforms аргументы или transform_function те, которые определены неявно через их formula или row_selection аргументы. Аргумент transform_packages также может быть None, указывающий, что пакеты за пределами RxOptions.get_option("transform_packages") предварительно загружены.
transform_environment
НЕ ПОДДЕРЖИВАЕТСЯ. Определяемая пользователем среда, которая служит родительской средой для всех сред, разработанных внутренне и используется для преобразования данных переменных.
Если transform_environment = Noneвместо этого используется новая среда hash с родительским revoscalepy.baseenv.
blocks_per_read
Указывает количество блоков для чтения для каждого блока данных, считываемого из источника данных.
report_progress
Целочисленное значение, указывающее уровень отчетов о ходе обработки строк:
0: не сообщается о ходе выполнения.1: количество обработанных строк печатается и обновляется.2: отображаются строки, обрабатываемые и сроки.3: обрабатываются строки и сообщаются все сроки.
verbose
Целочисленное значение, указывающее количество нужных выходных данных.
Если 0подробные выходные данные не печатаются во время вычислений. Целые значения от 1 того, чтобы 4 обеспечить увеличение объема информации.
compute_context
Задает контекст, в котором выполняются вычисления, указанные допустимым RxComputeContext.
В настоящее время поддерживаются локальные и RxInSqlServer вычислительные контексты.
Ансамбль
Управление параметрами для ensembling.
Возвраты
FastForest Объект с обученной моделью.
Замечание
Этот алгоритм является многопотокным и всегда пытается загрузить весь набор данных в память.
См. также
Ссылки
Пример двоичной классификации
'''
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))
Выходные данные:
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
Пример регрессии
'''
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)
Выходные данные:
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