首页 > 解决方案 > 有没有办法强制python形成截距等于0的线性回归?

问题描述

我有一个数据集,包括两列ageflexibility变量。下图显示了基于我的数据集的人的年龄与其身体柔韧性之间的相关性:

在此处输入图像描述

我正在尝试制作一个立方模型,其中灵活性取决于年龄的立方。所以我做了:

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

现在对应的情节是: 在此处输入图像描述

这个模型有一个 0.034 的 interocept:

print(model.intercept_) # 0.034

有没有办法强制python形成截距等于0的上述线性回归模型?

标签: pythonpython-3.xregression

解决方案


是的,如果将fit_intercept的值设置为 False,有一种方法:

model = linear_model.LinearRegression(fit_intercept=False)

然后当您打印截距时:

print(model.intercept_)

输出是:

0.0

推荐阅读