为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 中使用 statsmodels.api.OLS

如何在 Python 中使用 statsmodels.api.OLS

手掌心 2022-10-11 16:01:48
我已经开始学习机器学习,并且正在尝试实现线性回归反向消除。这是代码:import statsmodels.api as smx = sm.add_constant(x)x_opt = x[:,[0,1,2,3,4,5]]regressor_OLS = sm.OLS(endog=y,exog=x_opt)这是错误:Traceback (most recent call last):  File "<input>", line 1, in <module>  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 859, in __init__    hasconst=hasconst, **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 702, in __init__    weights=weights, hasconst=hasconst, **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\regression\linear_model.py", line 190, in __init__    super(RegressionModel, self).__init__(endog, exog, **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 236, in __init__    super(LikelihoodModel, self).__init__(endog, exog, **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 77, in __init__    **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\model.py", line 100, in _handle_data    data = handle_data(endog, exog, missing, hasconst, **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\data.py", line 672, in handle_data    **kwargs)  File "C:\Users\ewasy\AppData\Local\Programs\Python\Python37\lib\site-packages\statsmodels\base\data.py", line 87, in __init__    self._handle_constant(hasconst)这是变量 x 的 2 行:array([[1.0, 0.0, 1.0, 2.016411493158463, 0.560752914530775,2.153943088571744],       [1.0, 0.0, 0.0, 1.9558603364325031, 1.0828065830760816,1.9236003956421444]], dtype=object)这是变量 y 的 2 行:array([[2.01120333],[1.99942997]])
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

问题是在您的代码x中有dtype=object而不是dtype=float, 即x不是数字变量,因此它不能用作回归量。一旦x转换为float您的代码就可以工作。



查看完整回答
反对 回复 2022-10-11
?
心有法竹

TA贡献1866条经验 获得超5个赞

import statsmodels.api as sm


def model(X,y):

    X=sm.add_constant(X)

    lm_model=sm.OLS(y,X).fit()

    print(lm_model.summary())

    return X


X_train1=model(X_train_rfe,y_train)

如果您想查看基本的详细 ML 问题:https ://github.com/ds-souvik/Machine-Learning-Basic-Intermediate-Expert./tree/master/10%20Linear%20Regression-%20BoomBikes%20Bike%20Sharing %20服务%20业务%20案例


查看完整回答
反对 回复 2022-10-11
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信