【问题标题】:Outputting coefficients when running linear regression using sklearn使用 sklearn 运行线性回归时输出系数
【发布时间】:2016-10-05 11:08:45
【问题描述】:

我正在尝试对数据集运行简单的线性回归并检索系数。来自.csv 文件的数据如下所示:

"","time","LakeHuron"
"1",1875,580.38
"2",1876,581.86
"3",1877,580.97
"4",1878,580.8
...

import pandas as pd
import numpy as np
from sklearn import datasets, linear_model

def Main():
    location = r"~/Documents/Time Series/LakeHuron.csv"
    ts = pd.read_csv(location, sep=",", parse_dates=[0], header=None)

    ts.drop(ts.columns[[0]], axis=1, inplace=True)

    length = len(ts)
    x = ts[1].values
    y = ts[2].values

    x = x.reshape(length, 1)
    y = y.reshape(length, 1)

    regr = linear_model.LinearRegression()
    regr.fit(x, y)
    print(regr.coef_)

if __name__ == "__main__":
    Main()

因为这是一个简单的线性模型,所以 $Y_t = a_0 + a_1*t$,在这种情况下应该是 $Y_t = 580.202 -0.0242t$。运行上述代码时打印的所有内容都是[[-0.02420111]]。有没有办法得到第二个系数580.202?

我查看了http://scikit-learn.org/stable/modules/linear_model.html 上的文档,它在数组中输出了两个变量。

【问题讨论】:

    标签: python-3.x scikit-learn


    【解决方案1】:

    看起来你只有一个 X 和一个 Y,所以输出是正确的。 试试这个:

    #coef_ : array, shape (n_features, ) or (n_targets, n_features)
    
        print(regr.coef_)
    
    #intercept_ : array  Independent term in the linear model.
    
        print(regr.intercept_)
    

    http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 2021-02-20
      • 2020-07-01
      • 2020-08-06
      • 2018-08-18
      • 2018-05-16
      • 2018-08-11
      • 2021-09-20
      • 2014-05-05
      相关资源
      最近更新 更多