#python #scipy #statistics
Вопрос:
Я работаю над проектом, который исследует, насколько хорошо можно предсказать ночную цену в наборе данных airbnb. Мои данные были полностью предварительно обработаны, и я выбрал функции, представляющие интерес.
в конечном счете, ищите статью с кодом в качестве примера, при условии, что у вас есть какие-либо доступные ссылки
всего существует 24 столбца, следовательно, 23 зависимых и 1 независимая переменная price
.
Я хочу добавлять и удалять переменные из своей модели в зависимости от того, как это влияет на Adj R2, и хочу сохранить интересные функции только в том случае, если это улучшит Adj R2.
Я стремлюсь полностью выполнить эту задачу в рамках определенной пользователем функции:
df=[]
predictors= [] #features
target=[] # price
alpha=[]
def variable_selection (df, predictors, target, alpha)
return pred
дело в том, что я хочу начать с моделей регрессии с одной переменной, затем добавить еще одну функцию predictors
, а затем добавить функцию, которая приводит к наибольшему увеличению AdjR2. Затем добавьте следующую и так далее, пока не останется переменных, увеличивающих AdjR2.
Большое вам спасибо за то, что зашли так далеко. Всего наилучшего вам
Комментарии:
1. Насколько велик набор данных? Существуют
sum([scipy.special.comb(23,i) for i in range(1,24)]) = 8_388_607.0
комбинации потенциальных матриц ввода. Компьютер может (вероятно) выдать 8 миллионов регрессий быстрее, чем я могу придумать умный алгоритм.2. примерно 17 000 строк, 24 столбца. Я уже ценю этот вклад. Я сидел здесь, как обезьяна, и пытался придумать программу для этого. Излишне говорить, что никакого прогресса не было. Я могу позволить себе опустить несколько колонок, но не так много. возможно, не более 5, если это ограничение. Просто хотел бы добавить функцию в регрессию, повторяя 1 за 1, пока adj R2 не достигнет максимального потенциала для данной модели
3. @DavidKaften В настоящее время просматривает следующую документацию: Если у вас есть какие-либо советы от: statsmodels.org/stable/generated/… , о том, как перебирать переменные, было бы весьма признателен