predict , loss , margin и методы edge этих классов классификации поддерживают длинные массивы:
| Можно использовать модели, обученные или на или на высоких данных в оперативной памяти с этими методами. Метод loss CompactClassificationTree только поддерживает один выходной аргумент.
|
Метод resume ClassificationKernel поддерживает длинные массивы. |
Значение по умолчанию для аргумента пары "имя-значение" 'IterationLimit' ослабляется к 20 при работе с длинными массивами. resume использует мудрую блоком стратегию. Для получения дополнительной информации см. Алгоритмы fitckernel .
|
fitcdiscr | Поддерживаемые синтаксисы: Mdl = fitcdiscr(Tbl,Y)
Mdl = fitcdiscr(X,Y)
Mdl = fitcdiscr(___,Name,Value)
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(___,Name,Value) — fitcdiscr возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults , когда вы задаете аргумент пары "имя-значение" 'OptimizeHyperparameters' .
Выходным аргументом FitInfo является пустой массив структур, в настоящее время зарезервированный для возможного будущего использования. Выходным аргументом HyperparameterOptimizationResults является объект BayesianOptimization или таблица гиперпараметров с присваиваемыми значениями, которые описывают оптимизацию перекрестной проверки гиперпараметров. 'HyperparameterOptimizationResults' непуст, когда аргумент пары "имя-значение" 'OptimizeHyperparameters' непуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults' зависят от значения, которое вы задаете для аргумента пары "имя-значение" 'HyperparameterOptimizationOptions' , когда вы создаете модель.
Если вы задаете 'bayesopt' (значение по умолчанию), то HyperparameterOptimizationResults является объектом класса BayesianOptimization . Если вы задаете 'gridsearch' или 'randomsearch' , то HyperparameterOptimizationResults является таблицей гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому.
Поддерживаемые аргументы пары "имя-значение" и любые различия:
'ClassNames'
'Cost'
'DiscrimType'
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout' . Например, можно задать fitcdiscr(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)) .
'OptimizeHyperparameters' — Единственным имеющим право параметром, чтобы оптимизировать является 'DiscrimType' . Определение 'auto' использует 'DiscrimType' .
'PredictorNames'
'Prior'
'ResponseName'
'ScoreTransform'
'Weights'
Для длинных массивов и длинных таблиц, fitcdiscr возвращает объект CompactClassificationDiscriminant , который содержит большинство тех же свойств как объект ClassificationDiscriminant . Основное различие - то, что компактный объект чувствителен к требованиям к памяти. Компактный объект не включает свойства, которые включают данные, или которые включают массив, одного размера как данные. Компактный объект не содержит эти свойства ClassificationDiscriminant :
Кроме того, компактный объект не поддерживает эти методы ClassificationDiscriminant :
compact
crossval
cvshrink
resubEdge
resubLoss
resubMargin
resubPredict
|
fitcecoc |
Поддерживаемые синтаксисы: Mdl = fitcecoc(X,Y)
Mdl = fitcecoc(X,Y,Name,Value)
[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcecoc(X,Y,Name,Value) — fitcecoc возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults , когда вы задаете аргумент пары "имя-значение" 'OptimizeHyperparameters' .
Выходным аргументом FitInfo является пустой массив структур, в настоящее время зарезервированный для возможного будущего использования. Опции, связанные с перекрестной проверкой, не поддержаны. Поддерживаемые аргументы пары "имя-значение": 'ClassNames'
'Cost'
'Coding' — Значением по умолчанию является 'onevsall' .
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout' . Например, можно задать fitcecoc(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)) .
'Learners' — Значением по умолчанию является 'linear' . Можно задать 'linear' , 'kernel' , объект templateLinear или templateKernel или массив ячеек таких объектов.
'OptimizeHyperparameters' — Когда вы используете линейных бинарных учеников, значением гиперпараметра 'Regularization' должен быть 'ridge' .
'Prior'
'Verbose' — Значением по умолчанию является 1 .
'Weights'
Этот дополнительный аргумент пары "имя-значение" характерен для длинных массивов: 'NumConcurrent' — Положительный целочисленный скаляр, задающий количество бинарных учеников, которые обучены одновременно путем объединения операций файлового ввода-вывода. Значением по умолчанию для 'NumConcurrent' является 1 , что означает, что fitcecoc обучает бинарных учеников последовательно. 'NumConcurrent' является самым выгодным, когда входные массивы не могут поместиться в распределенную кластерную память. В противном случае входные массивы могут кэшироваться, и ускорение незначительно.
Если при запуске свой код по Apache Spark™, NumConcurrent верхний ограниченный памятью, доступной для коммуникаций. Проверяйте свойства 'spark.executor.memory' и 'spark.driver.memory' в свою настройку Spark Apache. Дополнительную информацию см. в parallel.cluster.Hadoop . Для получения дополнительной информации о Spark Apache и других средах выполнения, которые управляют, куда ваш код запускается, смотрите Расширение длинных массивов с помощью других продуктов (MATLAB).
|
fitckernel |
Некоторые аргументы пары "имя-значение" имеют различные значения по умолчанию по сравнению со значениями по умолчанию для функции fitckernel в оперативной памяти. Поддерживаемые аргументы пары "имя-значение" и любые различия: 'Learner'
'NumExpansionDimensions'
'KernelScale'
'BoxConstraint'
'Lambda'
'BetaTolerance' — Значение по умолчанию ослабляется к 1e–3 .
'GradientTolerance' — Значение по умолчанию ослабляется к 1e–5 .
'IterationLimit' — Значение по умолчанию ослабляется к 20 .
'BlockSize'
'RandomStream'
'HessianHistorySize'
'Verbose' — Значением по умолчанию является 1 .
'ClassNames'
'Cost'
'Prior'
'ScoreTransform'
'Weights' — Значение должно быть длинным массивом.
'OptimizeHyperparameters'
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout' . Например, можно задать fitckernel(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)) .
Если 'KernelScale' является 'auto' , то fitckernel использует случайный поток, которым управляет tallrng для подвыборки. Для воспроизводимости необходимо установить seed случайных чисел и для глобального потока и для случайного потока, которым управляет tallrng . Если 'Lambda' является 'auto' , то fitckernel может взять дополнительный проход через данные, чтобы вычислить количество наблюдений в X . fitckernel использует мудрую блоком стратегию. Для получения дополнительной информации см. Алгоритмы.
|
templateKernel |
Значения по умолчанию для этих аргументов пары "имя-значение" отличаются, когда вы работаете с длинными массивами. 'Verbose' — Значением по умолчанию является 1 .
'BetaTolerance' — Значение по умолчанию ослабляется к 1e–3 .
'GradientTolerance' — Значение по умолчанию ослабляется к 1e–5 .
'IterationLimit' — Значение по умолчанию ослабляется к 20 .
Если 'KernelScale' является 'auto' , то templateKernel использует случайный поток, которым управляет tallrng для подвыборки. Для воспроизводимости необходимо установить seed случайных чисел и для глобального потока и для случайного потока, которым управляет tallrng . Если 'Lambda' является 'auto' , то templateKernel может взять дополнительный проход через данные, чтобы вычислить количество наблюдений. templateKernel использует мудрую блоком стратегию. Для получения дополнительной информации см. Алгоритмы.
|
fitclinear | Некоторые аргументы пары "имя-значение" имеют различные значения по умолчанию по сравнению со значениями по умолчанию для функции fitclinear в оперативной памяти. Поддерживаемые аргументы пары "имя-значение" и любые различия: 'ObservationsIn' — Поддержки только 'rows' .
\lambda Может быть 'auto' (значение по умолчанию) или скаляр.
'Learner'
'Regularization' — Поддержки только 'ridge' .
'Solver' — Поддержки только 'lbfgs' .
'FitBias' — Поддержки только true .
'Verbose' — Значением по умолчанию является 1 .
'Beta'
'Bias'
'ClassNames'
'Cost'
'Prior'
'Weights' — Значение должно быть длинным массивом.
'HessianHistorySize'
'BetaTolerance' — Значение по умолчанию ослабляется к 1e–3 .
'GradientTolerance' — Значение по умолчанию ослабляется к 1e–3 .
'IterationLimit' — Значение по умолчанию ослабляется к 20 .
'OptimizeHyperparameters' — Значением параметра 'Regularization' должен быть 'ridge' .
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout' . Например, можно задать fitclinear(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)) .
Для длинных массивов fitclinear реализует LBFGS путем распределения вычисления потери и градиента среди различных частей длинного массива в каждой итерации. Другие решатели не доступны для длинных массивов. Когда начальные значения для Beta и Bias не даны, fitclinear совершенствовал первоначальные оценки параметров путем подбора кривой модели локально к частям данных и объединения коэффициентов путем усреднения.
|
templateLinear |
Значения по умолчанию для этих аргументов пары "имя-значение" отличаются, когда вы работаете с длинными массивами. \lambda Может быть 'auto' (значение по умолчанию) или скаляр
'Regularization' — Поддержки только 'ridge'
'Solver' — Поддержки только 'lbfgs'
'FitBias' — Поддержки только true
'Verbose' — Значением по умолчанию является 1
'BetaTolerance' — Значение по умолчанию ослабляется к 1e–3
'GradientTolerance' — Значение по умолчанию ослабляется к 1e–3
'IterationLimit' — Значение по умолчанию ослабляется к 20
Когда fitcecoc использует объект templateLinear с длинными массивами, единственный доступный решатель является LBFGS. Программное обеспечение реализует LBFGS путем распределения вычисления потери и градиента среди различных частей длинного массива в каждой итерации. Если вы не задаете начальные значения для Beta и Bias , программное обеспечение совершенствовало первоначальные оценки параметров путем подбора кривой модели локально к частям данных и объединения коэффициентов путем усреднения.
|
fitcnb | Поддерживаемые синтаксисы: Опции, связанные с плотностью ядра, перекрестной проверкой и гипероптимизацией параметров управления, не поддержаны. Поддерживаемые аргументы пары "имя-значение":
|
fitctree |
Поддерживаемые синтаксисы: tree = fitctree(Tbl,Y)
tree = fitctree(X,Y)
tree = fitctree(___,Name,Value)
[tree,FitInfo,HyperparameterOptimizationResults] = fitctree(___,Name,Value) — fitctree возвращает дополнительные выходные аргументы FitInfo и HyperparameterOptimizationResults , когда вы задаете аргумент пары "имя-значение" 'OptimizeHyperparameters' .
Выходным аргументом FitInfo является пустой массив структур, в настоящее время зарезервированный для возможного будущего использования. Выходным аргументом HyperparameterOptimizationResults является объект BayesianOptimization или таблица гиперпараметров с присваиваемыми значениями, которые описывают оптимизацию перекрестной проверки гиперпараметров. 'HyperparameterOptimizationResults' непуст, когда аргумент пары "имя-значение" 'OptimizeHyperparameters' непуст в то время, когда вы создаете модель. Значения в 'HyperparameterOptimizationResults' зависят от значения, которое вы задаете для аргумента пары "имя-значение" 'HyperparameterOptimizationOptions' , когда вы создаете модель.
Если вы задаете 'bayesopt' (значение по умолчанию), то HyperparameterOptimizationResults является объектом класса BayesianOptimization . Если вы задаете 'gridsearch' или 'randomsearch' , то HyperparameterOptimizationResults является таблицей гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому.
Поддерживаемые аргументы пары "имя-значение" и любые различия: 'AlgorithmForCategorical'
'CategoricalPredictors'
'ClassNames'
'Cost'
'HyperparameterOptimizationOptions' — Для перекрестной проверки высокая оптимизация поддерживает только валидацию 'Holdout' . Например, можно задать fitctree(X,Y,'OptimizeHyperparameters','auto','HyperparameterOptimizationOptions',struct('Holdout',0.2)) .
'MaxNumCategories'
'MaxNumSplits' — для высокой оптимизации fitctree ищет среди целых чисел, по умолчанию масштабируемых журналом в области значений [1,max(2,min(10000,NumObservations-1))] .
'MergeLeaves'
'MinLeafSize'
'MinParentSize'
'NumVariablesToSample'
'OptimizeHyperparameters'
'PredictorNames'
'Prior'
'ResponseName'
'ScoreTransform'
'SplitCriterion'
'Weights'
Этот дополнительный аргумент пары "имя-значение" характерен для длинных массивов: 'MaxDepth' — Положительное целое число, задающее максимальную глубину выходного дерева. Задайте значение для этого аргумента, чтобы возвратить дерево, которое имеет меньше уровней и требует, чтобы меньше прошли через длинный массив, чтобы вычислить. Обычно алгоритм fitctree берет один проход через данные и дополнительную передачу для каждого древовидного уровня. Функция не устанавливает максимальную древовидную глубину по умолчанию.
|
TreeBagger | Поддерживаемые синтаксисы для высокого X , Y , Tbl : B = TreeBagger(NumTrees,Tbl,Y)
B = TreeBagger(NumTrees,X,Y)
B = TreeBagger(___,Name,Value)
Для длинных массивов TreeBagger поддерживает классификацию, но не поддерживает регрессию. Поддерживаемые пары "имя-значение": 'NumPredictorsToSample' — Значение по умолчанию является квадратным корнем из количества переменных для классификации.
'MinLeafSize' — Значением по умолчанию является 1 , если количество наблюдений - меньше чем 50 000. Если количество наблюдений 50,000 или больше, то значением по умолчанию является max(1,min(5,floor(0.01*NobsChunk))) , где NobsChunk является количеством наблюдений во фрагменте.
'ChunkSize' (только для длинных массивов) — Значение по умолчанию является 50000 .
Кроме того, TreeBagger поддерживает эти дополнительные аргументы fitctree :
Для высоких данных TreeBagger возвращает объект CompactTreeBagger , который содержит большинство тех же свойств как полный объект TreeBagger . Основное различие - то, что компактный объект является большей эффективной памятью. Компактный объект не включает свойства, которые включают данные, или которые включают массив, одного размера как данные. Количество деревьев, содержавшихся в возвращенном объекте CompactTreeBagger , может отличаться от количества деревьев, заданных, как введено к функции TreeBagger . TreeBagger определяет количество деревьев, чтобы возвратиться на основе факторов, которые включают размер набора входных данных, и количество данных разделяет на блоки доступный, чтобы вырастить деревья. Поддерживаемые методы CompactTreeBagger : combine
error
margin
meanMargin
predict
setDefaultYfit
error , margin , meanMargin и методы predict не поддерживают аргументы пары "имя-значение" 'Trees' , 'TreeWeights' или 'UseInstanceForTree' . Метод meanMargin дополнительно не поддерживает 'Weights' .
TreeBagger создает случайный лес путем генерации деревьев на непересекающихся фрагментах данных. Когда больше данных доступно, чем требуется, чтобы создавать случайный лес, данные подвыбираются. Для подобного примера смотрите Случайные Леса для Больших данных (Genuer, Poggi, Tuleau-Malot, Вилла-Vialaneix 2015).
В зависимости от того, как хранятся данные, возможно, что некоторые фрагменты данных содержат наблюдения только от нескольких классов из всех классов. В этом случае TreeBagger может привести к нижним результатам по сравнению со случаем, где каждый фрагмент данных содержит наблюдения от большинства классов. Во время обучения алгоритма TreeBagger зависят от ряда факторов скорость, точность и использование памяти. Эти факторы включают значения для NumTrees , 'ChunkSize' , 'MinLeafSize' и 'MaxNumSplits' . Для n-by-p длинный массив X , выборка реализаций TreeBagger во время обучения. Эта выборка зависит от этих переменных:
Количество деревьев NumTrees Размер фрагмента 'ChunkSize' Количество наблюдений n Количество фрагментов r (приблизительно равняются n/'ChunkSize' ),
Поскольку значение n фиксируется для данного X , ваши настройки для NumTrees и 'ChunkSize' определяют как выборки TreeBagger X .
Если r> NumTrees , то выборки TreeBagger наблюдения 'ChunkSize' * NumTrees от X и train одно дерево на фрагмент (с каждым фрагментом, содержащим количество 'ChunkSize' наблюдений). Этот сценарий наиболее распространен, когда вы работаете с длинными массивами. Если r ≤ NumTrees , то TreeBagger обучает приблизительно деревья NumTrees/r в каждом фрагменте, с помощью загружающийся во фрагменте. Если n ≤ 'ChunkSize' , то использование TreeBagger , загружающееся, чтобы сгенерировать выборки (каждый размер n), на котором можно обучить отдельные деревья.
При определении значения для NumTrees рассмотрите следующее:
Если при запуске свой код по Spark Apache, и ваш набор данных распределяется с Hadoop® Distributed File System (HDFS™), запустите путем определения значения для NumTrees , который является, по крайней мере, дважды количеством разделов в HDFS для набора данных. Эта установка предотвращает чрезмерную передачу данных среди исполнителей Spark Apache и может улучшать производительность алгоритма TreeBagger . TreeBagger копирует вмещенные деревья в клиентскую память в получившейся модели CompactTreeBagger . Поэтому объем памяти, доступный клиенту, создает верхнюю границу на значении, которое можно установить для NumTrees . Можно настроить значения 'MinLeafSize' и 'MaxNumSplits' для более эффективной скорости и использования памяти за счет некоторой прогнозирующей точности. После настройки, если значение NumTrees является меньше, чем дважды количество разделов в HDFS для вашего набора данных, то полагают, что повторное разделение ваших данных в HDFS имеет большие разделы.
После определения значения для NumTrees , набор 'ChunkSize' , чтобы гарантировать, что TreeBagger использует большинство данных, чтобы вырастить деревья. Идеально, 'ChunkSize' * NumTrees должен аппроксимировать n, количество строк в ваших данных. Обратите внимание на то, что память, доступная в рабочих для учебных отдельных деревьев, может также определить верхнюю границу для 'ChunkSize' . Можно настроить свойства памяти Spark Apache избежать ошибок из памяти и поддержать рабочий процесс. Смотрите parallel.cluster.Hadoop для получения дополнительной информации.
|