如何使用python函数计算简单线性回归?
发布时间:2023-06-17 16:28:15
线性回归是统计学中最常见的模型之一,可以用于开发预测模型。简单线性回归在其中是最简单的一种形式,它对应只有一个自变量和一个因变量的情况,并对自变量和因变量的关系进行建模,以找到一条最合适的线性回归线。在Python中,可以使用scikit-learn和statsmodels库,以及numpy库和pandas库提供的函数通过最小化误差平方和来计算简单线性回归。
一、scikit-learn库
scikit-learn是Python中流行的机器学习库之一,提供了许多模型的算法以及数据处理工具。下面我们来使用scikit-learn来计算简单线性回归。
首先,安装和导入必要的库和数据文件:
!pip install scikit-learn
!pip install pandas
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
接下来,我们将数据分为训练集和测试集,并对数据进行标准化处理:
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler X = data['X'].values.reshape(-1,1) y = data['Y'].values.reshape(-1,1) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) sc_X = StandardScaler() sc_y = StandardScaler() X_train = sc_X.fit_transform(X_train) y_train = sc_y.fit_transform(y_train) X_test = sc_X.transform(X_test) y_test = sc_y.transform(y_test)
现在我们可以使用scikit-learn中的LinearRegression模型进行训练和预测,以得到简单线性回归:
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)
plt.scatter(X_train, y_train, color='red')
plt.plot(X_train, regressor.predict(X_train), color='blue')
plt.title('X vs Y (Training set)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
二、statsmodels库
statsmodels是Python中一个扩展库,用于估计各种统计模型。这个库易于使用,对于计算简单线性回归也很实用。下面我们来使用statsmodels来计算简单线性回归。
首先,安装和导入必要的库和数据文件:
!pip install statsmodels
import statsmodels.api as sm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
接下来,我们将数据分为训练集和测试集,并对数据进行标准化处理:
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler X = data['X'] y = data['Y'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) sc_X = StandardScaler() sc_y = StandardScaler() X_train = sc_X.fit_transform(X_train.values.reshape(-1,1)) y_train = sc_y.fit_transform(y_train.values.reshape(-1,1)) X_test = sc_X.transform(X_test.values.reshape(-1,1)) y_test = sc_y.transform(y_test.values.reshape(-1,1))
现在我们可以使用statsmodels中的OLS模型进行训练和预测,以得到简单线性回归:
X_train = sm.add_constant(X_train)
regressor = sm.OLS(y_train, X_train).fit()
X_test = sm.add_constant(X_test)
y_pred = regressor.predict(X_test)
plt.scatter(X_train[:,1], y_train, color='red')
plt.plot(X_train[:,1], regressor.predict(X_train), color='blue')
plt.title('X vs Y (Training set)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
综上所述,使用这些函数可以轻松地完成Python中的简单线性回归计算,可以根据具体情况选择适合的函数。
