如何在 statsmodels 中训练模型?
How can I train a model in statsmodels?
这是一个非常简单的问题,我知道有些人可能会给出 -1,但请让我更好地解释一下。
互联网上的大多数 statsmodels 教程(例如 this, this and this)通常创建线性回归而不将数据集拆分为训练和测试。他们使用以下语法创建线性回归:
import statsmodels.formula.api as sm
sm.ols('y~x1+x2+x3', data=df).fit()
没有测试数据集建立模型有多危险就不用说了
我的问题是如何使用训练和测试拆分创建带有统计模型的线性回归?
经过大量搜索,我找到了这个方法:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
features, target, train_size=0.8, random_state=42
)
import statsmodels.api as sm
smfOLS = smf.OLS(X_train, y_train).fit()
但是,我遇到了这个错误:
AttributeError: module 'statsmodels.formula.api' has no attribute 'OLS'
我知道我应该提供一个数据集,但不幸的是,我正在处理机密数据。但是你拥有的任何数据集都应该足以了解情况。
试试这个,
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
features, target, train_size=0.8, random_state=42
)
import statsmodels.api as sm
smfOLS = sm.OLS(y_train, X_train).fit()
这是一个非常简单的问题,我知道有些人可能会给出 -1,但请让我更好地解释一下。
互联网上的大多数 statsmodels 教程(例如 this, this and this)通常创建线性回归而不将数据集拆分为训练和测试。他们使用以下语法创建线性回归:
import statsmodels.formula.api as sm
sm.ols('y~x1+x2+x3', data=df).fit()
没有测试数据集建立模型有多危险就不用说了
我的问题是如何使用训练和测试拆分创建带有统计模型的线性回归?
经过大量搜索,我找到了这个方法:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
features, target, train_size=0.8, random_state=42
)
import statsmodels.api as sm
smfOLS = smf.OLS(X_train, y_train).fit()
但是,我遇到了这个错误:
AttributeError: module 'statsmodels.formula.api' has no attribute 'OLS'
我知道我应该提供一个数据集,但不幸的是,我正在处理机密数据。但是你拥有的任何数据集都应该足以了解情况。
试试这个,
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
features, target, train_size=0.8, random_state=42
)
import statsmodels.api as sm
smfOLS = sm.OLS(y_train, X_train).fit()