Работа с Python 3 в ноутбуке Jupyter
. Я пытаюсь создать регрессионную модель (уравнение?) Для прогнозирования переменной Eng as % of Followers
. Мне бы дали Media Type
, Hour Created
и Day of Week
. Все они должны рассматриваться как категориальные переменные.
Вот некоторые из прошлых данных, которые у меня есть.
Media Type Eng as % of Followers Hour Created Day of Week
0 Video 0.0136 23 Tuesday
1 Video 0.0163 22 Wednesday
2 Video 0.0163 22 Tuesday
3 Video 0.0196 22 Friday
4 Video 0.0179 20 Thursday
5 Photo 0.0087 14 Wednesday
Я создал dummy variables
с использованием pd.get_dummies
, но я не уверен, что сделал это правильно - проблема, в частности, связана с переменной Hour Created
. Они числа, но я хочу, чтобы они рассматривались как категории. Например, «Час 22» может повысить производительность, но это не должно подразумевать ничего о часах 21 или 23.
Мне также любопытно, мог бы я иметь свой модельный фактор во взаимодействии между Day of Week
и Hour Created
(возможно, 22-й час - повышение в большинстве дней, но 22-я пятница вызывает падение), как я видел покончил с пиздой ... но это может быть из-за того, что я становлюсь жадным.
Вот как я создал свои фиктивные переменные, что ставит меня перед вопросом иметь Hour Created
в качестве количественной переменной вместо качественной. Кроме того, у фрейма данных Vars, который я бы использовал в будущем, нет той самой вещи, которую я пытаюсь предсказать. Может ли это быть правильно?
Vars = Training[['Hour Created','Day of Week','Media Type']]
Result = Training['Eng as % of Followers']
Vars = pd.get_dummies(data=Vars, drop_first=True)
Если бы кто-то мог помочь с проблемой Создания часа, это было бы отличным началом ... А потом, не уверен, куда идти дальше. Я видел, как люди используют функцию ols в этой ситуации. Или linear_model от sklearn. Я борюсь с тем, как интерпретировать результаты обоих, и особенно борюсь с тем, как бы я включил в эту модель фрейм данных этих 3 независимых переменных. Если кто-то может сделать предложение, я постараюсь использовать его.
Edit:
В том числе пару способов я пытался создать эту модель. Вот первое, которое я предполагаю, использует мои данные за час неправильно. И, учитывая, что в кадре данных, который я передаю, даже нет заголовка столбца в качестве% подписчиков Eng, я даже не уверен, что он пытается предсказать ...
Vars_train, Vars_test, Result_train, Result_test = train_test_split(Vars, Result, test_size = .20, random_state = 40)
regr = linear_model.LinearRegression()
regr.fit(Vars_train, Result_train)
predicted = regr.predict(Vars_test)
Когда я пытаюсь использовать метод ols следующим образом, я получаю неверную синтаксическую ошибку. Я пробовал разные варианты безрезультатно.
fit1 = ols('Eng as % of Followers ~ C(Day of Week) + C(Hour Created) + C(Media Type)', data=Training).fit()