Какие хорошие упражнения программирования машинного обучения?
В идеале они будут иметь следующие характеристики:
-
Они могут быть завершены только вечером кодирования. Для получения интересных результатов не потребуется неделя или больше. Таким образом, я чувствую, что я научился и что-то сделал в одном (возможно, нескольких часах) сидении.
-
Проблемы происходят из реального мира, или они, по крайней мере, являются игрушечными версиями реальных проблем.
-
Если проблема требует данных для тестирования решения, есть доступные в реальном времени наборы данных, или просто тривиально создавать интересные тестовые данные.
-
Легко оценить, насколько хороша работа, которую я сделал. Когда я проверю свое решение, из результатов будет ясно, что я выполнил что-то нетривиальное, либо путем простой проверки, либо количественной оценкой качества результатов.
Ответы
Ответ 1
Внедрите следующие алгоритмы:
- Перцептрон, маркер персептрона: вы можете попытаться обнаружить изображения лиц (классифицировать изображения лиц и лиц без лица), используя любую базу данных лиц. Попробуйте, например, MIT CBCL face database. Вы также можете попробовать данные MNIST и написать систему распознавания плохого человека.
- LVQ, карта Кохонена: вы можете попытаться сжать изображения. Вы можете загружать большие изображения с любого сайта обоев.
- Классификатор наивных заливов: вы можете классифицировать спам, а не спам. Существуют также более научные наборы данных, такие как Reuters и Newsgroups и т.д., Которые вы должны определить в данной статье.
- Backpropagation, многоуровневый персептрон: вы можете попробовать это с лицами или со спамом или с данными по тексту/гистограмме.
- Изначальное линейное обучение SVM с использованием SGD: вы можете попробовать это с цифрами MNIST, например.
Есть несколько проектов, некоторые из них занимают пару часов, несколько дней, но вы определенно многому научитесь.
Ответ 2
Большинство проектов машинного обучения могут занять некоторое время.
Howbout байесовская классификация текста?
Один пример набора инструментов NLTK Toolkit (набор инструментов Natural Language для Python) - это обзоры фильмов. В наборе инструментов есть обзоры фильмов, отмеченные как положительные или отрицательные.
Напишите байесовский классификатор, который может классифицировать обзоры фильмов, используя эти данные для обучения.
Ответ 3
Отметьте репозиторий UCI для машинного обучения для реальных наборов данных.