Пометьте данные с помощью, полуконтролировал основанный на графике метод
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
mislabeled.
Подгонка помечает к непомеченным данным при помощи полуконтролируемого основанного на графике метода. Задайте тип самого близкого соседнего графика.
Загрузите 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,:);
Визуализируйте подходящие результаты метки для непомеченных данных. Наблюдения Mislabeled окружены в графике.
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)
задает, чтобы использовать метод маркировки распространения метки и запустить максимум 2 000 итераций.Method
— Маркировка метода'labelpropagation'
(значение по умолчанию) | 'labelpropagationexact'
| 'labelspreading'
| 'labelspreadingexact'
Маркировка метода в виде разделенной запятой пары, состоящей из 'Method'
и одно из этих значений.
Значение | Описание | Специфичные для метода Аргументы в виде пар имя-значение |
---|---|---|
'labelpropagation' | Итеративно распространите метки через узлы в графике подобия. Для получения дополнительной информации смотрите, Маркируют Propagation. |
|
'labelpropagationexact' | Используйте точную формулу, чтобы распространить метки. Для получения дополнительной информации смотрите, Маркируют Propagation. | 'none' |
'labelspreading' | Итеративно распространите метки через узлы в графике подобия. Для получения дополнительной информации смотрите, Маркируют Spreading. |
|
'labelspreadingexact' | Используйте точную формулу, чтобы распространить метки. Для получения дополнительной информации смотрите, Маркируют Spreading. |
|
Пример: 'Method','labelspreading'
Типы данных: char |
string
Alpha
— Относительный вес соседних меток к начальной метке
(значение по умолчанию) | скалярное значение в области значений (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 и Если |
Логический вектор |
|
Символьная матрица | Каждая строка матрицы является именем переменного предиктора. Имена должны совпадать с записями в 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
ложь
) или 1
TRUE
). Если вы устанавливаете 'Standardize',true
, программное обеспечение комбинирует помеченные и непомеченные данные о предикторе, и затем сосредотачивает и масштабирует каждый числовой переменный предиктор соответствующим столбцом среднее и стандартное отклонение. Программное обеспечение не стандартизирует категориальные предикторы.
Пример: 'Standardize',true
Типы данных: double |
logical
Distance
— Метрика расстоянияМетрика расстояния в виде разделенной запятой пары, состоящей из 'Distance'
и вектор символов или строковый скаляр.
Если все переменные предикторы являются непрерывными (числовыми) переменными, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'euclidean' | Евклидово расстояние |
'seuclidean' | Стандартизированное Евклидово расстояние — Каждое координатное различие между наблюдениями масштабируется путем деления на соответствующий элемент стандартного отклонения |
'mahalanobis' | Расстояние Mahalanobis — По умолчанию, расстояние вычисляется с помощью |
'minkowski' | Расстояние Минковскего — экспонента по умолчанию равняется 2. Чтобы задать различную экспоненту, используйте |
'chebychev' | Расстояние Чебычева (максимум координируют различие), |
'cityblock' | Расстояние городского квартала |
'correlation' | Один минус корреляция выборки между наблюдениями (обработанный как последовательности значений) |
'cosine' | Один минус косинус включенного угла между наблюдениями (обработанный как векторы) |
'spearman' | Один минус порядковая корреляция демонстрационного Копьеносца между наблюдениями (обработанный как последовательности значений) |
Примечание
Если вы задаете одну из этих метрик расстояния, и данные о предикторе включают категориальные предикторы, то программное обеспечение обрабатывает каждый категориальный предиктор как числовую переменную с каждой категорией, представленной положительным целым числом.
Если все переменные предикторы являются категориальными переменными, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'hamming' | Расстояние Хемминга, которое является процентом координат, которые отличаются |
'jaccard' | Один минус коэффициент Jaccard, который является процентом ненулевых координат, которые отличаются |
Примечание
Если вы задаете одну из этих метрик расстояния, и данные о предикторе включают непрерывные (числовые) предикторы, то программное обеспечение обрабатывает каждый непрерывный предиктор как категориальную переменную.
Если переменные предикторы являются соединением непрерывных (числовых) и категориальных переменных, то можно задать одну из этих метрик расстояния.
Значение | Описание |
---|---|
'goodall3' | Модифицированное расстояние Гудолла |
'ofd' | Расстояние частоты вхождения |
Значением по умолчанию является 'euclidean'
если все переменные предикторы непрерывны, и 'goodall3'
если какой-либо из переменных предикторов является категориальным. Для получения дополнительной информации о различных метриках расстояния смотрите Метрики Расстояния.
Пример: 'Distance','ofd'
Типы данных: char |
string
Scale
— Масштабный коэффициент для стандартизированной Евклидовой метрики расстоянияМасштабный коэффициент для стандартизированной Евклидовой метрики расстояния в виде разделенной запятой пары, состоящей из 'Scale'
и неотрицательный вектор. Длина Scale
равно количеству предикторов. Каждое координатное различие между двумя наблюдениями масштабируется соответствующим элементом Scale
.
Масштабным коэффициентом по умолчанию является std(PD,'omitnan')
, где PD
данные о предикторе, оба помеченные и непомеченные.
Примечание
Этот аргумент допустим только если Distance
'seuclidean'
.
Пример: 'Scale',iqr(X)
Типы данных: single
| double
Cov
— Ковариационная матрица для метрики расстояния MahalanobisКовариационная матрица для метрики расстояния Mahalanobis в виде разделенной запятой пары, состоящей из 'Cov'
и p-by-p положительная определенная матрица, где p является количеством предикторов.
Ковариационной матрицей по умолчанию является cov(PD,'omitrows')
, где PD
данные о предикторе, оба помеченные и непомеченные.
Примечание
Этот аргумент допустим только если Distance
'mahalanobis'
.
Пример: 'Cov',eye(3)
Типы данных: single
| double
P
— Экспонента для метрики расстояния Минковскего
(значение по умолчанию) | положительная скалярная величинаЭкспонента для метрики расстояния Минковскего в виде разделенной запятой пары, состоящей из '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
ScaleFactor
(значение по умолчанию) | 'auto'
| положительная скалярная величинаМасштабный коэффициент для ядра в виде разделенной запятой пары, состоящей из 'KernelScale'
и 'auto'
или положительная скалярная величина. Программное обеспечение использует масштабный коэффициент, чтобы преобразовать расстояния до мер по подобию.
'auto'
опция поддерживается только для 'euclidean'
и 'seuclidean'
метрики расстояния.
Если вы задаете 'auto'
, затем программное обеспечение выбирает соответствующий масштабный коэффициент с помощью эвристической процедуры. Эта эвристическая процедура использует подвыборку, таким образом, оценки могут варьироваться от одного вызова до другого. Чтобы воспроизвести результаты, установите использование seed случайных чисел rng
перед вызовом fitsemigraph
.
Пример: 'KernelScale','auto'
Типы данных: single
| double
| char
| string
Mdl
— Полуконтролируемый основанный на графике классификаторSemiSupervisedGraphModel
объектПолуконтролируемый основанный на графике классификатор, возвращенный как SemiSupervisedGraphModel
объект. Используйте запись через точку, чтобы получить доступ к свойствам объектов. Например, чтобы получить подходящие метки для непомеченных данных и их соответствующих баллов, введите Mdl.FittedLabels
и Mdl.LabelScores
, соответственно.
Метрика расстояния является функцией, которая задает расстояние между двумя наблюдениями. fitsemigraph
поддерживает различные метрики расстояния для непрерывных (числовых) предикторов, категориальных предикторов и соединения непрерывных и категориальных предикторов.
Учитывая mx-by-n матрица данных X, который обработан как mx (1 n) векторы-строки x1, x2..., xmx и my-by-n матрица данных Y, который обработан как my (1 n) векторы-строки y1, y2..., ymy, определяются следующим образом различные расстояния между векторным xs и yt:
Метрики расстояния для непрерывных (числовых) переменных
Евклидово расстояние
Евклидово расстояние является особым случаем расстояния Минковскего, где p = 2.
Стандартизированное Евклидово расстояние
где V является n-by-n диагональная матрица, j которой th диагональный элемент (S (j))2, где S является вектором из масштабных коэффициентов для каждой размерности.
Расстояние Mahalanobis
где C является ковариационной матрицей.
Расстояние Минковскего
Для особого случая p = 1, расстояние Минковскего дает расстояние городского квартала. Для особого случая p = 2, расстояние Минковскего дает Евклидово расстояние. Для особого случая p = ∞, расстояние Минковскего дает расстояние Чебычева.
Расстояние Чебычева
Расстояние Чебычева является особым случаем расстояния Минковскего, где p = ∞.
Расстояние городского квартала
Расстояние городского квартала является особым случаем расстояния Минковскего, где p = 1.
Расстояние корреляции
где
и
Расстояние косинуса
Расстояние копьеносца
где
Метрики расстояния для категориальных переменных
Расстояние Хемминга
Расстояние Jaccard
Метрики расстояния для соединения непрерывных (числовых) и категориальных переменных
Модифицированное расстояние Гудолла
Это расстояние является вариантом расстояния Гудолла, которое присваивает маленькое расстояние, если совпадающие значения являются нечастыми независимо от частот других значений. Для несоответствий вклад расстояния предиктора равняется 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
средние значения, что узлы i и j графика подобия не соединяются.
Программное обеспечение создает график подобия (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-by-n матрица подобия S с попарными значениями подобия Si,j, как задано в Графике Подобия. Позвольте A = D-1/2S D-1/2, где D является n-by-n диагональная матрица .
В итерации t (начиная с t = 1), обновите матрицу F при помощи матричного A и соседнего параметра веса метки α (Alpha
), так, чтобы F (t) = α A F (t – 1) + (1 – α) Y. Позвольте F (0) равный Y.
Повторите третий шаг, пока значения F не будут сходиться. Можно использовать IterationLimit
и Tolerance
значения, чтобы управлять сходимостью.
Возьмите предел последовательности . Эта конечная матрица соответствует музыке к маркированным данным и непомеченным данным (LabelScores
). Для каждого наблюдения или строки в матрице, столбец с максимальным счетом соответствует подходящей метке класса (FittedLabels
).
Вместо того, чтобы использовать итеративный алгоритм распространения метки, можно использовать точный метод для распространения метки (где Method
'labelspreadingexact'
). В этом случае n-by-K матрица информации о метке для помеченных и непомеченных данных является F = (I – α A)-1Y, где I является единичной матрицей. Матрица F соответствует музыке к маркированным данным и непомеченным данным (LabelScores
). Для каждого наблюдения или строки в F, столбец с максимальным счетом соответствует подходящей метке класса (FittedLabels
).
Для получения дополнительной информации см. [1].
[1] Чжоу, Dengyong, Оливье Буске, Томас Навин Лэл, Джейсон Уэстон и Бернхард Шелкопф. “Учась с локальной и глобальной непротиворечивостью”. Усовершенствования в нейронных системах обработки информации 16 (NIPS). 2003.
[2] Чжу, Xiaojin и Zoubin Ghahramani. “Извлекая уроки из Помеченных и Непомеченных Данных с Распространением Метки”. Технология CMU CALD сообщает о CMU CALD 02-107. 2002.
[3] Чжу, Xiaojin, Зубин Гэхрэмани и Джон Лэфферти. “Полуконтролируемое изучение Используя гауссовы поля и гармонические функции”. Двадцатая международная конференция по вопросам машинного обучения (ICML). 2003.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.