#python-3.6 #mlxtend
Вопрос:
Я запускаю исчерпывающий селектор функций mlxtend в python на небольшом подмножестве своих данных, и я продолжаю получать необъятную локальную ошибку для переменной, которая находится внутри функции mlxtend.efs.fit после ее выполнения. Есть идеи, почему? Я попытался заменить Xnp фреймом данных, запустил efs.fit без имен функций и заменил срез [0:10] массивом.
‘UnboundLocalError: локальная переменная ‘best_subset’, на которую ссылаются перед назначением’ снимок экрана
запуск mlxtend в ноутбуке с использованием python 3.6
Xnp представляет собой массив формы float64(262, 23076) ([[44.34, 0.56, 2.66, …, 27.9 , 6.74, 7.8 ], [42.77, 0.71, 2.78, …, 0. , 0. , 0. ], [33.91, 0.57, 1.98, …, 19.74, 4.02, 4.96], …,
Y-массив формы float64(262,) ([321898.1367 , 236235.3817 , 97439.51583, 112764.3875 , 139780.3192 , 224775.2867 , 133735.2917 , 161081.9575 , ….,
feature_names_num-это массив int32 (23076,) ([ 0, 1,
2, …, 23074, 23075, 23076])
from numba import jit, njit, vectorize, types
####exchaustive feature selector
import matplotlib.pyplot as pit
from sklearn.neighbors import KNeighborsClassifier as knn
from sklearn.linear_model import LogisticRegression as LGR
from mlxtend.feature_selection import ExhaustiveFeatureSelector
from mlxtend.plotting import plot_sequential_feature_selection
efs = ExhaustiveFeatureSelector(
#knn(n_neighbors =3),
#rfc(n_jobs=8),
LGR(max_iter=100),
min_features=1,
max_features=6,
#scoring = 'neg_mean_squared_error',
scoring = 'accuracy',
n_jobs=8,
print_progress=True,
cv=7)
efs = efs.fit(Xnp[:,0:10],Y,feature_names_num[0:10])