Комментарии 28
После предыдущих статей очень нужный шаг! А то в соревновании после формирования двух десятков признаков в итоге остался целый один, улучшающий прогноз)
А какие есть эффективные способы выбора/сокращения признаков для high-dimensional sparse данных (bag of words)?
PCA неплохо работает.
в случае большого числа разреженных признаков можно использовать линейные модели и не отбирать признаки.
Из-за большого количества фичей время подбора гиперпараметров даже для простой логистической регрессии и бэггинга становится огромным. Как с этим быть? Вообще под high-dimensional sparse данными я подразумевал не только тексты, а любые варианты bag of something. Любые категориальные фичи имеющие большое количество значений.
Под разреженными уже подразумевают не категориальные, а количественные (или бинарные).
Если и логит долго работает, то надо на vowpal wabbit переходить. Или хотя бы вначале на SGD.
А то что бэггинг долго работает — это само собой.
о каком количестве фичей речь, что это вызывает проблемы даже для лог.регрессии?
в случае с bag of something, можно обрубить длинный хвост совсем редких признаков, качество обычно не страдает.
в случае с bag of something, можно обрубить длинный хвост совсем редких признаков, качество обычно не страдает.
Скажем, на выходе после кодирования словаря получается 50000 фичей. А что есть редкость признака? По идее редкие признаки, принимающие положительные значения для целевого класса, наоборот могут сильно помогать при классифицировать.
Если слово слишком редкое, есть шанс оверфитнуться. Впрочем, зависит от задачи — например, в поисковом ранжировании рубить хвост нельзя, а в определении тональности текста — скорее можно.
Я не вижу нерешаемой проблемы подобрать оптимальную регуляризацию для логрега на 50к фичей. Впрочем, как уже упоминал yorko, об этом будет отдельный текст.
Я не вижу нерешаемой проблемы подобрать оптимальную регуляризацию для логрега на 50к фичей. Впрочем, как уже упоминал yorko, об этом будет отдельный текст.
hashing trick неплох
еще вариант перейти к векторному представлению — просуммировать вектора слов, с весами или без
еще вариант перейти к векторному представлению — просуммировать вектора слов, с весами или без
> Профессиональный несмешной юмор
Обожаю профессиональный юмор. Он приоткрывает секреты профессии.
Обожаю профессиональный юмор. Он приоткрывает секреты профессии.
Продублирую сюда: похоже в 27 строке скрипта ошибка:
('pets', lambda x: "pets" in x or "pet" in x or "dog" in x or "cats" in x and "no_pets" not in x),
Последний and действует только на or «cats». Возможно нужно взять все or'ы в скобки, чтобы and действовал на все сразу, будет логичнее.Python 2.7 Anaconda.
Не работает tensorflow, пишет что не поддерживается. (без него пример с Keras не работает).
Обязательно ставить 3-й Питон? Если поставлю, не потеряю в работоспособности других библиотек?
Также pytesseract не работает. Выдает ошибку. Хотя сам tesseract установлен.
Не работает tensorflow, пишет что не поддерживается. (без него пример с Keras не работает).
Обязательно ставить 3-й Питон? Если поставлю, не потеряю в работоспособности других библиотек?
Также pytesseract не работает. Выдает ошибку. Хотя сам tesseract установлен.
Можно попробовать использовать Theano в качестве бэкенда для Keras.
Спасибо за статью. Показалось простовато, слишком прямолинейные и интуитивные подходы, хотелось бы что-то поинтереснее. Например, xgboost может работать с пропущенным данными без какой-либо обработки, хотелось бы узнать как он это делает. Или например, что делать, если категориальный признак принимает 10000 значений?
Все-таки первая часть курса рассчитана на тех, кто начинает с нуля. Альтернативные способы кодирования категориальных признаков — интересная тема, но требующая уже какого-то опыта. Надеюсь, во второй части курса доберемся.
Как раз 2 из 3 следующих статей — это vowpal wabbit (что делать, когда у категориального признака 10000 уник значений — хэшировать) и бустинг
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Открытый курс машинного обучения. Тема 6. Построение и отбор признаков