Компактная модель нейронной сети для классификации
CompactClassificationNeuralNetwork
является компактной версией ClassificationNeuralNetwork
объект модели. Компактная модель не включает данные, используемые для настройки классификатора. Поэтому вы не можете выполнить некоторые задачи, такие как перекрестная валидация, используя компактную модель. Используйте компактную модель для задач, таких как предсказание меток новых данных.
Создайте CompactClassificationNeuralNetwork
объект из полного ClassificationNeuralNetwork
объект модели при помощи compact
.
LayerSizes
- Размеры полносвязных слоевЭто свойство доступно только для чтения.
Размеры полносвязных слоев в модели нейронной сети, возвращенные как положительный целочисленный вектор. i-й элемент LayerSizes
- количество выходов в i-м полностью соединенном слое модели нейронной сети.
LayerSizes
не включает размер конечного полносвязного слоя. Этот слой всегда имеет K выходов, где K количество классов в переменной отклика.
Типы данных: single
| double
LayerWeights
- Выученные веса слоевЭто свойство доступно только для чтения.
Обученные веса слоев для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует весам слоев для i-го полносвязного слоя. Для примера, Mdl.LayerWeights{1}
возвращает веса для первого полносвязного слоя модели Mdl
.
LayerWeights
включает веса для конечного полносвязного слоя.
Типы данных: cell
LayerBiases
- Выученные смещения слояЭто свойство доступно только для чтения.
Выученные смещения слоя для полносвязных слоев, возвращенные как массив ячеек. i-я запись в массиве ячеек соответствует смещениям слоя для i-го полносвязного слоя. Для примера, Mdl.LayerBiases{1}
возвращает смещения для первого полносвязного слоя модели Mdl
.
LayerBiases
включает смещения для конечного полносвязного слоя.
Типы данных: cell
Activations
- Функции активации для полносвязных слоев'relu'
| 'tanh'
| 'sigmoid'
| 'none'
| массивов ячеек из векторов символовЭто свойство доступно только для чтения.
Функции активации для полносвязных слоев модели нейронной сети, возвращенные как вектор символов или массив ячеек из векторов символов со значениями из этой таблицы.
Значение | Описание |
---|---|
'relu' | Функция выпрямленного линейного модуля (ReLU) - выполняет операцию порога для каждого элемента входа, где любое значение, меньше нуля, устанавливается в ноль, то есть, |
'tanh' | Функция гиперболического тангенса (tanh) - применяет |
'sigmoid' | Сигмоидная функция - Выполняет следующую операцию на каждом входном элементе: |
'none' | Единичная функция - Возвращает каждый входной элемент, не выполняя никакого преобразования, то есть f (x) = x |
Если Activations
содержит только одну функцию активации, тогда это функция активации для каждого полносвязного слоя модели нейронной сети, исключая конечный полносвязный слой. Функция активации для конечного полносвязного слоя всегда является softmax (OutputLayerActivation
).
Если Activations
является массивом функций активации, тогда i-й элемент является функцией активации для i-го слоя модели нейронной сети.
Типы данных: char
| cell
OutputLayerActivation
- Функция активации для конечного полносвязного слоя'softmax'
Это свойство доступно только для чтения.
Функция активации для конечного полносвязного слоя, возвращенная следующим 'softmax'
. Функция принимает каждый входной xi и возвращает следующее, где K количество классов в переменной отклика:
Результаты соответствуют предсказанным классификационным оценкам (или апостериорной вероятности).
PredictorNames
- Имена переменных предиктораЭто свойство доступно только для чтения.
Имена переменных предиктора, возвращенные как массив ячеек из векторов символов. Порядок элементов PredictorNames
соответствует порядку, в котором имена предикторов появляются в обучающих данных.
Типы данных: cell
CategoricalPredictors
- Категориальные индексы предиктора[]
Это свойство доступно только для чтения.
Категориальные индексы предиктора, возвращенные как вектор положительных целых чисел. Принимая, что данные предиктора содержат наблюдения в строках, CategoricalPredictors
содержит значения индекса, соответствующие столбцам данных предиктора, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пустое ([]
).
Типы данных: double
ExpandedPredictorNames
- Расширенные имена предикторовЭто свойство доступно только для чтения.
Расширенные имена предикторов, возвращенные как массив ячеек из векторов символов. Если модель использует кодировку для категориальных переменных, то ExpandedPredictorNames
включает имена, которые описывают расширенные переменные. В противном случае ExpandedPredictorNames
то же, что и PredictorNames
.
Типы данных: cell
ClassNames
- Уникальные имена классовЭто свойство доступно только для чтения.
Уникальные имена классов, используемые в обучении, возвращенные как числовой вектор, категориальный вектор, логический вектор, символьный массив или массив ячеек из векторов символов. ClassNames
имеет тот совпадающий тип данных, что и метки классов в переменной отклика, используемой для обучения модели. (Программа обрабатывает массивы строк как массивы ячеек векторов символов.)
ClassNames
также определяет порядок классов.
Типы данных: single
| double
| categorical
| logical
| char
| cell
ResponseName
- Имя переменной откликаЭто свойство доступно только для чтения.
Имя переменной отклика, возвращаемое как вектор символов.
Типы данных: char
Cost
- Расходы на неправильную классификациюЭто свойство доступно только для чтения.
Стоимость неправильной классификации, возвращенная как числовая квадратная матрица, где Cost(i,j)
- стоимость классификации точки в класс j
если его класс true i
. Матрица затрат всегда имеет следующую форму: Cost(i,j) = 1
если i ~= j
, и Cost(i,j) = 0
если i = j
. Строки соответствуют истинному классу, а столбцы - предсказанному классу. Порядок строк и столбцов Cost
соответствует порядку классов в ClassNames
.
Типы данных: double
Prior
- Предыдущие вероятностиЭто свойство доступно только для чтения.
Предыдущие вероятности для каждого класса, возвращенные как числовой вектор. Порядок элементов Prior
соответствует элементам ClassNames
.
Типы данных: double
ScoreTransform
- Преобразование счетаПреобразование счета, заданное как вектор символов или указатель на функцию. ScoreTransform
представляет встроенную функцию преобразования или указатель на функцию для преобразования предсказанных классификационных оценок.
Чтобы изменить функцию преобразования счета на function
для примера используйте запись через точку.
Для встроенной функции введите вектор символов.
Mdl.ScoreTransform = 'function';
В этой таблице описываются доступные встроенные функции.
Значение | Описание |
---|---|
'doublelogit' | 1/(1 + e–2x) |
'invlogit' | журнал (x/( 1 - x)) |
'ismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равным 0 |
'logit' | 1/(1 + e–x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2 x – 1 |
'symmetricismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1 |
'symmetriclogit' | 2/(1 + e–x) – 1 |
Для MATLAB® function или функция, которую вы задаете, вводите указатель на функцию.
Mdl.ScoreTransform = @function;
function
необходимо принять матрицу (исходные счета) и вернуть матрицу того же размера (преобразованные счета).
Типы данных: char
| function_handle
compareHoldout | Сравните точности двух классификационных моделей с помощью новых данных |
edge | Классификационные ребра для классификатора нейронных сетей |
loss | Классификационные потери для классификатора нейронной сети |
margin | Классификационные поля для классификатора нейронной сети |
partialDependence | Вычисление частичной зависимости |
plotPartialDependence | Создайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE) |
predict | Классифицируйте наблюдения с помощью классификатора нейронных сетей |
Уменьшите размер классификатора полной нейронной сети, удалив обучающие данные из модели. Можно использовать компактную модель для повышения эффективности памяти.
Загрузите patients
набор данных. Составьте таблицу из набора данных. Каждая строка соответствует одному пациенту, и каждый столбец соответствует диагностической переменной. Используйте Smoker
переменная как переменная отклика, а остальная часть переменных как предикторы.
load patients
tbl = table(Diastolic,Systolic,Gender,Height,Weight,Age,Smoker);
Обучите классификатор нейронной сети, используя данные. Задайте Smoker
столбец tbl
как переменная отклика. Задайте, чтобы стандартизировать числовые предикторы.
Mdl = fitcnet(tbl,"Smoker","Standardize",true)
Mdl = ClassificationNeuralNetwork PredictorNames: {'Diastolic' 'Systolic' 'Gender' 'Height' 'Weight' 'Age'} ResponseName: 'Smoker' CategoricalPredictors: 3 ClassNames: [0 1] ScoreTransform: 'none' NumObservations: 100 LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [36×7 table] Properties, Methods
Mdl
является полным ClassificationNeuralNetwork
объект модели.
Уменьшите размер модели при помощи compact
.
compactMdl = compact(Mdl)
compactMdl = CompactClassificationNeuralNetwork LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Properties, Methods
compactMdl
является CompactClassificationNeuralNetwork
объект модели. compactMdl
содержит меньше свойств, чем полная модель Mdl
.
Отобразите объем памяти, используемый каждой моделью нейронной сети.
whos("Mdl","compactMdl")
Name Size Bytes Class Attributes Mdl 1x1 18836 ClassificationNeuralNetwork compactMdl 1x1 6663 classreg.learning.classif.CompactClassificationNeuralNetwork
Полная модель больше, чем компактная модель.
ClassificationNeuralNetwork
| ClassificationPartitionedModel
| compact
| edge
| fitcnet
| loss
| margin
| predict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.