Подход машинного обучения(2)
Существует несколько способов определения формы стопы онлайн, ниже приведены некоторые из них:




Основываясь на этих наблюдениях, форма носка больше всего влияет на форму стопы, и, чтобы начать это исследование, я пометил обувь, загруженную с 6pm.com, на 3 категории, как показано на изображении ниже:

Классификация в основном основана на форме пальцев: тип 1 моделирует форму стопы, при которой второй палец является самым длинным, а остальные пальцы резко сужаются вниз; тип 2 моделирует форму стопы с более плавным сужением; тип 3 моделирует формы стопы с одинаковой длиной пальцев, причем большой палец является самым длинным.
Теперь мы сводим эту проблему к типичной проблеме машинного обучения классификации. Теперь у нас есть много вариантов: логистическая регрессия, машины опорных векторов, деревья решений, усиленные деревья, случайный лес, ближайшие соседи, нейронные сети и сверточные нейронные сети (CNN). Поскольку это проблема с изображениями (данные большего размера), для тестирования выбираются нейронная сеть и CNN.
Во-первых, нам нужны данные!
Здесь используется метод парсинга веб-страниц. Я пытался связаться с zappos.com, чтобы получить от них API, после нескольких раундов общения я не получил ответа. Понятно, что данные ценны в современном деловом мире. Поэтому мне пришлось попытаться очистить их html. Но они закодировали свой веб-сайт для каждого клиента (IP-адрес), и мой код не смог с ними связаться. Затем мой инструктор предложил использовать селен, который представляет собой пакет для автоматизации ваших движений на веб-сайте и автоматического выполнения работы за вас. К счастью, опция cookie jar в селене помогла мне разблокировать веб-сайт, и я загрузил около 3400 изображений с разделом загрузки и размером 5,5. Это заняло около 1,5 часов, и необходимо позаботиться о нескольких исключениях, чтобы код работал гладко.
Еще 20 000 изображений были загружены позже на всякий случай, и они действительно пригодились позже!
Второй шаг - EDA (исследовательский анализ данных). В основном мы изучаем данные, проверяем полноту и точность данных и редактируем их по мере необходимости для моделирования. Мне повезло, что Amazon.com хорошо организовал свои изображения, чтобы они были одинакового размера (78 * 106 * 3 пикселя). Большинство подошв обращены вправо, а некоторые — влево, что вообще не является проблемой для нейросетевой модели.
Чтобы нейронная сеть могла моделировать данные, их необходимо преобразовать в цифровые числа. Сначала я преобразовал пиксели в массив numpy, а затем сохранил их в файл csv для будущего использования.
Следующий шаг — интересная часть машинного обучения: моделирование! Вы можете играть с различными параметрами и позволить компьютеру выполнять тяжелую работу и смотреть, как меняются результаты.
Я пробовал несколько моделей для этой проблемы:
- Полностью подключенная нейронная сеть
- Простая CNN с одним сверточным слоем и 3 плотными слоями.
- Добавляем еще один сверточный слой
4. Упростите плотные слои и оставьте только один
5. добавить выпадение (уменьшить количество подключений к сети для устранения переобучения)