Значения случайных свойств леса против матрицы корреляции - PullRequest
0 голосов
/ 05 апреля 2020

Я хочу увидеть корреляцию между переменными. Итак, во-первых, я использовал Корреляционную Матрицу. Это показало мне корреляцию между всеми переменными. Затем я создаю свою random forest regressor модель. В статье я обнаружил, что он имеет функцию feature_importances_. Он говорит о взаимосвязи между независимыми переменными и зависимой переменной. Итак, я попробовал это, затем я увидел, что он показывает те же значения корреляции со значениями матрицы корреляции. Мой вопрос: тогда в чем же разница между матрицей корреляции и важностью элементов случайного леса?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Проверьте код ниже.

from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#Load boston housing dataset as an example
boston = load_boston()


X = boston["data"]
Y = boston["target"]
names = boston["feature_names"]
reg = RandomForestRegressor()
reg.fit(X, Y)
print("Features sorted by their score:")
print(sorted(zip(map(lambda x: round(x, 4), reg.feature_importances_), names), 
             reverse=True))


boston_pd = pd.DataFrame(boston.data)
print(boston_pd.head())

boston_pd.columns = boston.feature_names
print(boston_pd.head())

# correlations
boston_pd.corr()
import seaborn as sn
import matplotlib.pyplot as plt
corrMatrix = boston_pd.corr()
sn.heatmap(corrMatrix, annot=True)
plt.show()

enter image description here

features = boston.feature_names
importances = reg.feature_importances_
indices = np.argsort(importances)

plt.title('Feature Importances')
plt.barh(range(len(indices)), importances[indices], color='#8f63f4', align='center')
plt.yticks(range(len(indices)), features[indices])
plt.xlabel('Relative Importance')
plt.show()

enter image description here

Таким образом, выбор функций зависит от аналитиков корреляции, чтобы определить лучшие функции, которые мы должны использовать; какие характеристики (независимые переменные) оказывают наибольшее статистическое влияние на определение целевой переменной (зависимой переменной). Корреляция - это статистический термин, который относится к тому, насколько близки две переменные с точки зрения наличия линейных отношений друг с другом. Выбор функций является одним из первых и, возможно, одним из наиболее важных шагов при выполнении любой задачи машинного обучения. Элемент в наборе данных - это столбец данных. При работе с любым набором данных мы должны понимать, какой столбец (функция) будет оказывать статистически значимое влияние на выходную переменную. Если мы добавим много не относящихся к делу функций в модель, это только сделает модель наихудшей (Garbage In Garbage Out). Вот почему мы делаем выбор функций. Корреляция Пирсона (выбор признаков) очень популярна для определения релевантности всех независимых переменных относительно целевой переменной (зависимой переменной).

0 голосов
/ 05 апреля 2020

Я предполагаю, что вы используете модель случайного леса scikit-learn, поскольку она имеет атрибут feature_importances_. Хотя вы можете увидеть аналогичные результаты, проверив корреляцию между функциями и целевой переменной, feature_importances_ использует более сложный подход. Из руководства пользователя :

Относительный ранг (т. Е. Глубина) объекта, используемого в качестве узла принятия решения в дереве, можно использовать для оценки относительной важности этого объекта с помощью уважение к предсказуемости целевой переменной. Функции, используемые в верхней части дерева, способствуют окончательному прогнозированию большей части входных выборок. Таким образом, ожидаемая доля образцов, в которые они вносят вклад, может использоваться для оценки относительной важности признаков. В scikit-learn доля выборок, в которую вносит вклад особенность, сочетается с уменьшением примесей в результате их разделения для создания нормализованной оценки предсказательной силы этой характеристики.

Путем усреднения оценок прогнозирующей способности по Из нескольких рандомизированных деревьев можно уменьшить дисперсию такой оценки и использовать ее для выбора признаков. Это известно как среднее уменьшение примеси или MDI. Обратитесь к [L2014] для получения дополнительной информации о MDI и оценке важности функций со случайными лесами.

Ссылка была на Понимание случайных лесов: от теории к практике . Для вас c будет интересна глава 6 (стр. 135), «Понимание переменных значений».

...