【问题标题】:sklearn Linear Regression coefficients have single value outputsklearn 线性回归系数有单值输出
【发布时间】:2016-10-25 09:26:11
【问题描述】:

我正在使用数据集来查看工资和大学 GPA 之间的关系。我正在使用 sklearn 线性回归模型。我认为系数应该是截距和 coff。对应特征的值。但是该模型给出了一个单一的值。

from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression

# Use only one feature : CollegeGPA
labour_data_gpa = labour_data[['collegeGPA']]

# salary as a dependent variable
labour_data_salary = labour_data[['Salary']]

# Split the data into training/testing sets
gpa_train, gpa_test, salary_train, salary_test = train_test_split(labour_data_gpa, labour_data_salary)

# Create linear regression object
 regression = LinearRegression()

# Train the model using the training sets (first parameter is x )
 regression.fit(gpa_train, salary_train)

#coefficients 
regression.coef_

The output is : Out[12]: array([[ 3235.66359637]])

【问题讨论】:

    标签: python pandas scikit-learn sklearn-pandas


    【解决方案1】:

    试试:

    regression = LinearRegression(fit_intercept =True)
    regression.fit(gpa_train, salary_train)
    

    结果会在

    regression.coef_
    regression.intercept_
    

    为了更好地理解你的线性回归,你也许应该考虑另一个模块,下面的教程会有所帮助:http://statsmodels.sourceforge.net/devel/examples/notebooks/generated/ols.html

    【讨论】:

      【解决方案2】:
      salary_pred = regression.predict(gpa_test)
      print salary_pred
      print salary_test
      

      我认为是 salary_pred = regression.coef_*salary_test。 尝试通过 pyplot 打印 salary_predsalary_test。图能说明一切。

      【讨论】:

        【解决方案3】:

        在这里,您正在针对单个特征 gpa 和目标 salary 训练您的模型:

        regression.fit(gpa_train, salary_train)
        

        如果您在多个特征上训练模型,例如python_gpajava_gpa(目标为 salary),然后你会得到两个输出表示方程的系数(对于线性回归模型)和一个截距。

        相当于:ax + by + c = salary(其中c是截距,ab是系数)。

        【讨论】:

          猜你喜欢
          • 2021-02-20
          • 2016-10-05
          • 2018-08-18
          • 2018-05-16
          • 2016-11-21
          • 2021-06-19
          • 2021-09-20
          • 2017-10-13
          • 2014-05-05
          相关资源
          最近更新 更多