Пометьте данные с помощью полууправляемого метода на основе графов
fitsemigraph
создает полууправляемую модель, основанную на графе, с заданными маркированными данными, метками и немаркированными данными. Возвращенная модель содержит подгоняемые метки для немаркированных данных и соответствующих счетов. Эта модель может также предсказать метки для невидимых данных, используя predict
функция объекта. Для получения дополнительной информации о различных алгоритмах маркировки, см. Алгоритмы.
использует маркированные данные в Mdl
= fitsemigraph(Tbl
,ResponseVarName
,UnlabeledTbl
)Tbl
, где Tbl.ResponseVarName
содержит метки для маркированных данных и возвращает установленные метки для немеченых данных в UnlabeledTbl
. Функция сохраняет подгоненные метки и соответствующие счета в FittedLabels
и LabelScores
свойства объекта Mdl
, соответственно.
использует Mdl
= fitsemigraph(Tbl
,formula
,UnlabeledTbl
)formula
чтобы задать переменную отклика (вектор меток) и переменные предиктора для использования среди переменных в Tbl
. Функция использует эти переменные, чтобы пометить данные в UnlabeledTbl
.
использует данные предиктора в Mdl
= fitsemigraph(Tbl
,Y
,UnlabeledTbl
)Tbl
и метки в Y
чтобы пометить данные в UnlabeledTbl
.
использует данные предиктора в Mdl
= fitsemigraph(X
,Y
,UnlabeledX
)X
и метки в Y
чтобы пометить данные в UnlabeledX
.
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к любой комбинации входных аргументов в предыдущих синтаксисах. Для примера можно задать метод маркировки, количество итераций и порог оценки для использования в алгоритме маркировки.Mdl
= fitsemigraph(___,Name,Value
)
Подгонка меток к немаркированным данным с помощью полууправляемого метода на основе графов.
Случайным образом сгенерируйте 60 наблюдений маркированных данных с 20 наблюдениями в каждом из трех классов.
rng('default') % For reproducibility labeledX = [randn(20,2)*0.25 + ones(20,2); randn(20,2)*0.25 - ones(20,2); randn(20,2)*0.5]; Y = [ones(20,1); ones(20,1)*2; ones(20,1)*3];
Визуализируйте маркированные данные с помощью графика поля точек. Наблюдения в одном классе имеют одинаковый цвет. Заметьте, что данные разделены на три кластера с очень небольшим перекрытием.
scatter(labeledX(:,1),labeledX(:,2),[],Y,'filled') title('Labeled Data')
Случайным образом сгенерируйте 300 дополнительных наблюдений немаркированных данных со 100 наблюдениями на класс. В целях валидации отслеживайте истинные метки для немаркированных данных.
unlabeledX = [randn(100,2)*0.25 + ones(100,2); randn(100,2)*0.25 - ones(100,2); randn(100,2)*0.5]; trueLabels = [ones(100,1); ones(100,1)*2; ones(100,1)*3];
Подгонка меток к немаркированным данным с помощью полууправляемого метода на основе графов. Функция fitsemigraph
возвращает SemiSupervisedGraphModel
объект, чей FittedLabels
свойство содержит установленные метки для немаркированных данных и LabelScores
свойство содержит связанные счета меток.
Mdl = fitsemigraph(labeledX,Y,unlabeledX)
Mdl = SemiSupervisedGraphModel with properties: FittedLabels: [300x1 double] LabelScores: [300x3 double] ClassNames: [1 2 3] ResponseName: 'Y' CategoricalPredictors: [] Method: 'labelpropagation' Properties, Methods
Визуализируйте результаты подгонки метки с помощью графика поля точек. Используйте подобранные метки, чтобы задать цвет наблюдений, и используйте максимальные счета меток, чтобы задать прозрачность наблюдений. Наблюдения с меньшей прозрачностью маркируются с большей доверие. Заметьте, что наблюдения, которые находятся ближе к контурам кластера, помечаются большей неопределенностью.
maxLabelScores = max(Mdl.LabelScores,[],2); rescaledScores = rescale(maxLabelScores,0.05,0.95); scatter(unlabeledX(:,1),unlabeledX(:,2),[],Mdl.FittedLabels,'filled', ... 'MarkerFaceAlpha','flat','AlphaData',rescaledScores); title('Fitted Labels for Unlabeled Data')
Определите точность маркировки при помощи истинных меток для немаркированных данных.
numWrongLabels = sum(trueLabels ~= Mdl.FittedLabels)
numWrongLabels = 10
Только 10 из 300 наблюдений в unlabeledX
неправильно маркированы.
Подгонка меток к немаркированным данным с помощью полууправляемого метода на основе графов. Укажите тип ближайшего соседнего графика.
Загрузите patients
набор данных. Составьте таблицу из переменных Distolic
, Gender
и так далее. Для каждого наблюдения или строки в таблице обработайте Smoker
значение как метка для этого наблюдения.
load patients
Tbl = table(Diastolic,Gender,Height,Systolic,Weight,Smoker);
Предположим, что только 20% наблюдений маркированы. Чтобы воссоздать этот сценарий, случайным образом выберете 20 маркированных наблюдений и сохраните их в таблице unlabeledTbl
. Удалите метку из остальных наблюдений и сохраните их в таблице unlabeledTbl
. Чтобы проверить точность подгонки меток в конце примера, сохраните истинные метки для немаркированных данных в переменной trueLabels
.
rng('default') % For reproducibility of the sampling [labeledTbl,Idx] = datasample(Tbl,20,'Replace',false); unlabeledTbl = Tbl; unlabeledTbl(Idx,:) = []; trueLabels = unlabeledTbl.Smoker; unlabeledTbl.Smoker = [];
Подгонка меток к немаркированным данным с помощью полууправляемого метода на основе графов. Используйте взаимный тип ближайшего соседнего графика, где две точки соединяются, когда они являются ближайшими соседями друг друга. Задайте, чтобы стандартизировать числовые предикторы. Функция fitsemigraph
возвращает объект, чей FittedLabels
свойство содержит установленные метки для немаркированных данных.
Mdl = fitsemigraph(labeledTbl,'Smoker',unlabeledTbl,'KNNGraphType','mutual', ... 'Standardize',true); fittedLabels = Mdl.FittedLabels;
Идентифицируйте наблюдения, которые неправильно маркированы путем сравнения сохраненных истинных меток для немеченых данных с подобранными метками, возвращенными полууправляемым методом на основе графов.
wrongIdx = (trueLabels ~= fittedLabels); wrongTbl = unlabeledTbl(wrongIdx,:);
Визуализируйте подгоняемые результаты метки для немаркированных данных. На графике обведены неправильно маркированные наблюдения.
gscatter(unlabeledTbl.Diastolic,unlabeledTbl.Systolic, ... fittedLabels) hold on plot(wrongTbl.Diastolic,wrongTbl.Systolic, ... 'ko','MarkerSize',8) xlabel('Diastolic') ylabel('Systolic') legend('Nonsmoker','Smoker','Mislabeled') title('Fitted Labels for Unlabeled Data')
Tbl
- Маркированные выборочные данныеМаркированные выборочные данные, заданные как таблица. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору. Опционально Tbl
может содержать один дополнительный столбец для переменной отклика (вектор меток). Многополюсные переменные, массивы ячеек, отличные от массивов ячеек векторов символов, и порядковые категориальные переменные не поддерживаются.
Если Tbl
содержит переменную отклика, и необходимо использовать все оставшиеся переменные в Tbl
в качестве предикторов, затем задайте переменную отклика используя ResponseVarName
.
Если Tbl
содержит переменную отклика, и необходимо использовать только подмножество остальных переменных в Tbl
в качестве предикторов задайте формулу, используя formula
.
Если Tbl
не содержит переменную отклика, задает переменную отклика используя Y
. Длина переменной отклика и количество строк в Tbl
должно быть равным.
Типы данных: table
UnlabeledTbl
- Немаркированные выборочные данныеНемаркированные выборочные данные, заданные как таблица. Каждая строка UnlabeledTbl
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору. UnlabeledTbl
должны содержать те же предикторы, что и содержащиеся в Tbl
.
Типы данных: table
ResponseVarName
- Имя переменной откликаTbl
Имя переменной отклика, заданное как имя переменной в Tbl
. Переменная отклика содержит метки классов для выборочных данных в Tbl
.
Вы должны задать ResponseVarName
как вектор символов или строковый скаляр. Для примера, если переменная отклика Y
хранится как Tbl.Y
, затем укажите его следующим 'Y'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая Y
, как предикторы.
Переменная отклика должна быть категориальными символьными или строковыми массивами, логическим или числовым вектором или массивом ячеек из векторов символов. Если Y
является символьным массивом, тогда каждый элемент переменной отклика должен соответствовать одной строке массива.
Хорошей практикой является определение порядка классов при помощи ClassNames
аргумент пары "имя-значение".
Типы данных: char
| string
formula
- Объяснительная модель переменной отклика и подмножества переменных предиктораОбъяснительная модель переменной отклика и подмножества переменных предиктора, заданная в виде вектора символов или строкового скаляра в форме 'Y~X1+X2+X3'
. В этой форме Y
представляет переменную отклика, и X1
, X2
, и X3
представляют переменные предиктора.
Чтобы задать подмножество переменных в Tbl
в качестве предикторов используйте формулу. Если вы задаете формулу, то программное обеспечение не использует никаких переменных в Tbl
которые не появляются в formula
.
Имена переменных в формуле должны быть обоими именами переменных в Tbl
(Tbl.Properties.VariableNames
) и действительный MATLAB® идентификаторы. Можно проверить имена переменных в Tbl
при помощи isvarname
функция. Если имена переменных недопустимы, можно преобразовать их, используя matlab.lang.makeValidName
функция.
Типы данных: char
| string
Y
- Метки классовМетки класса, заданные как числовой, категориальный или логический вектор, символьные или строковые массивы или массив ячеек из векторов символов.
Если Y
является символьный массив, тогда каждый элемент меток классов должен соответствовать одной строке массива.
Хорошей практикой является определение порядка классов при помощи ClassNames
аргумент пары "имя-значение".
Типы данных: single
| double
| categorical
| logical
| char
| string
| cell
X
- Маркированные данные предиктораМаркированные данные предиктора, заданные как числовая матрица.
Каждая строка X
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору.
Длина Y
и количество строк в X
должно быть равным.
Чтобы задать имена предикторов в порядке их внешнего вида в X
, используйте PredictorNames
аргумент пары "имя-значение".
Типы данных: single
| double
UnlabeledX
- Немаркированные данные предиктораНемаркированные данные предиктора, заданные как числовая матрица. Каждая строка UnlabeledX
соответствует одному наблюдению, и каждый столбец соответствует одному предиктору. UnlabeledX
должны иметь те же предикторы, что и X
, в том же порядке.
Типы данных: single
| double
Примечание
Программное обеспечение лечит NaN
, пустой символьный вектор (''
), пустая строка (""
), <missing>
, и <undefined>
элементы как отсутствующие данные. Программа удаляет строки данных предиктора (наблюдений) с отсутствующими значениями.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
fitsemigraph(Tbl,'Y',UnlabeledTbl,'Method','labelspreading','IterationLimit',2e3)
задает использование метода метки с расширением маркировки и выполнение максимум 2000 итераций.'Method'
- Метод маркировки'labelpropagation'
(по умолчанию) | 'labelpropagationexact'
| 'labelspreading'
| 'labelspreadingexact'
Метод маркировки, заданный как разделенная разделенными запятой парами, состоящая из 'Method'
и одно из этих значений.
Значение | Описание | Аргументы в виде пар имя-значение для конкретного метода |
---|---|---|
'labelpropagation' | Итерационно распространите метки между узлами в графике подобия. Для получения дополнительной информации см. Раздел «Распространение меток». |
|
'labelpropagationexact' | Используйте точную формулу для распространения меток. Для получения дополнительной информации см. Раздел «Распространение меток». | Ничего |
'labelspreading' | Итерационно распределите метки по узлам в графике подобия. Для получения дополнительной информации см. Раздел «Расширение метки». |
|
'labelspreadingexact' | Используйте точную формулу для распространения меток. Для получения дополнительной информации см. Раздел «Расширение метки». |
|
Пример: 'Method','labelspreading'
Типы данных: char
| string
'Alpha'
- Относительный вес соседних меток к исходной метке0.01
(по умолчанию) | скалярное значение в области значений (0,1)Относительный вес соседних меток к начальной метке для маркированных наблюдений в X
или Tbl
, заданная как разделенная разделенными запятой парами, состоящая из 'Alpha'
и скалярное значение в области значений (0,1). Значение, близкое к 0, указывает, что fitsemigraph
обрабатывает метки первоначально маркированных наблюдений почти как основную истину. Значение, близкое к 1, указывает, что fitsemigraph
обрабатывает метки первоначально маркированных наблюдений почти как шум.
Примечание
Этот аргумент действителен только, когда Method
значение 'labelspreading'
или 'labelspreadingexact'
.
Пример: 'Alpha',0.05
Типы данных: single
| double
'IterationLimit'
- Максимальное количество итераций1e3
(по умолчанию) | положительный целочисленный скалярМаксимальное количество итераций, заданное как разделенная разделенными запятой парами, состоящая из 'IterationLimit'
и положительный целочисленный скаляр. fitsemigraph
функция возвращает Mdl
, который содержит подгоняемые метки и счета, когда этот предел достигнут, даже если алгоритм не сходится.
Примечание
Этот аргумент действителен только, когда Method
значение 'labelpropagation'
или 'labelspreading'
.
Пример: 'IterationLimit',2e3
Типы данных: single
| double
'Tolerance'
- Допуск для абсолютного различия счетов в последующих итерациях1e-3
(по умолчанию) | неотрицательной скаляромДопуск для абсолютного различия счетов в последующих итерациях, заданный как разделенная разделенными запятой парами, состоящая из 'Tolerance'
и неотрицательный скаляр.
Примечание
Этот аргумент действителен только, когда Method
значение 'labelpropagation'
или 'labelspreading'
.
Пример: 'Tolerance',1e-4
Типы данных: single
| double
'CategoricalPredictors'
- Категориальный список предикторов'all'
Категориальный список предикторов, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
Вектор положительных целых чисел |
Каждая запись в векторе является индексом значением, соответствующим столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся между 1 и Если |
Логический вектор |
A |
Матрица символов | Каждая строка матрицы является именем переменной. Имена должны совпадать с записями в PredictorNames . Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину. |
Строковые массивы или массив ячеек векторов символов | Каждый элемент массива является именем переменной. Имена должны совпадать с записями в PredictorNames . |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице, fitsemigraph
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Порядковые категориальные переменные не поддерживаются. Если данные предиктора являются матрицей, fitsemigraph
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью 'CategoricalPredictors'
аргумент пары "имя-значение".
fitsemigraph
кодирует категориальные переменные как числовые переменные путем присвоения положительного целочисленного значения каждой категории. Когда вы используете категориальные предикторы, убедитесь, что вы используете соответствующую метрику расстояния (Distance
).
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'ClassNames'
- Имена классов, используемых для маркировкиИмена классов, используемых для маркировки, заданные как разделенная разделенными запятой парами, состоящая из 'ClassNames'
и категориальные символьные или строковые массивы, логический или числовой вектор или массив ячеек из векторов символов. ClassNames
должны иметь тот совпадающий тип данных, что и Y
.
Если ClassNames
является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.
Использование 'ClassNames'
кому:
Закажите классы.
Задайте порядок любой размерности входного или выходного аргумента, которая соответствует порядку классов. Для примера используйте 'ClassNames'
для определения порядка классификационных оценок столбцов в Mdl.LabelScores
.
Выберите подмножество классов для маркировки. Например, предположим, что набор всех различных имен классов в Y
является {'a','b','c'}
. Чтобы использовать наблюдения из классов 'a'
и 'c'
только, задайте 'ClassNames',{'a','c'}
.
Значение по умолчанию для ClassNames
- набор всех различных имен классов в Y
.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
'PredictorNames'
- Имена переменных предиктораИмена переменных предиктора, заданные как разделенная разделенными запятой парами, состоящая из 'PredictorNames'
и строковые массивы уникальных имен или массивов ячеек из уникальных векторов символов. Функциональность 'PredictorNames'
зависит от способа предоставления данных предиктора.
Если вы поставляете X
, Y
, и UnlabeledX
, тогда можно использовать 'PredictorNames'
для назначения имен переменным предиктора в X
и UnlabeledX
.
Порядок имен в PredictorNames
должен соответствовать порядку столбцов X
. То есть PredictorNames{1}
- имя X(:,1)
, PredictorNames{2}
- имя X(:,2)
и так далее. Кроме того, size(X,2)
и numel(PredictorNames)
должно быть равным.
По умолчанию PredictorNames
является {'x1','x2',...}
.
Если вы поставляете Tbl
и UnlabeledTbl
, тогда можно использовать 'PredictorNames'
чтобы выбрать, какие переменные предиктора использовать. То есть, fitsemigraph
использует только переменные предиктора в PredictorNames
и переменную отклика для маркировки немаркированных данных.
PredictorNames
должен быть подмножеством Tbl.Properties.VariableNames
и не может включать имя переменной отклика.
По умолчанию PredictorNames
содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов, использующих любой из 'PredictorNames'
или formula
, но не то и другое.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string
| cell
'ResponseName'
- Имя переменной отклика'Y'
(по умолчанию) | символьный вектор | строковый скалярИмя переменной отклика, заданное как разделенная разделенными запятой парами, состоящая из 'ResponseName'
и вектор символов или строковый скаляр.
Если вы поставляете Y
, тогда можно использовать 'ResponseName'
чтобы задать имя для переменной отклика.
Если вы поставляете ResponseVarName
или formula
, тогда вы не можете использовать 'ResponseName'
.
Пример: 'ResponseName','response'
Типы данных: char
| string
'Standardize'
- Флаг для стандартизации данных предиктораfalse
или 0
(по умолчанию) | true
или 1
Флаг для стандартизации данных предиктора, заданный как разделенная разделенными запятой парами, состоящая из 'Standardize'
и числовое или логическое 0
(false
) или 1
(true
). Если вы задаете 'Standardize',true
программное обеспечение объединяет маркированные и немеченые данные предиктора, а затем центрирует и масштабирует каждую числовую переменную предиктора на соответствующее среднее значение столбца и стандартное отклонение. Программное обеспечение не стандартизирует категориальные предикторы.
Пример: 'Standardize',true
Типы данных: double
| logical
'Distance'
- Метрика расстоянияМетрика расстояния, заданная как разделенная разделенными запятой парами, состоящая из 'Distance'
и вектор символов или строковый скаляр.
Если все переменные предиктора являются непрерывными (числовыми) переменными, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'euclidean' | Евклидово расстояние |
'seuclidean' | Стандартизированное евклидово расстояние - Каждое различие координат между наблюдениями масштабируется путем деления на соответствующий элемент стандартного отклонения |
'mahalanobis' | Расстояние Махаланобиса - по умолчанию расстояние вычисляется с помощью |
'minkowski' | Расстояние Минковского - показатель по умолчанию является 2. Чтобы задать другую экспоненту, используйте |
'chebychev' | Расстояние Чебычева (максимальное различие координат) |
'cityblock' | Расстояние между блоками |
'correlation' | Один минус корреляция выборки между наблюдениями (рассматривается как последовательности значений) |
'cosine' | Один минус косинус включенного угла между наблюдениями (обрабатывается как векторы) |
'spearman' | Один минус выборки корреляции ранга Спирмена между наблюдениями (рассматриваются как последовательности значений) |
Примечание
Если вы задаете одну из этих метрик расстояния, и данные предиктора включают категориальные предикторы, то программа рассматривает каждый категориальный предиктор как числовую переменную с каждой категорией, представленной положительным целым числом.
Если все переменные предиктора являются категориальными переменными, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'hamming' | Расстояние Хемминга, которое является процентом координат, которые различаются |
'jaccard' | Один минус коэффициент Жаккарда, который является процентом ненулевых координат, которые различаются |
Примечание
Если вы задаете одну из этих метрик расстояния, и данные предиктора включают непрерывные (числовые) предикторы, то программное обеспечение рассматривает каждый непрерывный предиктор как категориальную переменную.
Если переменные-предикторы являются смесью непрерывных (числовых) и категориальных переменных, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'goodall3' | Измененное расстояние Goodall |
'ofd' | Частотное расстояние вхождения |
Значение по умолчанию 'euclidean'
если все переменные предиктора непрерывны, и 'goodall3'
если какая-либо из переменных предиктора категориальна. Для получения дополнительной информации о различных метриках расстояния, см. «Метрики расстояния».
Пример: 'Distance','ofd'
Типы данных: char
| string
'Scale'
- Масштабный параметр для стандартизированной метрики Евклидова расстоянияМасштабный параметр для стандартизированной метрики Евклидова расстояния, заданный как разделенная разделенными запятой парами, состоящая из 'Scale'
и неотрицательный вектор. Длина Scale
равен количеству предикторов. Каждое различие координат между двумя наблюдениями масштабируется соответствующим элементом Scale
.
Параметр шкалы по умолчанию std(PD,'omitnan')
, где PD
- данные предиктора, как маркированные, так и немаркированные.
Примечание
Этот аргумент действителен только в том случае, если Distance
является 'seuclidean'
.
Пример: 'Scale',iqr(X)
Типы данных: single
| double
'Cov'
- Ковариационная матрица для метрики расстояния МахаланобисаКовариационная матрица для метрики расстояния Махаланобиса, заданная как разделенная разделенными запятой парами, состоящая из 'Cov'
и a p -by p положительно определенная матрица, где p - количество предикторов.
Ковариационная матрица по умолчанию cov(PD,'omitrows')
, где PD
- данные предиктора, как маркированные, так и немаркированные.
Примечание
Этот аргумент действителен только в том случае, если Distance
является 'mahalanobis'
.
Пример: 'Cov',eye(3)
Типы данных: single
| double
'P'
- Экспонента для метрики расстояния Минковского2
(по умолчанию) | положительная скалярная величинаЭкспонента для метрики расстояния Минковского, заданная как разделенная разделенными запятой парами, состоящая из 'P'
и положительная скалярная величина.
Примечание
Этот аргумент действителен только в том случае, если Distance
является 'minkowski'
.
Пример: 'P',3
Типы данных: single
| double
'SimilarityGraph'
- Тип графика подобия'knn'
(по умолчанию) | 'epsilon'
Тип графика подобия, используемого в алгоритме маркировки, заданный как разделенная разделенными запятой парами, состоящая из 'SimilarityGraph'
и одно из этих значений.
Значение | Описание | Аргументы в виде пар имя-значение для конкретного графа |
---|---|---|
'knn' | Создайте график с помощью ближайших соседей. |
|
'epsilon' | Построение графика осуществляется с помощью поиска по радиусу. Вы должны задать значение для Radius если вы используете эту опцию. | 'Radius' - Радиус поиска для ближайших соседей, используемых для построения графика подобия |
Для получения дополнительной информации см. «График подобия».
Пример: 'SimilarityGraph','epsilon','Radius',2
Типы данных: char
| string
'NumNeighbors'
- Количество ближайших соседейКоличество ближайших соседей, используемых для построения графика подобия, заданное как разделенная разделенными запятой парами, состоящая из 'NumNeighbors'
и положительный целочисленный скаляр.
Количество соседей по умолчанию log(n)
, где n
- количество наблюдений в данных предиктора, как маркированных, так и немеченых.
Примечание
Этот аргумент действителен только в том случае, если SimilarityGraph
является 'knn'
.
Пример: 'NumNeighbors',10
Типы данных: single
| double
'KNNGraphType'
- Тип графа ближайшего соседа'complete'
(по умолчанию) | 'mutual'
Тип ближайшего соседнего графика, заданный как разделенная запятой пара, состоящий из 'KNNGraphType'
и одно из этих значений.
Значение | Описание |
---|---|
'complete' | Соединяет две точки i и j, когда или i является ближайшим соседом j или j является ближайшим соседом i. Эта опция приводит к более плотному представлению матрицы подобия. |
'mutual' | Соединяет две точки i и j, когда i является ближайшим соседом j и j является ближайшим соседом i. Эта опция приводит к более разреженному представлению матрицы подобия. |
Примечание
Этот аргумент действителен только в том случае, если SimilarityGraph
является 'knn'
.
Пример: 'KNNGraphType','mutual'
Типы данных: char
| string
'Radius'
- Радиус поискаРадиус поиска для ближайших соседей, используемых для построения графика подобия, заданный как разделенная разделенными запятой парами, состоящая из 'Radius'
и неотрицательный скаляр.
Примечание
Вы должны задать этот аргумент, если SimilarityGraph
является 'epsilon'
.
Пример: 'Radius',5
Типы данных: single
| double
'KernelScale'
- Масштабный коэффициент1
(по умолчанию) | 'auto'
| положительная скалярная величинаМасштабный коэффициент для ядра, заданный как разделенная разделенными запятой парами, состоящая из 'KernelScale'
и 'auto'
или положительная скалярная величина. Программа использует коэффициент шкалы, чтобы преобразовать расстояния к измерениям подобия.
The 'auto'
опция поддерживается только для 'euclidean'
и 'seuclidean'
метрики расстояния.
Если вы задаете 'auto'
затем программа выбирает соответствующий масштабный коэффициент с помощью эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Чтобы воспроизвести результаты, установите начальное число случайных чисел используя rng
перед вызовом fitsemigraph
.
Пример: 'KernelScale','auto'
Типы данных: single
| double
| char
| string
Mdl
- Полууправляемый классификатор на основе графаSemiSupervisedGraphModel
объектПолууправляемый классификатор на основе графов, возвращенный как SemiSupervisedGraphModel
объект. Используйте запись через точку для доступа к свойствам объекта. Для примера, чтобы получить подобранные метки для немаркированных данных и их соответствующих счетов, введите Mdl.FittedLabels
и Mdl.LabelScores
, соответственно.
Метрика расстояния является функцией, которая задает расстояние между двумя наблюдениями. fitsemigraph
поддерживает различные метрики расстояния для непрерывных (числовых) предикторов, категориальных предикторов и смеси непрерывных и категориальных предикторов.
Учитывая mx n матрицей данных X, который рассматривает как mx (1-by-<reservedrangesplaceholder13>) векторы - строки x1, x2..., xmx, и my n матрица данных Y, который рассматривают как my (1-by-<reservedrangesplaceholder5>) векторы - строки y1, y2..., ymy, различные расстояния между вектором xs и yt определены следующим образом:
Метрики расстояния для непрерывных (числовых) переменных
Евклидово расстояние
Евклидово расстояние является частным случаем расстояния Минковского, где p = 2.
Стандартизированное Евклидово расстояние
где V - n -by n диагональная матрица, j-й диагональный элемент которой (S (j))2, где S является вектором масштабирующих коэффициентов для каждой размерности.
Расстояние Махаланобиса
где C - ковариационная матрица.
Расстояние Минковского
Для особого случая p = 1 расстояние Минковского даёт городскую блочную дистанцию. Для особого случая p = 2 расстояние Минковского даёт евклидово расстояние. Для особого случая p = ∞ дистанция Минковского даёт дистанцию Чебычева.
Чебычевская дистанция
Дистанция Чебычева является частным случаем дистанции Минковского, где p = ∞.
Расстояние между блоками
Расстояние городского блока является частным случаем расстояния Минковского, где p = 1.
Расстояние корреляции
где
и
Косинусоидальное расстояние
Расстояние копьеносца
где
rsj - это ранг xsj, занятый x 1 j, x 2 j,... xmx,j, как вычисляетсяtiedrank
.
rtj - это ранг ytj, занятый y 1 j, y 2 j,... ymy,j, как вычисляетсяtiedrank
.
rs и rt являются координатно-ранговыми векторами xs и yt, то есть rs = (rs 1, rs 2,... rsn) и rt = (r t 1, r t 2,... rtn).
.
.
Метрики расстояния для категориальных переменных
Расстояние Хемминга
Расстояние Жаккара
Метрики расстояния для смеси непрерывных (числовых) и категориальных переменных
Измененное расстояние Goodall
Это расстояние является вариантом расстояния Goodall, которое присваивает небольшое расстояние, если совпадающие значения нечасты независимо от частот других значений. Для несоответствий вклад предиктора в расстояние равен 1/( количество переменных).
Частотное расстояние вхождения
Для соответствия, частотное расстояние вхождения присваивает нулевое расстояние. Для несоответствия, частотное расстояние вхождения присваивает более высокое расстояние по менее частому значению и более низкое расстояние по более частому значению.
График подобия моделирует отношения локального соседства между наблюдениями в данных предиктора, как маркированных, так и не маркированных, как неориентированный график. Узлы в графике представляют наблюдения, а ребра, которые не имеют направления, представляют связи между наблюдениями.
Если попарное расстояние Disti,j между любыми двумя узлами i и j положительно (или больше определенного порога), то график подобия соединяет эти два узла с помощью ребра. Ребро между этими двумя узлами взвешивается попарным Si,j подобия, где , для заданного значения σ шкалы ядра.
fitsemigraph
поддерживает эти два метода построения графика подобия:
Метод ближайшего соседа (если SimilarityGraph
является 'knn'
(по умолчанию)): fitsemigraph
соединяет наблюдения в данных предиктора, как маркированных, так и немеченых, которые являются ближайшими соседями.
Используйте 'NumNeighbors'
аргумент пары "имя-значение" для определения количества ближайших соседей.
Используйте 'KNNGraphType'
аргумент пары "имя-значение", чтобы указать, делать ли 'complete'
или 'mutual'
соединение точек.
Метод поиска радиуса (если SimilarityGraph
является 'epsilon'
): fitsemigraph
соединяет наблюдения, парные расстояния которых меньше заданного радиуса поиска. Необходимо задать радиус поиска для ближайших соседей, используемых для построения графика подобия при помощи 'Radius'
аргумент пары "имя-значение".
Матрица подобия является матричным представлением графика подобия. Матрица n -by n содержит попарные значения подобия между связанными узлами в графике подобия. Матрица подобия графика также называется матрицей смежности.
Матрица подобия симметрична, потому что ребра графика подобия не имеют направления. Значение Si,j = 0
означает, что узлы < reservedrangesplaceholder1 > и < reservedrangesplaceholder0 > графика подобия не связаны.
Программа создает график подобия (SimilarityGraph
) с маркированными и немаркированными наблюдениями в качестве узлов и распределяет информацию о метках от маркированных наблюдений к немаркированным наблюдениям с помощью распространения метки или распространения метки.
Чтобы распространить метки между узлами в графике подобия, итерационный алгоритм распространения метки (где Method
является 'labelpropagation'
) выполните следующие шаги:
Инициализируйте n -by K матрицу F (0), где n - количество узлов (или наблюдений) и K - количество классов.
Первые l строки соответствуют маркированным наблюдениям. Каждая строка содержит 1 в столбце, соответствующем истинной метке класса для этого наблюдения, и 0 в каждом другом столбце.
Последние u строки соответствуют немаркированным наблюдениям и содержат 0 во всех столбцах.
В t итерации (начиная с t = 1) обновляйте матрицу F с помощью вероятностного P матрицы перехода, так что , где .
Pi,j - вероятность передачи информации о метке от узла i к узлу j.
Si,j - вес ребра между узлом i и узлом j. Для определения Si,j см. «График подобия».
Чтобы завершить t итерации, зажимайте метки для маркированных наблюдений. То есть оставьте первые l строки F (t) равными их начальным значениям в F (0).
Повторите второй и третий шаги, пока значения F не сойдутся. Можно использовать IterationLimit
и Tolerance
значения для управления сходимостью.
Итоговая матрица F соответствует счетам для маркированных данных и немаркированных данных (LabelScores
). Для каждого наблюдения или строки в F столбец с максимальным счетом соответствует установленной метке класса (FittedLabels
).
Для получения дополнительной информации см. раздел [2].
Вместо использования итерационного алгоритма распространения меток можно использовать точный метод распространения меток (где Method
является 'labelpropagationexact'
). В этом случае u -by - K матрица информации о метке для немаркированных данных является FU = (I - PUU)-1PUL FL, где:
I - матрица тождеств.
PUU и PUL являются маркированными (L) и немечеными (U) подматрицами P, такими что .
FL - l -by - K матрица информации о метках для маркированных данных. Каждая строка содержит 1 в столбце, соответствующем истинной метке класса для этого наблюдения, и 0 в каждом другом столбце.
Матрица FU соответствует счетам для немаркированных данных (LabelScores
). Для каждого наблюдения или строки в FU столбец с максимальным счетом соответствует установленной метке класса (FittedLabels
). Для получения дополнительной информации см. раздел [3].
Чтобы распределить метки по узлам в графике подобия, итеративном алгоритме распространения расширения (где Method
является 'labelspreading'
) выполните следующие шаги:
Создайте n -by - K матричный Y, где n - количество узлов (или наблюдений) и K - количество классов.
Первые l строки соответствуют маркированным наблюдениям. Каждая строка содержит 1 в столбце, соответствующем истинной метке класса для этого наблюдения, и 0 в каждом другом столбце.
Последние u строки соответствуют немаркированным наблюдениям и содержат 0 во всех столбцах.
Создайте матрицу A, который является нормализованной версией n n матрицей подобия S с попарными значениями подобия Si,j, как определено в Графике Подобия. Предположим A = D-1/2S D-1/2, где D является n -by n диагональной матрицей.
При t итерации (начиная с t = 1) обновляйте матрицу F с помощью матрицы A и соседнего параметра веса метки α (Alpha
), так, чтобы F (<reservedrangesplaceholder8>) = <reservedrangesplaceholder7> <reservedrangesplaceholder6> <reservedrangesplaceholder5> (t - 1) + (1 - α) Y. Допустим F (0) равным Y.
Повторите третий шаг, пока значения F не сойдутся. Можно использовать IterationLimit
и Tolerance
значения для управления сходимостью.
Примите предел последовательности . Эта итоговая матрица соответствует счетам для маркированных данных и немаркированных данных (LabelScores
). Для каждого наблюдения или строки в матрице столбец с максимальным счетом соответствует установленной метке класса (FittedLabels
).
Вместо использования итерационного алгоритма расширения меток можно использовать точный метод расширения меток (где Method
является 'labelspreadingexact'
). В этом случае, n K матрицей информации о метке для маркированных и немаркированных данных F = (I - <reservedrangesplaceholder1> <reservedrangesplaceholder0>)-1Y, где I является матрицей тождеств. Матрица F соответствует счетам для маркированных данных и немеченых данных (LabelScores
). Для каждого наблюдения или строки в F столбец с максимальным счетом соответствует установленной метке класса (FittedLabels
).
Для получения дополнительной информации см. раздел [1].
[1] Чжоу, Денгён, Оливье Буске, Томас Навин Лал, Джейсон Вестон и Бернхард Шёлкопф. «Обучение с локальной и глобальной согласованностью». Усовершенствования в системах обработки нейронной информации 16 (NIPS). 2003.
[2] Чжу, Сяоцзинь и Зубин Храмани. «Изучение маркированных и немаркированных данных с распространением меток». Технический отчет CMU CALD CMU-CALD-02-107. 2002.
[3] Zhu, Xiaojin, Zoubin Ghahramani, and John Lafferty. «Полууправляемое обучение с использованием Гауссовых полей и гармонических функций». Двадцатая Международная конференция по машинному обучению (МКММ). 2003.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.