Мощный альтернативный подход к ансамблю случайных лесов

Привет всем, сегодня мы рассмотрим еще один мощный ансамблевый классификатор, который называется Классификатор/регрессор дополнительных деревьев.

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

Дополнительное дерево часто может обеспечить хорошую или лучшую производительность, чем случайный лес. Ключевое различие между Random Forest и Extra Tree Classifier заключается в том,

  • Extra Tree Classifier не выполняет начальную агрегацию, как в случайном лесу. Проще говоря, берет случайное подмножество данных без замены. Таким образом, узлы разбиваются на случайные разбиения, а не на лучшие разбиения.
  • Таким образом, в Extra Tree Classifier случайность возникает не из-за начальной загрузки, а из-за случайного разделения данных.

Если вы хотите узнать больше о работе агрегирования пакетов/бутстрапов, вы можете подписаться на мою предыдущую статью https://bobrupakroy.medium.com/bagging-classifier-609a3bce7fb3.

Итак, чтобы сделать длинную историю короткой.

Дерево решений – обрезано до переобучения, что дает высокую дисперсию.

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

Дополнительное дерево — когда точность важнее обобщенной модели. Это дает низкую дисперсию.

И еще кое-что — это также придает важность функциям.

Теперь давайте посмотрим, как мы можем это выполнить!

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#load the data 
url = "Wine_data.csv"
dataframe=pd.read_csv(url)
X= dataframe.drop("quality",axis=1)
y = dataframe["quality"]

Давайте рассмотрим данные как эту демонстрацию

from sklearn.ensemble import ExtraTreesRegressor
# Building the model
extra_tree_model = ExtraTreesRegressor(n_estimators = 100,
          criterion ='mse', max_features = "auto")
# Training the model
extra_tree_model.fit(X, y)

Сделанный…! как обычный классификатор.

Мы также можем выполнить важную функцию, используя extra_tree_forest.feature_importances_

# Computing the importance of each feature
#Feature Importance
feature_importance = extra_tree_model.feature_importances_
# Plotting a Bar Graph to compare the models
plt.bar(X.columns, feature_importance)
plt.xlabel('Feature Labels')
plt.ylabel('Feature Importances')
plt.title('Comparison of different Feature Importances')
plt.show()

Извините за названия функций! перекрывая друг друга.

Давайте сделаем то же самое для классификации

from sklearn.ensemble import ExtraTreesClassifier
dataframe1  = dataframe.copy()
#Convert the target into a Boolean 
dataframe1["quality"] = np.where(dataframe['quality']>=5,1,0)
X= dataframe.drop("quality",axis=1)
y = dataframe["quality"]

Теперь мы делаем то же самое, что и раньше, но на этот раз критерием времени будет «энтропия».

# Building the model
extra_tree_forest = ExtraTreesClassifier(n_estimators = 100,
          criterion ='entropy', max_features = "auto")
# Training the model
extra_tree_forest.fit(X, y)

Вот и все!

КОНЕЦ - - - - - - -

НО, если вы найдете эту статью полезной…. просмотрите другие мои методы ансамбля, такие как классификатор мешков, классификатор голосования, суммирование и другие, я гарантирую, что они вам тоже понравятся. До скорых встреч с еще одной интересной темой.

Некоторые из моих альтернативных сайтов в Интернете: Facebook, Instagram, Udemy, Blogger, Issuu и другие.

Также доступно на Quora @ https://www.quora.com/profile/Rupak-Bob-Roy

Хорошего дня.