Я энтузиаст программирования и машинного обучения. Всего несколько месяцев назад я начал изучать программирование машинного обучения. Как и многие люди, у которых нет количественного научного опыта, я также начал изучать ML, работая с алгоритмами и наборами данных в широко используемом пакете ML (Caret R).
Некоторое время назад я прочитал блог, в котором автор рассказывает об использовании линейной регрессии в ML. Если я правильно помню, он говорил о том, что в конце концов все машинное обучение использует своего рода «линейную регрессию» (не уверен, использовал ли он этот точный термин) даже для линейных или нелинейных задач. Тогда я не поняла, что он имел в виду.
Мое понимание использования машинного обучения для нелинейных данных заключается в использовании нелинейного алгоритма для разделения данных.
Это было мое мышление
Скажем, для классификации линейных данных мы использовали линейное уравнение а для нелинейных данных мы используем нелинейное уравнение, скажем, y = s i n ( x )
Это изображение взято с сайта sikit learn машины опорных векторов. В SVM мы использовали разные ядра для целей ML. Таким образом, я изначально думал, что линейное ядро разделяет данные, используя линейную функцию, а ядро RBF использует нелинейную функцию для разделения данных.
Но потом я увидел этот блог, где автор рассказывает о нейронных сетях.
Чтобы классифицировать нелинейную задачу в левом подпункте, нейронная сеть преобразует данные таким образом, что в конце мы можем использовать простое линейное разделение для преобразованных данных в правом подпункте
Мой вопрос заключается в том, все ли алгоритмы машинного обучения в конечном итоге используют линейное разделение для классификации (линейный / нелинейный набор данных)?
Ответы:
Ответ №. User20160 имеет идеальный ответ, я добавлю 3 примера с визуализацией, чтобы проиллюстрировать идею. Обратите внимание, что эти графики могут быть не полезны для вас, чтобы увидеть, если «окончательное решение» в линейной форме, но дать вам некоторое представление о дереве, бустинге и KNN.
Начнем с деревьев решений. Со многими расщеплениями это нелинейная граница решения. И мы не можем думать, что все предыдущие расщепления являются «преобразованиями функций», и в конце есть строка окончательного решения.
Другим примером является модель повышения, которая объединяет множество «слабых классификаторов», и граница окончательного решения не является линейной. Вы можете подумать, что это сложный код / алгоритм, чтобы сделать окончательный прогноз.
Наконец, подумайте о K ближайших соседей (KNN). Это также не линейная решающая функция на конечном уровне. кроме того, в KNN нет «трансформации функций».
Вот три визуализации в 2D-пространстве (дерево, повышение и KNN сверху вниз). Основная истина состоит в том, что 2 спирали представляют два класса, и левый подпункт - это предсказания модели, а правый подпункт - границы принятия решения из модели.
РЕДАКТИРОВАТЬ: ответ @ ssdecontrol в этом посте дает другую перспективу.
Это зависит от того, как мы определяем «трансформацию» .
источник
spirals
использую в своих экспериментах). Предложение: нанесите на карту границы решения какimage
, и возможно добавьте уровни вероятности (если вы используете вероятностные результаты) сcontour
.Некоторые алгоритмы используют гиперплоскость (то есть линейную функцию) для разделения данных. Ярким примером является логистическая регрессия. Другие используют гиперплоскость для разделения данных после нелинейного преобразования (например, нейронные сети и опорные векторные машины с нелинейными ядрами). В этом случае граница принятия решения является нелинейной в исходном пространстве данных, но линейной в пространстве признаков, в которое отображаются данные. В случае SVM формулировка ядра определяет это отображение неявно. Другие алгоритмы используют множественные гиперплоскости расщепления в локальных областях пространства данных (например, деревья решений). В этом случае граница решения является кусочно-линейной (но нелинейной в целом).
Однако другие алгоритмы имеют нелинейные границы решения и не формулируются в терминах гиперплоскостей. Ярким примером является классификация k ближайших соседей. Ансамблевые классификаторы (например, произведенные путем повышения или упаковки других классификаторов), как правило, нелинейны.
источник