215 похожих чатов

Добрый день, мне не понятен такой момент в алгоритм knn.

Если разделить данные на train и test. То knn просто запомнит train данные, и на их основе будет вычислять test. Только почему в данных train, который knn запомнил, допускает ошибки. Почему общая сумма ошибок не равно 0?

15 ответов

67 просмотров

А почему она должна быть 0? Суть тестовых данных в том, что у модели нет запомненных правильных ответов и поэтому приходится усреднять ответы по учебной выборке. Из-за этого для объектов из тестовой выборки ответ может отличаться от правильного

В любом методе машина не должна запоминать правильные ответы, она должна их обобщать, находить закономерности и с их помощью предсказывать правильные ответы. На train выборке модель учится и сравнивает те ответы, которые она предсказывает с правильными ответами. Если модель выдаёт только запомненные ответы, значит, что модель переобучилась, а не подобрала хороший алгоритм анализа. И тогда предсказательная способность такой модели на тестовых и реальных данных будет крайне низкой.

Rahim- Автор вопроса
Frau Mann
В любом методе машина не должна запоминать правиль...

Ну если взять модель knn и тестовый набор данных, на чём она там обучается? Находит некие закономерности. Вроде говорилось в некотором источникн и чатgpt, что она когда вычисляет тестовые данные опирается на тренировочные. Тоесть нового объекта из тестовых, находит ближайщих соседей из тренировочной и ввчислчет таргет

Rahim
Ну если взять модель knn и тестовый набор данных, ...

Давайте подумаем, на каких данных обучается вообще любая модель машинного обучения? Очевидно, все тоже самое можно применить к knn. И каким образом она прогноз на тесте делает?

Rahim- Автор вопроса
Frau Mann
Давайте подумаем, на каких данных обучается вообще...

Ну я говорю в чём заключается процесс обучения knn на тренировочных данных? Она ведь просто запоминает тестовые данные.

Rahim- Автор вопроса
Ivan
А почему она должна быть 0? Суть тестовых данных в...

Я об тренировочных данных. Как knn допускает на них ошибки, если она их запоминает

Rahim
Я об тренировочных данных. Как knn допускает на ни...

Что за источник? А вообще, нужно смотреть на конкретную реализацию, я могу предложить два варианта. В первом случае мы проверяем каждый объект, знаки ли мы его или нет, и если да, то просто отдаем сохраненное значение. Во втором случае мы такой проверки не делаем и сразу ищем соседей и по ним усредняем, тогда даже для известных объектов будут другие ответы, чем те что были в выборке.

Rahim
Я об тренировочных данных. Как knn допускает на ни...

А вы у себя в голове имеете представление, как этот метод вообще работает? Или, мб, вы делали визуализацию своих данных и их разделения?

Rahim- Автор вопроса
Frau Mann
А вы у себя в голове имеете представление, как это...

Ну я только о нём прочитал. Тогда как он работает. Как происходит процесс обучения на тренировочных данных. Поиск неких закономерностей или...?

Rahim
Ну я только о нём прочитал. Тогда как он работает....

Если не ошибаюсь с источниками, то в этом блокноте максимально простым языком объяснены основы работы knn: https://www.kaggle.com/code/kashnitsky/topic-3-decision-trees-and-knn/notebook

Rahim- Автор вопроса
Frau Mann
Если не ошибаюсь с источниками, то в этом блокноте...

Ну получается когда появляется новый объект, модель на основе ближайщих соседей из тренировочной выборки, вычисляет таргет

Rahim
Ну получается когда появляется новый объект, модел...

Именно. Метод же называется методом ближайших соседей

Rahim- Автор вопроса
Ivan
Именно. Метод же называется методом ближайших сосе...

Так это было понятно, я про другое спрашивал. Хотя я уже более менее разобрал свой вопрос

Rahim
Ну получается когда появляется новый объект, модел...

А на какую статью вы изначально ссылаетесь? В которой ошибка

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта