Максимально используйте свои способности рассказчика.

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

Теперь каждый человек не смог бы сделать это. Кроме того, если у них есть проблема, нет необходимости, чтобы наука о данных была ее решением. Это заставило меня задуматься: «Есть ли способ обойти это, особенно для тех, у кого нет большого опыта?»

Кен Джи, один из моих любимых специалистов по данным, точно ответил на этот вопрос в одном из своих видео на YouTube. Он как будто прочитал мои мысли. Он говорит, что ваша способность рассказывать истории отличает вас от других. Затем он привел пример того, как данные об ирисах могут быть использованы в интересах флориста.

Итак, вот мой взгляд на набор данных Iris и его возможное применение в реальном мире. Читай дальше!

История

Флорист по имени Джеймс открыл свой небольшой цветочный бизнес в районе Бруклина в Нью-Йорке в 2015 году, и с годами его бизнес вырос до приличных размеров, и он смог выполнять крупные заказы, включая такие мероприятия, как свадьбы. Внезапно в марте 2020 года он столкнулся с огромным падением доходов. Из-за пандемии он потерял большую часть своих клиентов, которые приходили покупать цветы лично для своих близких. Стремясь максимизировать свою прибыль, он также выявил еще одну серьезную проблему. Это была трата цветов из-за отсутствия желанности. Часто декораторам отправляли большое количество цветов, которые были слишком маленькими или тонкими, чтобы их можно было использовать в украшениях. В свою очередь, их нужно будет либо вернуть, либо выбросить, а Джеймсу придется отправить им еще цветы.

Джеймс хотел придумать решение, чтобы вернуть своих постоянных клиентов, а также сократить потери. Лучший способ пойти для него было принять модель интернет-магазина, где клиенты могут размещать заказы и получать их в любое место. Цветочный магазин Джеймса работал по двум бизнес-моделям: первая модель B2C, в которой они продавали цветы прямым клиентам, и другая модель B2B, в которой они продавали цветы декораторам и предприятиям, производящим попурри. В идеале, цветы, у которых лепестки больше, чем чашелистики, должны выбираться личными покупателями. Те, у которых лепестки и чашелистики немного меньше, использовались для украшения. Наконец, цветы с очень маленькими лепестками отправлялись для приготовления попурри.

Часто размер цветов был не очень различим, что приводило к путанице при продаже. А при онлайн-заказе Джеймс будет нести ответственность за выбор лучших цветов для личных заказов подарков, чтобы обеспечить наилучшее качество обслуживания клиентов. Итак, Джеймс задумал внедрить модель машинного обучения, которая могла бы разделить цветы на три категории: A: личные подарки, B: украшения и C: попурри. Эта модель будет использовать размеры цветов для классификации. Чтобы протестировать эту модель на предмет ее эффективности, Джеймс подумал, что было бы неплохо опробовать ее только на одном типе цветка. Он выбрал цветы ириса для своей первой итерации.

Итак, давайте построим модель для Джеймса!

Данные

Набор данных Iris — один из самых популярных наборов данных среди новичков в науке о данных. Его очень легко найти, так как он уже предварительно загружен в Python и R. Я решил загрузить его по ссылке ниже.



Когда вы загрузите данные и присмотритесь повнимательнее, вы увидите, что они имеют пять столбцов: sepal_length. ширина_сепала, длина_лепестка, ширина_лепестка и виды. Я считаю, что все столбцы говорят сами за себя. Все размеры здесь указаны в сантиметрах, а вид указывает тип цветков ириса.

Наша задача здесь — определить цветы ириса, которые подойдут для личного подарка, украшения или попурри. Вот изображение всех видов.

На картинке видно, что Versicolor подходит для личных подарков, Virginica — для украшения, а Setosa — для попурри. Итак, нашей конечной целью было бы предсказать то же самое на основе входных данных, касающихся размеров цветка.

Давайте сделаем некоторые выводы из данных.

Исследовательский анализ данных

Здесь я очень кратко изложу свои выводы. Для кода и соответствующих результатов вы можете проверить мой блокнот здесь:



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

Затем я собрал дополнительную информацию о данных, таких как типы данных и описательная статистика.

Проверим баланс в данных.

Все виды выглядят в значительной степени в балансе. Хорошо, что нам не нужно беспокоиться о дисбалансе классов.

Я также рассчитываю среднее значение, медиану, асимметрию и эксцесс данных. Все результаты показывают, что данные имеют почти нормальное распределение. Подробности смотрите в блокноте.

Глядя на тепловую карту для корреляции, мы можем заметить, что длина лепестка и ширина лепестка имеют высокую корреляцию, ширина лепестка и длина чашелистика имеют хорошую корреляцию, а также длина лепестка и длина чашелистика.

Давайте посмотрим на отношения между некоторыми парами признаков.

На первом графике показано соотношение между длиной чашелистика и шириной чашелистика для каждого вида. Очевидно, что в целом у iris-verginica чашелистики крупнее, а у iris-setosa чашелистики большей длины. Ирис-разноцветный где-то посередине.

Первый график показывает отношение между длиной лепестка и шириной лепестка для каждого вида. Очевидно, что в целом у ириса-вергиники лепестки крупнее, а у ириса-сетозы лепестки меньше. Ирис-разноцветный где-то посередине.

Время проверить распределение всех признаков для каждого вида.

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

Мы также должны проверить наличие выбросов.

На диаграммах показано, что у сетозы обычно лепестки и чашелистики меньшего размера с небольшим количеством выбросов. Вид Versicolor находится где-то посередине. Вид virginica имеет самые большие лепестки и чашелистики по сравнению с другими.

Медианные значения согласуются с указанным выше.

Мы также можем проверить распределения вероятностей.

Графики-скрипки показывают распределение вероятностей признаков для каждого из видов. Мы можем заметить, что, за исключением длины чашелистиков и длины лепестков ириса-сетозы, все остальные имеют некоторую асимметрию или эксцесс.

Например, распределение длины лепестков у радужки-разноцветной асимметрично влево.

Прогноз

Теперь, когда мы извлекли достаточно информации из данных, пришло время построить нашу модель.

Как и в случае с EDA, пожалуйста, проверьте мой блокнот для получения подробного кода.



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

# encode the target variable
df["species"] = df["species"].map({"Iris-setosa":0,"Iris-versicolor":1,"Iris-virginica":2})

После выполнения необходимых шагов, таких как разделение переменных X и y и разделение набора данных на наборы для обучения и проверки, я обучил модель логистической регрессии на данных.

Модель дала точность 98%, а также хорошие значения точности воспроизведения.

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

# predict species based on list of inputs
predcition = model.predict([[5.0,3.5,1.4,0.4]])
if predcition[0] == 0:
    print("Export to Potpourri Businesses")
elif predcition[0] == 1:
    print("Sell for Personal Gifting")
else:
    print("Export to Decorators")

Заключение

Созданная нами модель поможет Джеймсу идентифицировать и разделить цветы ириса на соответствующие категории. Это позволило бы ему максимально удовлетворить всех своих клиентов и в то же время максимизировать свою прибыль.

Будущая работа

Проект здесь очень простой и хорош для тех, с кем можно начать. Настоящей звездой здесь является история.

Если вас это заинтриговало, у меня есть несколько предложений по улучшению этого проекта:

  1. Вы можете собирать данные о других цветах и ​​пытаться классифицировать их.
  2. Выполните разработку функций. Вы можете создавать такие функции, как соотношения длин, ширин и т. д.
  3. Внедрите компьютерное зрение с помощью OpenCV для определения размеров цветов на изображении.
  4. Разверните эту модель с помощью Flask API.