@Kind_Man

Как понять ML на элементарном эксперименте?

Всем привет. Я новичок в сфере ML. Решил провести элементарный эксперимент, результаты которого хочу обсудить с вами.

Я создал датафрейм с 2 колонками: в 1 рандомные числа от 0 до 1000, во второй значения 0 или 1 в зависимости от того, четное число в первой колонке или нет.

Мне казалось, что с такой элементарной задачей, с которой справится и ребенок, алгоритм-то справится и подавно. А вот как вышло в действительности:

KNN Model Evaluation:
Accuracy for training set: 0.691
Accuracy for testing set: 0.495
F1 score for testing set: 0.495
Recall for testing set: 0.495
Precision for testing set: 0.495
Average cross-validation score: 0.51

Random Forest Model Evaluation:
Accuracy for training set: 1.000
Accuracy for testing set: 0.600
F1 score for testing set: 0.598
Recall for testing set: 0.600
Precision for testing set: 0.605
Average cross-validation score: 0.58

Алгоритмы не смогли поймать эту закономерность. При этом, если увеличить датасет с 1000 записей до 10000, то тогда уже делают это в легкую:
KNN Model Evaluation:
Accuracy for training set: 0.996
Accuracy for testing set: 0.980
F1 score for testing set: 0.980
Recall for testing set: 0.980
Precision for testing set: 0.980
Average cross-validation score: 0.96

Random Forest Model Evaluation:
Accuracy for training set: 1.000
Accuracy for testing set: 1.000
F1 score for testing set: 1.000
Recall for testing set: 1.000
Precision for testing set: 1.000

Подскажите, почему так? Разве алгоритмы не должны сами найти закономерность в данных и на этой основе сделать выводы? Почему 1000 случайных целых чисел для правильного вывода недостаточно (четное - нечетное, ничего же больше)

Вероятно, ответом будет, что инженер машинного обучения сам должен заметить подобную вещь в данных, на этой основе создать новую колонку четное-нечетное, и уже дальше всё получится. Но вопрос в другом: не должна ли сама модель сама увидеть эту закономерность в оригинальных данных и решить задачу?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Добро пожаловать в теорию вероятностей и больших чисел. ИНС всегда оперирует вероятностями. И 100% вероятности наступают только на бесконечном множестве чисел, вот и все.

Обратный пример. Вы подбросили монетку 1 раз, выпал орел. Вы подбросили монету 10 раз - выпал снова 10 раз орел. Вы подбросили монету 100 раз - выпал 100 раз орел. Означает ли это что на 101 тоже выпадет орел? Нет. Собственно ваш датасет ничем от бросания монетки и не отличается. В нем может вообщ едоминируют четные и НС считает что ВЕРОЯТНОСТЬ четных чисел выше и ошибается в их сторону.

Мораль - ИНС не надо юзать дам, где можно юзать предсказуемые, не основанные на вероятности, алгоритмы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы