Краткий контекст
После того, как я завершил проектирование объектов, мой набор данных расширился с 15 столбцов до примерно 90. Более 90% моего нового набора данных кодируются одним горячим способом (большинство значений в столбцах 0 и 1 в наборе данных). После использования statsmodels и запуска Logisti c Сводка регрессии мой псевдо-R-2 имеет значение только 0,07 и продолжает уменьшаться по мере удаления статистически незначимых функций.
Основной вопрос
Возможно ли перегрузить конструктор объектов с помощью быстрого кодирования? Я сделал столько возможностей, сколько смог, чтобы извлечь как можно больше данных, поэтому мое низкое значение псевдо-R-2 сбивает с толку то, почему оно так мало.
Я занимаюсь машинным обучением в течение 3 месяцев и меня научили извлекать как можно больше информации в области разработки функций перед тестированием моделей. После всего этого я искренне застрял с моими текущими знаниями о том, почему мой псевдо R-2 может быть столь же низким, как и он.
Длинный контекст
I Я работаю над личным проектом с использованием набора данных publi c. Конечная цель состоит в том, чтобы предсказать, какие клиенты, скорее всего, не появятся на запланированной встрече. Я начал с 11 объясняющих переменных и 1 переменной ответа - Результат. Первоначально мои пояснительные переменные были:
- Пол (F / M)
- Запланированный день (объект «дата-время»)
- День встреч («время-дата») объект)
- Возраст
- Окрестности (много разных)
- Стипендия (0/1 значения)
- Гипертония (0/1 значения)
- Диабет (0/1 значения)
- Алкоголизм (0/1 значения)
- Гандикап (0/1 значения)
- СМС получено (0/1 значения)
Я хочу, чтобы этот проект был моим образцовым проектом в качестве нового ученого, поэтому я использую функции как можно больше. Примеры включают в себя:
- Извлечение названия месяца из дат и последующее горячее кодирование, чтобы каждый месяц был в столбце
- Извлечение дня недели, а затем горячее кодирование, поэтому каждый день недели находится в отдельном столбце
- Разделение времени по AM и PM и сохранение этой информации в столбцах с горячим кодированием
- Определение выбросов для столбца Age и сохраняя их в отдельных столбцах и т. д.
Как только я завершил разработку функций, я использовал statsmodels для запуска сводной регрессии Logisti c моей модели с использованием следующего кода пример:
smf.logit(formula = """ Outcome ~
Age +
Scholarship + ...)
После того, как я все закончил, мое значение псевдо-R-2 в лучшем случае составляет всего 0,07. Я провел свое исследование и обнаружил, что псевдо-значение R-2 между 0,2 и 0,4 означает, что модель сильная. Поэтому меня смущает, почему мой счет настолько низок после извлечения всей информации, которую я, возможно, мог.