Чтобы не показаться претенциозным, но я ел авокадо до того, как они остыли. Пару лет назад ко мне приехала группа друзей, чтобы отпраздновать Синко де Майо. Почему мы празднуем Cinco de Mayo в США? Я люблю маргариту и мексиканскую кухню, но вот настоящая причина. После нескольких порций напитков пришло время приготовить мой знаменитый гуакамоле. Один за другим я разрезал стопку авокадо, и, к своему ужасу, все они были коричневыми и горькими. Перенесемся на два года вперед, и я решил, что пора вернуть себе место в игре с авокадо. После прохождения 11-недельного курса машинного обучения Эндрю Нга я начал применять полученные знания к ... как вы уже догадались, авокадо!

Настройка эксперимента

Что такое машинное обучение и как оно применимо к авокадо?

Считается, что компьютерная программа учится на опыте E в отношении некоторой задачи T и некоторого показателя эффективности P, если ее выполнение на T , измеренный с помощью P, улучшается с опытом E. - Том Митчелл (1988)

Давайте немного разберемся в этом.

Опыт (E) = Наблюдение за тем, как я оцениваю качество авокадо, поедая их

Задача (T) = Компьютер, предсказывающий качество авокадо (не съедая их).

Производительность (P) = насколько точно компьютер предсказывает качество авокадо, прежде чем я их съем.

Результатом этого сбора данных и обучения является функция, похожая на y = mx + b. Задача компьютера - «изучить» лучшие значения m и b.

Сбор данных / предположения

Я измерил 17 характеристик авокадо, представленных в features.md. Несколько заслуживающих внимания функций - это приблизительное значение объема и плотности, а также среднего дохода по почтовому индексу. Формула для расчета объема сфероида требует измерения обоих радиусов, поэтому, чтобы избежать хирургической операции с авокадо, я создал собственное уравнение для аппроксимации объема. Используя этот приблизительный объем, я также смог рассчитать приблизительную плотность. Наконец, я обнаружил, что средний доход по почтовому индексу важен, потому что он дает возможность идентифицировать пищевые пустыни.

Основная часть этого проекта заключалась в сборе данных, и в результате большинство моих предположений были основаны на релевантности, качестве и количестве собранных данных. Не имея представления о том, какие функции будут уместными, я просто выбрал каждый аспект авокадо, который мог измерить как особенность. Кроме того, я включил соотношение окружностей, потому что оно представляет форму, и включил объем и плотность в надежде, что они могут предсказать размер косточки авокадо. Обратной стороной выбора многих функций является то, что мне нужно было собрать большой объем данных, чтобы избежать переобучения. Количество необходимых данных стало ограничивающим фактором, потому что авокадо дороги, а сбор данных перед едой неудобен. Пока у меня несколько десятков авокадо, и я считаю.

Наконец, чтобы обучить мою модель, мне понадобилось значение Y или метка. Моя подруга и я оценили каждый авокадо по шкале от 1 до 10 в зависимости от вкуса и внешнего вида внутри.

Код

Я использовал базовую линейную регрессию для обучения моей модели, и для этого потребовалось на удивление мало кода. Мы пытаемся составить уравнение, подобное приведенному ниже, где y представляет собой оценку авокадо, а каждый x представляет одну из наших характеристик.

Роль этой функции затрат состоит в том, чтобы вычислить сумму квадратов ошибок между прогнозируемыми оценками авокадо (искусственный интеллект) и моими фактическими оценками (экспертные вкусовые рецепторы человека).

После вычисления суммы квадратов ошибок с помощью функции стоимости мы используем градиентный спуск, чтобы скорректировать наши значения теты (или в случае y = mx + b мы скорректируем m и b). Те, кто разбирается в математическом анализе, могут добиться этого, вычислив частные производные по каждому тета. Каждая частная производная умножается на нашу скорость обучения альфа, и мы корректируем все тэты на это произведение. Для тех, кто не разбирается в математическом анализе, не волнуйтесь, вы можете украсть это уравнение, чтобы получить отличные авокадо!

Остающийся код предназначен для загрузки данных и нормализации функций. Не слишком увлекательно, но не стесняйтесь проверить репозиторий G itHub.

Результаты / Интерпретации

Данные. Данные. Данные. Ограничивающим фактором во время этого проекта была покупка и потребление достаточного количества авокадо для обучения алгоритму. Я дополню этот пост более математическим анализом после того, как съеду больше авокадо, а пока вот мой совет.

  • Покупайте авокадо там, где живут богатые люди!
  • Покупайте большие авокадо!
  • Купить авокадо индивидуальные не пакетированные!

Практическое применение

Как бы весело ни было тщательно измерить все мои авокадо, я предпочитаю полакомиться гуакамоле без уроков информатики. Очевидно, что этот проект не принес много практических приложений, так что это была пустая трата времени? Нет! Хотя я не ожидаю, что кто-либо из моих читателей воспользуется этим алгоритмом в следующий раз, когда они пойдут в продуктовый магазин, поставщики, продуктовые магазины и фермеры могут применять аналогичные методы, чтобы гарантировать, что они покупают / продают высококачественную продукцию. Эти организации с огромными объемами продукции (и, следовательно, данными) находятся в идеальном положении для использования машинного обучения для определения качественной продукции и экономии денег.

Слоганы для моей (притворной) компании

«Мы делаем мир лучше, революционизируя то, как люди едят авокадо».

«Нарушение производства».