Рубрики

Введение в машинное обучение с использованием Python

Машинное обучение — это тип искусственного интеллекта (ИИ), который дает компьютерам возможность учиться без явного программирования. Машинное обучение направлено на разработку компьютерных программ, которые могут изменяться при воздействии новых данных. В этой статье мы рассмотрим основы машинного обучения и реализацию простого алгоритма машинного обучения с использованием python.

Настройка среды

Сообщество Python разработало множество модулей, чтобы помочь программистам реализовать машинное обучение. В этой статье мы будем использовать модули numpy, scipy и scikit-learn. Мы можем установить их с помощью команды cmd:

pip install numpy scipy scikit-learn 

Лучшим вариантом будет загрузка пакетов miniconda или anaconda для python, которые поставляются в комплекте с этими пакетами. Следуйте инструкциям, приведенным здесь, чтобы использовать Анаконда.

Обзор машинного обучения

Машинное обучение подразумевает обучение компьютера с использованием заданного набора данных и использование этого обучения для прогнозирования свойств заданных новых данных. Например, мы можем обучить компьютер, передав ему 1000 изображений кошек и еще 1000 изображений, не принадлежащих кошке, и каждый раз сообщать компьютеру, является ли изображение кошкой или нет. Затем, если мы покажем компьютеру новое изображение, то после вышеописанного обучения компьютер сможет определить, является ли это новое изображение кошкой или нет.
Процесс обучения и прогнозирования предполагает использование специализированных алгоритмов. Мы подаем обучающие данные в алгоритм, и алгоритм использует эти обучающие данные для прогнозирования новых тестовых данных. Одним из таких алгоритмов является классификация K-Nearest-Neighbor (классификация KNN). Он берет тестовые данные и находит k ближайших значений данных к этим данным из набора тестовых данных. Затем он выбирает соседа с максимальной частотой и дает его свойства в качестве результата прогнозирования. Например, если тренировочный набор:

petal_sizeflower_type
1a
2b
1a
2b
3c
4d
3c
2b
5a

Теперь мы хотим предсказать тип цветка для лепестка размером 2,5 см. Так что, если мы решим нет. из соседей (K) = 3, мы видим, что 3 ближайших соседа из 2.5 равны 1, 2 и 3. Их частоты равны 2, 3 и 2 соответственно. Поэтому сосед максимальной частоты равен 2, а соответствующий ему тип цветка — b. Так что для лепестка размером 2,5 прогноз будет цветок типа b.

Реализация алгоритма классификации KNN с использованием Python на наборе данных IRIS

Вот скрипт Python, который демонстрирует алгоритм классификации knn. Здесь мы используем знаменитый набор цветов радужной оболочки для обучения компьютера, а затем придаем компьютеру новое значение, чтобы предсказывать его. Набор данных состоит из 50 образцов от каждого из трех видов ириса (Iris setosa, Iris virginica и Iris versicolor). Для каждого образца измеряются четыре элемента: длина и ширина чашек и лепестков в сантиметрах.
Мы обучаем нашу программу с использованием этого набора данных, а затем используем это обучение, чтобы предсказать виды цветка ириса с данными измерениями.

Обратите внимание, что эта программа может не работать в Geeksforgeeks IDE, но она может легко запускаться на вашем локальном интерпретаторе python, при условии, что вы установили необходимые библиотеки.

# Программа Python для демонстрации
# Алгоритм классификации КНН
# в IRIS dataser

  

from sklearn.datasets import load_iris

from sklearn.neighbors import KNeighborsClassifier

import numpy as np

from sklearn.model_selection import train_test_split

  

iris_dataset=load_iris()

  

X_train, X_test, y_train, y_test = train_test_split(iris_dataset["data"], iris_dataset["target"], random_state=0)

  

kn = KNeighborsClassifier(n_neighbors=1)

kn.fit(X_train, y_train)

  

x_new = np.array([[5, 2.9, 1, 0.2]])

prediction = kn.predict(x_new)

  

print("Predicted target value: {}\n".format(prediction))

print("Predicted feature name: {}\n".format

    (iris_dataset["target_names"][prediction]))

print("Test score: {:.2f}".format(kn.score(X_test, y_test)))

Выход:

Predicted target name: [0]
Predicted feature name: ['setosa']
Test score: 0.97

Объяснение программы:

Обучение набора данных

  • Первая строка импортирует набор данных радужной оболочки, который уже предопределен в модуле sklearn. Набор данных радужной оболочки — в основном таблица, которая содержит информацию о различных вариантах цветков ириса.
  • Мы импортируем алгоритм kNeighborsClassifier и класс train_test_split из модуля sklearn и numpy для использования в этой программе.
  • Затем мы инкапсулируем метод load_iris () в переменную iris_dataset. Далее мы делим набор данных на тренировочные данные и тестируем данные с помощью метода train_test_split. Префикс X в переменной обозначает значения признаков (например, длину лепестка и т. Д.), А префикс y обозначает целевые значения (например, 0 для setosa, 1 для virginica и 2 для versicolor).
  • Этот метод делит набор данных на тренировочные и тестовые данные случайным образом в соотношении 75:25. Затем мы инкапсулируем метод KNeighborsClassifier в переменную kn, сохраняя значение k = 1. Этот метод содержит алгоритм K Nearest Neighbor.
  • В следующей строке мы вписываем наши тренировочные данные в этот алгоритм, чтобы компьютер мог обучаться с использованием этих данных. Теперь учебная часть завершена.

Тестирование набора данных

  • Теперь у нас есть размеры нового цветка в массиве с именем x_new, и мы хотим предсказать виды этого цветка. Мы делаем это, используя метод прогнозирования, который принимает этот массив в качестве входных данных и выплевывает прогнозируемое целевое значение в качестве выходных данных.
  • Таким образом, прогнозируемое целевое значение оказывается равным 0, что означает setosa. Таким образом, этот цветок имеет хорошие шансы быть разновидностями сето.
  • Наконец мы находим балл теста, который является отношением нет. прогнозов найдены правильные и общие прогнозы сделаны. Мы делаем это, используя метод оценки, который в основном сравнивает фактические значения тестового набора с прогнозируемыми значениями.

Таким образом, мы увидели, как работает машинное обучение, и разработали базовую программу для его реализации с использованием модуля scikit-learn в python.

Эта статья предоставлена tkkhhaarree . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Рекомендуемые посты:

Введение в машинное обучение с использованием Python

0.00 (0%) 0 votes