Как разработать алгоритма Random Forest (случайного леса) в Python?

Зачем изучать Python Программирование и разработка

Random Forest (Случайный лес) — это управляемый ансамблем алгоритм машинного обучения, состоящий из деревьев решений. Он также используется для классификации и регрессии. В Random Forest набор данных разделен на две части (обучающая и тестирующая). На основе нескольких параметров принимается решение, и целевые данные прогнозируются или классифицируются соответствующим образом.

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

Чтобы лучше понять случайный лес, давайте возьмем пример набора данных Iris. Набор данных Iris по умолчанию присутствует в библиотеке scikit-learn Python.

Информация об атрибутах набора данных:

  • sepal length in cm
  • sepal width in cm
  • petal length in cm
  • petal width in cm
  • class:
    • Iris Setosa
    • Iris Versicolour
    • Iris Virginica

Поэтапная реализация

Шаг 1:

Загрузка набора данных Iris из научной библиотеки Python.

Scikit-learn Scikit-learn (Sklearn) — самая полезная, надежная и бесплатная библиотека машинного обучения на Python. Это эффективный инструмент для машинного обучения и статистического моделирования, который включает в себя различные алгоритмы, такие как классификация, регрессия, кластеризация, случайные леса, k-соседей и уменьшение размерности.

Python3

# Import scikit-learn dataset library
from sklearn import datasets
 
# Load dataset
iris = datasets.load_iris()

Шаг 2:

Распечатайте зависимые и независимые переменные набора данных радужной оболочки и соответствующим образом сгруппируйте их.

Зависимые переменные: переменные, значение которых зависит от других атрибутов таблицы.

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

Python3

# print the label species(setosa , 
# versicolor , virginica )
print(iris.target_names)
 
# print the names of the four features
print(iris.features_names)

Выход:

Независимые переменные переменные, значение которых не зависит от друг

Шаг 3:

Выведите 5 первых записей и переименуйте значения setosa, versicolor, viriginica как 0,1,2 для лучшего предсказания модели.

Python3

# print the iris data(top 5 records)
print(iris.data[0:5])
 
# print the iris labels ( 0:setosa ,
# 1:versicolor , 2:viriginica)
print(iris.target)

Выход:

Выведите 5 первых записей и переименуйте значения setosa

Шаг 4:

Импортируйте библиотеку pandas из python для создания фрейма данных набора данных iris. Панды используются для очистки и анализа данных. Он построен на основе библиотеки Numpy, которая используется для построения различных структур данных и операций для манипулирования числовыми данными и временными рядами.

Python3

# Creating a Dataframe of given iris dataset.
import pandas as pd
data = pd.DataFrame({
    'sepal length': iris.data[:, 0],
    'sepal width': iris.data[:, 1],
    'petal length': iris.data[:, 2],
    'petal width': iris.data[:, 3],
    'species': iris.target
})
 
data.head()

Выход:

Импортируйте библиотеку pandas из python для создания фрейма

Шаг 5:

Разделение набора данных на две части — обучение и тестирование. Набор обучающих данных используется для обучения модели, а набор тестовых данных используется для проверки того, дает ли модель точные прогнозы. Для выполнения этой операции из библиотеки sklearn.model_selection импортируется пакет train_test_split.

Python3

# Import train_test_split function
from sklearn.model_selection import train_test_split
 
X = data[['sepal length', 'sepal width',
          'petal length', 'petal width']]  # Features
y = data['species'# Labels
 
# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3# 70% training and 30% test

Шаг 6:

Теперь, после разделения набора данных, применяется алгоритм случайного леса. Для этого пакет RandomForestClassifier импортируется из библиотеки sklearn.ensemble, а X_train (обучающая часть зависимой переменной) и y_train (обучающая часть независимой переменной) подгоняются к созданной модели. Модель используется для прогнозирования y_pred (независимая переменная) с помощью X_test (тестовая часть зависимой переменной).

Python3

# Import Random Forest Model
from sklearn.ensemble import RandomForestClassifier
 
# Create a Gaussian Classifier
clf = RandomForestClassifier(n_estimator=100)
 
# Train the model using the training sets 
# y_pred = clf.predict(X_test)
clf.fit(X_train, y_train)
 
y_pred = clf.predict(X_test)

Шаг 7:

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

Python3

# Import scikit-learn metrics 
# module for accuracy calculation
from sklearn import metrics
 
# Number of right values predicted right 
# and wrong values predicted wrong
confusion_matrix = metrics.confusion_matrix(y_test, y_pred)
print(confusion_matrix)
 
# Model Accuracy how often is the
# classifier correct ?
print("Accuracy : ", metrics.accuracy_score(y_test, y_pred)

Выход:

Чтобы проверить точность модели, нам нужно импортировать пакет

Читайте также:  Что такое переменные среды Bash
Оцените статью
bestprogrammer.ru
Добавить комментарий