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

Набор данных о цветке ириса, иногда называемый набором данных об ирисе Фишера, представляет собой многомерный набор данных, представленный британским статистиком и биологом Рональдом Фишером в его статье 1936 года «Использование множественных измерений в таксономических задачах как пример линейного дискриминантного анализа». Он содержит 3 класса по 50 экземпляров в каждом, где каждый класс относится к типу ириса. Три класса: Iris-setosa, Iris-versicolor и Iris-virginica.

Весь код и блокнот Jupyter доступны по адресу

heebyyy/Iris-Medium-Article (github.com)

Чтение набора данных Iris

Чтобы начать исследование данных в этом наборе данных, импортируйте необходимые библиотеки и загрузите наши данные из Репозитория машинного обучения UCI.

# Importing Libraries
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# Reading the dataset
column_names = ["sepal length","sepal width","petal length","petal width","Type of flower"]
iris = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",names=column_names)
iris.head()

Первые пять строк набора данных показаны ниже.

Проверьте форму данных с помощью ячейки кода ниже,

# Shape of dataset
iris.shape

Вывод показывает, что набор данных имеет форму (150, 5) — 150 строк и пять столбцов. Пять столбцов: длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка и тип цветка (класс, к которому принадлежит каждый цветок).

Набор данных также содержит по 50 экземпляров каждого из трех классов.

Визуализация данных

Двумерная точечная диаграмма

График 2D-диаграммы рассеяния длины чашелистика и чашелистика показан в кодовой ячейке ниже. Диаграммы рассеяния используются для наблюдения взаимосвязей между переменными и используют точки для представления значений.

iris.plot(kind = 'scatter', x = 'sepal length', y = 'sepal width')

Ниже представлена ​​визуализация 2D-диаграммы рассеяния.

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

# scatter plot of  sepal width against sepal length color coded with type of flower
sns.FacetGrid(iris, hue='Type of flower', size = 6).map(plt.scatter, 'sepal length', 'sepal width', ).add_legend()

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

Трехмерная точечная диаграмма

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

import plotly.express as px
df = px.data.iris()
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
              color='species')
fig.show()

можно также сделать вывод, что, используя длину чашелистика, ширину чашелистика и ширину лепестка, мы можем нарисовать две плоскости, которые могут разделить три класса цветов, даже несмотря на то, что может быть несколько неверных классификаций среди Iris-versicolor и Iris-virginica.

Четырехмерная точечная диаграмма

График 4D Scatter, иногда также известный как парный график, представляет собой график, который показывает парные отношения в наборе данных. Парный график создается с использованием приведенной ниже ячейки кода.

sns.pairplot(iris, hue = 'Type of flower', height = 4, diag_kind='hist',
            corner=True, 
            )

Ниже приведен результат графика рассеяния 4D.

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

Система на основе правил

Если длина лепестка меньше или равна 2, а ширина лепестка меньше или равна 1, то цветок однозначно Iris-setosa (синий цвет)
Если длина лепестка меньше 5 и больше или равна 2.5, а ширина лепестка меньше или равна 2 и больше или равна 1, то это Iris-versicolor (оранжевый цвет)
Иначе это Iris-virginica (зеленый цвет)

Заключение

Можно сделать вывод, что длина лепестков и ширина лепестков являются наиболее полезными признаками для идентификации различных типов цветков, и что, используя исследование и визуализацию данных, можно создать основанную на правилах систему (хотя и не на 100% точную) для классификации цветков ириса по их видам. Различные типы.

Для получения дополнительной информации вы можете связаться со мной по электронной почте [email protected] или связаться со мной в LinkedIn.