@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 тоже выпадет орел? Нет. Собственно ваш датасет ничем от бросания монетки и не отличается. В нем может вообщ едоминируют четные и НС считает что ВЕРОЯТНОСТЬ четных чисел выше и ошибается в их сторону.

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

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

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