Название говорит само за себя, я проверил scikit, которые очень плохи для этой конкретной задачи, и я проверил несколько онлайн-ресурсов, включая этот пост.
Однако, похоже, они ошибаются. Для выбора функций мы можем сделать что-то вроде:
clf=LinearSVC(penalty="l1",dual=False,random_state=0)
X_reduced = clf.fit_transform(X_full,y_full)
Теперь, если мы посмотрим на форму X_reduced
, станет очень ясно, сколько функций было выбрано. Итак, вопрос в том, какие именно?
Атрибут coef_
для LinearSVC
очень важен, и предлагается перебрать его, а функции, которые coef_
отличаются от нуля, будут выбраны. Что ж, это неправильно, но вы можете очень близко приблизиться к реальному результату.
После проверки X_reduced
я заметил, что получил 310 выбранных функций, и это точно, я имею в виду, что я проверяю результирующую матрицу, теперь, если я сделаю coef_
, было выбрано 414 функций из общего числа 2000, так что это близок к реальному.
Согласно scikit LinearSVC
docs для Threshold=None
задействован mean(X)
, но я застрял, не знаю, что теперь делать.
ОБНОВЛЕНИЕ: вот ссылка с данными и кодом, которые воспроизводят ошибку, это всего несколько КБ