【问题标题】:Can I use numpy.polyfit(x, y, deg) for multiple linear regression我可以使用 numpy.polyfit(x, y, deg) 进行多元线性回归吗
【发布时间】:2021-05-03 02:01:06
【问题描述】:

有什么方法可以在 numpy.polyfit() 中拟合两个自变量和一个因变量?

我有一个从 csv 文件加载的熊猫数据框。 我希望包含两列作为自变量,以使用 NumPy 运行多元线性回归。

目前我的简单线性回归如下所示:

model_combined = np.polyfit(data.Exercise, y, 1)

我也希望在 x 中包含 data.Age

【问题讨论】:

    标签: python pandas numpy olsmultiplelinearregression


    【解决方案1】:

    假设您的方程是 a * exercise + b * age + intercept = y,您可以使用 numpy 或 scikit-learn 拟合多元线性回归,如下所示:

    from sklearn import linear_model
    import numpy as np
    np.random.seed(42)
    
    X = np.random.randint(low=1, high=10, size=20).reshape(10, 2)
    X = np.c_[X, np.ones(X.shape[0])]  # add intercept
    y = np.random.randint(low=1, high=10, size=10)
    
    # Option 1
    a, b, intercept = np.linalg.pinv((X.T).dot(X)).dot(X.T.dot(y))
    print(a, b, intercept)
    
    # Option 2
    a, b, intercept = np.linalg.lstsq(X,y, rcond=None)[0]
    print(a, b, intercept)
    
    # Option 3
    clf = linear_model.LinearRegression(fit_intercept=False)
    clf.fit(X, y)
    print(clf.coef_)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-11
      • 2013-07-14
      • 2016-04-19
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多