1.14. Полусупервизированное обучение
Полусупервизированное обучение — это ситуация, в которой в ваших обучающих данных некоторые образцы не помечены. Полусупервизированные оценщики в sklearn.semi_supervised способны использовать эти дополнительные немаркированные данные, чтобы лучше уловить форму распределения данных и лучше обобщать на новые образцы. Эти алгоритмы могут хорошо работать, когда у нас очень мало помеченных точек и много немаркированных точек.
Примечание
Полусупервизированные алгоритмы должны делать предположения о распределении набора данных, чтобы добиться повышения производительности. Подробнее см. здесь.
1.14.1. Самообучение
Эта реализация самообучения основана на алгоритме Яровского [1]. Используя этот алгоритм, заданный контролируемый классификатор может работать как полусупервизированный классификатор, позволяя ему учиться на немаркированных данных.
SelfTrainingClassifier может быть вызван с любым классификатором, который реализует predict_proba, переданным в качестве параметра base_classifier. В каждом цикле base_classifier предсказывает метки для немаркированных образцов и добавляет подмножество этих меток к помеченному набору данных.
Выбор этого подмножества определяется критерием отбора. Этот отбор можно выполнить с помощью threshold на вероятностями прогнозов или выбрав k_best образцы в соответствии с вероятностями прогнозов.
Метки, используемые для окончательной подгонки, а также итерация, в которой каждый образец был помечен, доступны в качестве атрибутов. Необязательный параметр max_iter определяет, сколько раз цикл выполняется как максимум.
Параметр max_iter может быть установлен в None, заставляя алгоритм повторяться до тех пор, пока все образцы не получат метки или не будет выбрано ни одного нового образца в данной итерации.
Примечание
При использовании классификатора самообучения важно калибровка классификатора.
Примеры
- Влияние изменения порога для самообучения
- Граница принятия решения полусупервизированных классификаторов против SVM на наборе данных Ирис
Ссылки
1.14.2. Распространение меток
Распространение меток обозначает несколько вариаций полусупервизированных алгоритмов вывода графов.
- Некоторые возможности этой модели:
-
- Используется для задач классификации
- Методы ядер для проекции данных в альтернативные пространственные измерения
scikit-learn предоставляет две модели распространения меток: LabelPropagation и LabelSpreading. Обе работают, создавая граф подобия между всеми элементами в наборе входных данных.
Иллюстрация распространения меток: структура немаркированных наблюдений согласуется со структурой класса, и, следовательно, метка класса может быть распространена на немаркированные наблюдения обучающего набора.
LabelPropagation и LabelSpreading отличаются модификациями матрицы подобия, графа и эффектом фиксации на распределениях меток. Фиксация позволяет алгоритму в определенной степени изменить вес истинно помеченных данных, чтобы использовать данные, которые уже известны. Алгоритм LabelPropagation выполняет жесткую фиксацию меток входных данных, что означает \(\alpha=0\). Этот коэффициент фиксации может быть ослаблен, скажем, \(\alpha=0.2\), что означает, что мы всегда сохраним 80 процентов нашего исходного распределения меток, но алгоритм может изменить его уверенность в распределении в пределах 20 процентов.
LabelPropagation использует исходную матрицу подобия, построенную из данных без модификаций. В противоположность этому, LabelSpreading минимизирует функцию потерь, которая обладает свойствами регуляризации, поэтому она часто более устойчива к шуму. Алгоритм выполняет итерации по модифицированной версии исходного графа и нормирует веса ребер, вычисляя нормированную матрицу лапласиана графа. Эта процедура также используется в спектральном кластерировании.
Модели распространения меток имеют два встроенных метода ядер. Выбор ядра влияет как на масштабируемость, так и на производительность алгоритмов. Доступны следующие:
- rbf (\(\exp(-\gamma |x-y|^2), \gamma > 0\)). \(\gamma\) задается с помощью ключевого слова gamma.
- knn (\(1[x' \in kNN(x)]\)). \(k\) задается с помощью ключевого слова n_neighbors.
Ядро RBF создаст полностью связанный граф, который в памяти представлен плотной матрицей. Эта матрица может быть очень большой, и в сочетании со стоимостью выполнения полного умножения матриц для каждой итерации алгоритма может привести к неприемлемо долгому времени выполнения. С другой стороны, ядро KNN создаст гораздо более дружественную к памяти разреженную матрицу, что может значительно сократить время выполнения.
Примеры
- Граница принятия решения полусупервизированных классификаторов против SVM на наборе данных Ирис
- Распространение меток при обучении сложной структуры
- Цифры распространения меток: демонстрация производительности
- Распространение меток, активное обучение цифр
Ссылки
[2] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux. В Semi-Supervised Learning (2006), стр. 193-216
[3] Olivier Delalleau, Yoshua Bengio, Nicolas Le Roux. Эффективная непараметрическая индукция функций в полусупервизированном обучении. AISTAT 2005 https://www.gatsby.ucl.ac.uk/aistats/fullpapers/204.pdf
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/semi_supervised.html