Выбор функций является важным аспектом проблем регрессии машинного обучения. Библиотека Yellowbrick предлагает очень удобный способ операционализации и визуализации выбора функций. Давайте посмотрим, как этого добиться.

Шаг 1. Импортируйте библиотеки

from yellowbrick.target import FeatureCorrelation #Long method
from yellowbrick.target.feature_correlation import feature_correlation #quick
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

Шаг 2. Включите визуализатор.

я. Начните с загрузки данных, разделенных на объекты (X) и целевые (y) фреймы данных.

II. Затем создайте список имен столбцов во фрейме данных объектов (X) и назначьте его функциям объекта.

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

IV. Создайте визуализатор с помощью FeatureCorrelation (labels=features, method= «mutual_info_regression») и назначьте его визуализатору объектов.

v. Подгоните к визуализатору следующие входные данные (фрейм данных признаков (X), целевой фрейм данных (y) и дискретные_функции=дискретные).

#1.Load data
X_train = train[x_col]   
y_train=train['lwage']   

#2.Create a list of the  feature names 
features = X_train.columns.tolist()

#3.Create a list of discrete feature names 
discrete =X_train[['sex', 'white', 'black', 'hisp', 'shs', 'hsg', 'scl', 'clg', 'mw', 'so', 'we', 'union', 'vet', 'cent', 'ncent', 'fam1', 'fam2', 'fam3', 'child', 'fborn', 'cit', 'school', 'pens', 'fsize10', 'fsize100', 'health']]

#4.Instantiate the visualizer 
  visualizer = FeatureCorrelation(labels=features,method='mutual_info-regression')

#5.Fit the visualizer
visualizer.fit(X_train,y_train,discrete_features=discrete,random_state=0)

#6.Display the visualizer
visualizer.show()

Окончательная схема

Бонус: быстрый метод

Быстрый метод создается через feature_correlation, и все аргументы передаются за один шаг.

from yellowbrick.target.feature_correlation import feature_correlation
visualizer = feature_correlation(X_train,y_train,labels=features,discrete_features=discrete,method='mutual_info-regression',random_state=0)
plt.tight_layout()

Конец!