Выбор функций является важным аспектом проблем регрессии машинного обучения. Библиотека 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()
Конец!