Рубрики
Без рубрики

Простой проект машинного обучения в Python

Лучший способ обучения машинного обучения – это создание простого проекта .. Tagged с помощью машинного обучения, Python, AI, набора данных Iris.

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

Андрейбу Кто является опытным экспертом по машинному обучению из Германии и любит обучать других людей своим навыкам, говорит, что «машинное обучение полезно, потому что оно дает нам возможность обучать алгоритмы для автоматического принятия решений, что обычно требуется вручную и занимает много времени. “

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

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

Понимание проблемы и данных

Набор данных цветов Iris, который включен в Scikit-Learn, состоит из набора из 150 записей. Он содержит три вида цветов – Setosa (помечен 0), Versicolor (помечен 1) и Virginica (помечен 2) – которые имеют следующие числовые атрибуты (в сантиметрах):

  • Ширина лепестки
  • Длина лепестка
  • Ширина чапала
  • Длина чашера

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

Давайте начнем испачкать руки (мы собираемся использовать распределение Anaconda Python).

Набор данных Iris поставляется с Scikit-Learn, и мы можем просто загрузить его следующим образом.

from sklearn import datasets

Давайте посмотрим, сможем ли мы получить некоторые характеристики цветов радужной оболочки из набора данных.

iris = datasets.load_iris()
digits = datasets.load_digits()

Важно отметить, что набор данных-это словарь, похожий на словарь, который хранит всю информацию о данных. Эти данные хранятся в .data ключ (список массивов).

И при обращении с подобными проблемами, подобными этой, некоторые ответы можно хранить в .target список.

Например, аппетита на набор данных Digits, мы можем использовать Digits.data Чтобы понять характеристики для классификации образцов цифр.

Вот код и вывод.

print(digits.data)

Также Digits.Target Предоставляет нам больше видимости в том, что мы собираемся выучить.

print(digits.target)

Мы также можем заглянуть в данные, используя Iris.data (Предоставление массива данных) и Iris.Target (Предоставляя множество ярлыков).

Вы заметите, что в каждой записи есть четыре атрибута.

iris.data
iris.target

Iris.Target_Names даст нам множество имен ярлыков; То есть три вида цветов в наборе данных.

Iris.Target_Names

Кроме того, мы также можем использовать Коробка сюжет Чтобы генерировать визуальное представление набора данных.

Он покажет нам, как наши данные разбросаны по плоскости; используя их квартили.

Вот код.

import seaborn as sns
iris_data = iris.data #variable for array of the data
iris_target = iris.target #variable for array of the labels
sns.boxplot(data = iris_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(1,10)})

Вот выход.

Вот как данные представлены на горизонтальной оси.

  • 0 – длина чашера (сантиметры)
  • 1 – ширина чашера (сантиметры)
  • 2 – длина лепестка (сантиметра)
  • 3 – ширина лепестки (сантиметра)

Обучение и тестирование

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

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

В этом случае мы сохраним последние 15 наборов данных для тестирования, а остальные оставим для обучения. Следовательно, мы обучим алгоритм на основе обучающего набора данных и прогнозируем на основе набора тестирования данных.

Давайте посмотрим на какой -то код, как это сделать.

import numpy as np
from sklearn import tree
iris_test_ids = np.random.permutation(len(iris_data)) #randomly splitting the data set
#splitting and leaving last 15 entries for testing, rest for training
iris_train_one = iris_data[iris_test_ids[:-15]]
iris_test_one = iris_data[iris_test_ids[-15:]]
iris_train_two = iris_target[iris_test_ids[:-15]]
iris_test_two = iris_target[iris_test_ids[-15:]]
iris_classify = tree.DecisionTreeClassifier()#using the decision tree for classification
iris_classify.fit(iris_train_one, iris_train_two) #training or fitting the classifier using the training set
iris_predict = iris_classify.predict(iris_test_one) #making predictions on the test dataset

Просмотр результатов

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

Вот код для просмотра результатов.

from sklearn.metrics import accuracy_score
print(iris_predict) #lables predicted (flower species)
print (iris_test_two) #actual labels
print (accuracy_score(iris_predict, iris_test_two)*100) #accuracy metric

Вот выход.

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

Вторая строка дает фактические виды, содержащиеся в наборе данных. И последняя строка дает точность %. В этом случае мы получили уровень точности 86,67%.

Не очень плохо!

Вывод

Вот код для всего проекта.

from sklearn import datasets
import seaborn as sns
import numpy as np
from sklearn import tree
from sklearn.metrics import accuracy_score

iris = datasets.load_iris()
digits = datasets.load_digits()
print(digits.data)
print(digits.target)
print(iris.data)
print(iris.target)
print(iris.target_names)

iris_data = iris.data #variable for array of the data
iris_target = iris.target #variable for array of the labels
sns.boxplot(data = iris_data,width=0.5,fliersize=5)
sns.set(rc={'figure.figsize':(1,10)})

iris_test_ids = np.random.permutation(len(iris_data)) #randomly splitting the data set
#splitting and leaving last 15 entries for testing, rest for training
iris_train_one = iris_data[iris_test_ids[:-15]]
iris_test_one = iris_data[iris_test_ids[-15:]]
iris_train_two = iris_target[iris_test_ids[:-15]]
iris_test_two = iris_target[iris_test_ids[-15:]]
iris_classify = tree.DecisionTreeClassifier()#using the decision tree for classification
iris_classify.fit(iris_train_one, iris_train_two) #training or fitting the classifier using the training set
iris_predict = iris_classify.predict(iris_test_one) #making predictions on the test dataset

print(iris_predict) #labels predicted (flower species)
print (iris_test_two) #actual labels
print (accuracy_score(iris_predict, iris_test_two)*100) #accuracy metric

В этом посте мы проиллюстрировали простой проект машинного обучения в Python.

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

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

Счастливое обучение машинного обучения!

Оригинал: “https://dev.to/educationecosystem/a-simple-machine-learning-project-in-python-5d11”