Есть ли способ заставить python сформировать линейную регрессию с перехватом, равным 0?

#python #python-3.x #regression

#python #python-3.x #регрессия

Вопрос:

У меня есть набор данных, включающий два столбца age и flexibility переменные. На следующем графике показана корреляция между возрастом людей и гибкостью их тела на основе моего набора данных:

введите описание изображения здесь

Я пытаюсь создать кубическую модель, в которой гибкость зависит от возраста в кубе. Итак, я сделал:

 from sklearn.linear_model import LinearRegression

df["Age_cubed"] = df["Age"].pow(3)
X = df[["Age_cubed"]]
Y = df["Flexibility"]

model = linear_model.LinearRegression()
model.fit(X, Y)
r_sq = model.score(X, Y)

model.coef_  # 10.02
model.score(X, Y) # 0.93
 

Теперь соответствующий график:
введите описание изображения здесь

Эта модель имеет interocept 0,034:

 print(model.intercept_) # 0.034
 

Есть ли способ заставить python сформировать вышеупомянутую модель линейной регрессии с перехватом, равным 0?

Комментарии:

1. Это scikit-learn?

2. @ahiijny Да, from sklearn.linear_model import LinearRegression

Ответ №1:

Да, есть способ, если вы установите значение fit_intercept равным False:

 model = linear_model.LinearRegression(fit_intercept=False)
 

Затем, когда вы печатаете перехват:

 print(model.intercept_)
 

Результат:

 0.0
 

Ответ №2:

Если линия не вертикальная, должен быть перехват.

Комментарии:

1. Это неверно. Перехват — это значение, равное 0. Отсутствие перехвата просто означает, что строка должна проходить через (0, 0) .

2. Если строка проходит через (0,0), перехват будет равен 0, что отличается от отсутствия перехвата.

3. ?? Линейная модель wx b . Отсутствие перехвата означает, что мы просто имеем wx . Это то же b = 0 самое, что и .

4. Это бессмысленная формальность. Очевидно, что вопрос заключается в том, чтобы заставить перехват быть равным 0.

5. В разговорной речи люди склонны использовать «0» и «none» / «nothing» взаимозаменяемо. Возможно, это немного неаккуратная терминология, но я думаю, что это то, что имел в виду OP. Возможно, другой способ взглянуть на это так: линейная модель с 0-перехватом не будет иметь члена перехвата в уравнении линейной модели. Кстати, мне вспомнилась шутка: «Вы слышали о математике, который боится отрицательных чисел? Они не остановятся ни перед чем, чтобы избежать их! » 🙂